From 4e0528370ac19220176fc1d04ecd71ee23f0d123 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Valter=20Sundstr=C3=B6m?= Date: Tue, 4 Feb 2025 16:40:48 +0100 Subject: [PATCH] Enable -Werror, -Wunused:imports and fix all warnings using scalafix (#290) * Enable -Wunused:imports * Fix all imports using scalafix * Manually fix some imports * Auto-fix rest of imports * Manually fix last unused imports in .scala files * Manually fix more unused imports in core and uploadgui * Some more... * Enable -Werror and ignore .scala.{xml,html} files * Remove redundant: 'import Foo.{Bar, *}' --- build.sbt | 6 +- .../nateko/cp/meta/core/MetaCoreConfig.scala | 2 +- .../algo/DatetimeHierarchicalBitmap.scala | 4 +- .../cp/meta/core/crypto/JsonSupport.scala | 3 - .../lu/nateko/cp/meta/core/data/GeoJson.scala | 1 - .../nateko/cp/meta/core/data/Instrument.scala | 1 - .../lu/nateko/cp/meta/core/data/Station.scala | 3 - .../se/lu/nateko/cp/meta/CpmetaConfig.scala | 18 ++---- .../scala/se/lu/nateko/cp/meta/Json.scala | 23 +++---- .../scala/se/lu/nateko/cp/meta/Main.scala | 12 ++-- .../scala/se/lu/nateko/cp/meta/MetaDb.scala | 51 ++++----------- .../se/lu/nateko/cp/meta/UploadDtos.scala | 9 ++- .../lu/nateko/cp/meta/api/CustomVocab.scala | 14 ++-- .../nateko/cp/meta/api/HandleNetClient.scala | 29 ++------- .../cp/meta/api/OrganizationExtra.scala | 5 -- .../se/lu/nateko/cp/meta/api/RdfLenses.scala | 2 +- .../nateko/cp/meta/api/StatisticsClient.scala | 24 ++++--- .../cp/meta/ingestion/BnodeStabilizers.scala | 8 +-- .../ingestion/ExtraStationsIngester.scala | 21 ++---- .../nateko/cp/meta/ingestion/Ingestion.scala | 26 +++----- .../LocalSparqlConstructExtractor.scala | 12 ++-- .../ingestion/PeopleAndOrgsIngester.scala | 22 +++---- .../meta/ingestion/RdfXmlFileIngester.scala | 6 +- .../RemoteSparqlConstructIngester.scala | 27 +++----- .../cp/meta/ingestion/badm/BadmEntry.scala | 8 +-- .../ingestion/badm/EtcEntriesFetcher.scala | 15 ++--- .../meta/ingestion/badm/IcosBadmFetcher.scala | 5 +- .../cp/meta/ingestion/badm/Parser.scala | 21 ++---- .../meta/instanceserver/InstanceServer.scala | 22 ++----- .../LoggingInstanceServer.scala | 4 +- .../instanceserver/Rdf4jInstanceServer.scala | 18 ++---- .../WriteNotifyingInstanceServer.scala | 4 +- .../lu/nateko/cp/meta/metaflow/MetaFlow.scala | 11 +--- .../nateko/cp/meta/metaflow/RdfDiffCalc.scala | 10 +-- .../lu/nateko/cp/meta/metaflow/RdfMaker.scala | 31 +++++---- .../nateko/cp/meta/metaflow/RdfReader.scala | 28 +++----- .../cp/meta/metaflow/RolesDiffCalc.scala | 3 +- .../cp/meta/metaflow/StateDiffApplier.scala | 7 +- .../nateko/cp/meta/metaflow/TcMetadata.scala | 11 ++-- .../meta/metaflow/TriggeredMetaSource.scala | 15 ++--- .../meta/metaflow/cities/CitiesMetaFlow.scala | 13 +--- .../meta/metaflow/cities/CitiesTcConf.scala | 4 +- .../cities/MidLowCostMetaSource.scala | 4 +- .../cp/meta/metaflow/icos/AtcMetaSource.scala | 10 +-- .../cp/meta/metaflow/icos/EtcMetaSource.scala | 50 +++++++-------- .../cp/meta/metaflow/icos/IcosMetaFlow.scala | 8 +-- .../cp/meta/metaflow/icos/OtcMetaSource.scala | 21 +----- .../se/lu/nateko/cp/meta/onto/InstOnto.scala | 20 ++---- .../se/lu/nateko/cp/meta/onto/Onto.scala | 8 +-- .../se/lu/nateko/cp/meta/onto/Vocab.scala | 5 +- .../labeler/ClassIndividualsLabeler.scala | 3 +- .../nateko/cp/meta/onto/labeler/Labeler.scala | 8 +-- .../MultiComponentIndividualLabeler.scala | 9 +-- .../meta/onto/labeler/UniversalLabeler.scala | 4 +- .../cp/meta/onto/reasoner/BaseReasoner.scala | 12 ++-- .../onto/reasoner/HermitBasedReasoner.scala | 8 +-- .../cp/meta/onto/reasoner/Reasoner.scala | 4 +- .../cp/meta/persistence/InMemoryRdfLog.scala | 5 +- .../cp/meta/persistence/RdfUpdateLog.scala | 5 +- .../persistence/RdfUpdateLogIngester.scala | 9 +-- .../meta/persistence/postgres/Postgres.scala | 4 +- .../persistence/postgres/PostgresRdfLog.scala | 13 ++-- .../postgres/RdfUpdateResultSetIterator.scala | 10 +-- .../postgres/ResultSetIterator.scala | 4 +- .../nateko/cp/meta/routes/AdminRouting.scala | 19 ++---- .../meta/routes/AuthenticationRouting.scala | 35 ++++------ .../lu/nateko/cp/meta/routes/DoiRoute.scala | 2 +- .../cp/meta/routes/DtoDownloadRoute.scala | 19 +++--- .../lu/nateko/cp/meta/routes/FilesRoute.scala | 5 +- .../cp/meta/routes/LabelingApiRoute.scala | 27 ++------ .../cp/meta/routes/LinkedDataRoute.scala | 18 +++--- .../lu/nateko/cp/meta/routes/MainRoute.scala | 14 ++-- .../cp/meta/routes/MetadataEntryRouting.scala | 12 ++-- .../nateko/cp/meta/routes/SitemapRoute.scala | 6 +- .../nateko/cp/meta/routes/SparqlRoute.scala | 64 ++++++------------- .../nateko/cp/meta/routes/StaticRoute.scala | 13 ++-- .../cp/meta/routes/UploadApiRoute.scala | 19 +----- .../lu/nateko/cp/meta/services/CpVocab.scala | 24 ++----- .../nateko/cp/meta/services/CpmetaVocab.scala | 3 +- .../cp/meta/services/FileStorageService.scala | 16 ++--- .../cp/meta/services/Rdf4jSparqlRunner.scala | 8 +-- .../cp/meta/services/UploadDtoReader.scala | 12 +--- .../citation/AttributionProvider.scala | 26 +------- .../services/citation/CitationMaker.scala | 24 ++----- .../services/citation/CitationProvider.scala | 28 +++----- .../meta/services/labeling/FileService.scala | 8 +-- .../meta/services/labeling/LabelingDb.scala | 4 +- .../services/labeling/LifecycleService.scala | 18 ++---- .../labeling/StationInfoService.scala | 8 +-- .../labeling/StationLabelingService.scala | 14 ++-- .../services/labeling/UserInfoService.scala | 5 +- .../cp/meta/services/labeling/Vocabs.scala | 4 +- .../linkeddata/InstanceServerSerializer.scala | 27 +++----- .../services/linkeddata/UriSerializer.scala | 2 - .../meta/services/metaexport/DataCite.scala | 18 +----- .../metaexport/DoiGeoCovConverter.scala | 23 +++---- .../cp/meta/services/metaexport/Inspire.scala | 8 +-- .../meta/services/metaexport/SchemaOrg.scala | 17 ++--- .../meta/services/sparql/QueryEvaluator.scala | 8 +-- .../meta/services/sparql/QuotaManager.scala | 10 ++- .../services/sparql/Rdf4jSparqlServer.scala | 44 ++++--------- .../index/FileSizeHierarchicalBitmap.scala | 2 +- .../SamplingHeightHierarchicalBitmap.scala | 3 +- .../index/StringHierarchicalBitmap.scala | 1 - .../sparql/magic/CpEnrichedTripleSource.scala | 8 +-- .../meta/services/sparql/magic/CpIndex.scala | 24 +++---- .../sparql/magic/CpNotifyingSail.scala | 3 +- .../magic/CpQueryOptimizerPipeline.scala | 9 +-- .../sparql/magic/GeoEventProducer.scala | 5 +- .../meta/services/sparql/magic/GeoIndex.scala | 8 +-- .../sparql/magic/GeoIndexProvider.scala | 10 ++- .../services/sparql/magic/GeoLookup.scala | 7 +- .../services/sparql/magic/IndexHandler.scala | 1 + .../magic/ReadonlyConnectionWrapper.scala | 8 +-- .../SimpleTupleFunctionExprEnricher.scala | 4 +- .../sparql/magic/StatementsEnricher.scala | 15 +---- .../services/sparql/magic/StorageSail.scala | 8 +-- .../sparql/magic/fusion/DanglingCleanup.scala | 4 +- .../magic/fusion/DataObjectFetchNode.scala | 6 +- .../sparql/magic/fusion/DofPattern.scala | 3 +- .../magic/fusion/DofPatternFusion.scala | 20 ++---- .../magic/fusion/DofPatternRewrite.scala | 11 +--- .../magic/fusion/DofPatternSearch.scala | 7 +- .../magic/fusion/FilterPatternSearch.scala | 18 +----- .../sparql/magic/fusion/StatsFetchNode.scala | 3 +- .../fusion/StatsFetchPatternSearch.scala | 9 +-- .../sparql/magic/fusion/package.scala | 3 +- .../sparql/magic/index/IndexData.scala | 6 +- .../sparql/magic/index/ObjEntry.scala | 1 + .../services/upload/CollectionFetcher.scala | 9 +-- .../meta/services/upload/CpmetaFetcher.scala | 13 +--- .../upload/DataObjectInstanceServers.scala | 22 +------ .../meta/services/upload/DobjMetaReader.scala | 23 ++----- .../services/upload/DoiClientFactory.scala | 8 +-- .../cp/meta/services/upload/DoiService.scala | 35 ++-------- .../services/upload/MetadataUpdater.scala | 27 ++------ .../upload/PageContentMarshalling.scala | 1 + .../services/upload/StatementsProducer.scala | 31 ++------- .../services/upload/StaticObjectFetcher.scala | 10 +-- .../cp/meta/services/upload/UploadLock.scala | 7 +- .../meta/services/upload/UploadService.scala | 38 ++++------- .../meta/services/upload/VarMetaLookup.scala | 8 +-- .../completion/FormatSpecificCompleter.scala | 3 +- .../completion/NetCdfUploadCompleter.scala | 13 +--- .../upload/completion/PidMinter.scala | 6 +- .../TimeSeriesUploadCompleter.scala | 14 ++-- .../upload/completion/UploadCompleter.scala | 22 ++----- .../services/upload/etc/EtcFileMetadata.scala | 4 +- .../upload/etc/EtcFileMetadataProvider.scala | 11 ++-- .../upload/etc/EtcUploadTransformer.scala | 27 +++----- .../services/upload/geocov/GeoCluster.scala | 7 +- .../services/upload/geocov/GeoCovMerger.scala | 29 ++------- .../upload/validation/ScopedValidator.scala | 37 ++--------- .../upload/validation/UploadValidator.scala | 46 +++---------- .../lu/nateko/cp/meta/utils/Validated.scala | 7 +- .../cp/meta/utils/akkahttp/package.scala | 12 ++-- .../meta/utils/async/CancellableAction.scala | 3 +- .../nateko/cp/meta/utils/async/package.scala | 11 ++-- .../se/lu/nateko/cp/meta/utils/json.scala | 3 +- .../nateko/cp/meta/utils/owlapi/package.scala | 7 +- .../se/lu/nateko/cp/meta/utils/package.scala | 10 +-- .../nateko/cp/meta/utils/rdf4j/Loading.scala | 9 ++- .../utils/rdf4j/Rdf4jIterationIterator.scala | 2 - .../cp/meta/utils/rdf4j/Rdf4jStatement.scala | 4 +- .../nateko/cp/meta/utils/rdf4j/package.scala | 20 ++---- .../cp/meta/utils/streams/ZipEntryFlow.scala | 22 ++----- .../cp/meta/views/LandingPageHelpers.scala | 22 +++---- .../cp/meta/views/ResourceViewInfo.scala | 1 + .../views/CollectionLandingPage.scala.html | 2 - .../twirl/views/DataLandingPage.scala.html | 3 +- .../landpagesnips/zipContents.scala.html | 3 +- .../nateko/cp/meta/KmlGeoJsonWorkbench.scala | 17 ++--- .../cp/meta/test/GcpUploadMetaGenerator.scala | 18 ++---- .../nateko/cp/meta/test/InstOntoTests.scala | 4 +- .../lu/nateko/cp/meta/test/Playground.scala | 21 +++--- .../lu/nateko/cp/meta/test/TestConfig.scala | 17 ++--- .../nateko/cp/meta/test/api/AkkaTests.scala | 5 +- .../cp/meta/test/api/CustomVocabTests.scala | 4 +- .../meta/test/api/HandleNetClientTests.scala | 4 +- .../meta/test/icos/EtcMetaSourceTests.scala | 6 +- .../cp/meta/test/icos/RdfDiffCalcTests.scala | 24 +++---- .../meta/test/icos/RolesDiffCalcTests.scala | 6 +- .../test/ingestion/badm/BadmTestHelper.scala | 3 +- .../test/ingestion/badm/ParserTests.scala | 6 +- .../instanceserver/InstanceServerTests.scala | 12 ++-- .../cities/MidLowCostMetaSourceTest.scala | 5 +- .../RdfUpdateLogIngesterTest.scala | 11 ++-- .../test/persistence/postgres/Manual.scala | 11 +--- .../reasoner/HermitBasedReasonerTests.scala | 1 + .../routes/AlternativePathRouteTest.scala | 4 +- .../sparql/SparqlFailureHandlerTest.scala | 12 +--- .../services/sparql/SparqlRouteTests.scala | 15 ++--- .../test/services/sparql/SparqlTests.scala | 11 ++-- .../services/sparql/index/GeoIndexTest.scala | 20 +----- .../sparql/index/LargeScaleDatetimeTest.scala | 7 +- .../sparql/index/SerializationTests.scala | 13 +--- .../index/StringHierarchicalBitmapTests.scala | 7 +- .../magic/fusion/DofPatternFusionTests.scala | 15 ++--- .../magic/fusion/EarlyDobjInitSearch.scala | 3 +- .../magic/fusion/StatementPatternSearch.scala | 2 +- .../fusion/StatsFetchPatternSearchTests.scala | 14 +--- .../sparql/regression/QueryTests.scala | 6 +- .../services/sparql/regression/TestDb.scala | 7 +- .../upload/MetadataUpdaterTests.scala | 25 ++------ .../upload/geocov/ClusteringExample.scala | 18 +----- .../upload/geocov/GeoCovMergerTests.scala | 4 +- .../upload/geocov/TestGeoFeatures.scala | 23 ++----- .../utils/JavaTaskCancellationTests.scala | 7 +- .../cp/meta/test/utils/SparqlClient.scala | 10 +-- .../test/utils/UrlEncodeDecodeTests.scala | 2 +- .../test/utils/rdf4j/EnrichedUriTests.scala | 5 +- .../utils/streams/CachedSourceTests.scala | 9 ++- .../utils/streams/ZipEntryFlowTests.scala | 15 ++--- .../nateko/cp/meta/upload/AtcCollMaker.scala | 18 ++---- .../cp/meta/upload/CpUploadClient.scala | 45 +++++-------- .../lu/nateko/cp/meta/upload/DigestFlow.scala | 22 ++----- .../lu/nateko/cp/meta/upload/DoiMaker.scala | 7 +- .../cp/meta/upload/L3UpdateWorkbench.scala | 22 ++----- .../nateko/cp/meta/upload/SparqlHelper.scala | 5 +- .../cp/meta/upload/UploadWorkbench.scala | 21 +++--- .../meta/upload/drought/DroughtDoiMaker.scala | 10 ++- .../upload/drought/DroughtDoiMaker2.scala | 14 ++-- .../cp/meta/upload/drought/DroughtMeta2.scala | 16 ++--- .../meta/upload/drought/DroughtUpload.scala | 22 +++---- .../cp/meta/upload/drought/FluxMeta.scala | 7 +- .../meta/upload/drought/FluxdataUpload.scala | 30 +++------ .../se/lu/nateko/cp/meta/upload/Backend.scala | 3 - .../lu/nateko/cp/meta/upload/UploadApp.scala | 4 -- .../se/lu/nateko/cp/meta/upload/Utils.scala | 1 - .../formcomponents/FormComponents.scala | 1 - .../cp/meta/upload/subforms/DataPanel.scala | 1 - .../upload/subforms/GeoCoverageSelector.scala | 1 - .../meta/upload/subforms/PanelSubform.scala | 1 - .../upload/subforms/ProductionPanel.scala | 4 -- 234 files changed, 919 insertions(+), 1959 deletions(-) diff --git a/build.sbt b/build.sbt index 4e8b4f1a7..92d5f3570 100644 --- a/build.sbt +++ b/build.sbt @@ -9,7 +9,9 @@ val commonScalacOptions = Seq( "-encoding", "UTF-8", "-unchecked", "-feature", - "-deprecation" + "-deprecation", + "-Werror", + "-Wunused:imports" ) lazy val metaCore = (project in file("core")) @@ -107,7 +109,7 @@ lazy val meta = (project in file(".")) .settings( name := "meta", version := "0.11.0", - scalacOptions ++= commonScalacOptions, + scalacOptions ++= (commonScalacOptions ++ Seq("-Wconf:src=.*(html|xml):s")), excludeDependencies ++= Seq( ExclusionRule("com.github.jsonld-java", "jsonld-java"), diff --git a/core/src/main/scala/se/lu/nateko/cp/meta/core/MetaCoreConfig.scala b/core/src/main/scala/se/lu/nateko/cp/meta/core/MetaCoreConfig.scala index 8111942de..ae062287f 100644 --- a/core/src/main/scala/se/lu/nateko/cp/meta/core/MetaCoreConfig.scala +++ b/core/src/main/scala/se/lu/nateko/cp/meta/core/MetaCoreConfig.scala @@ -3,7 +3,7 @@ package se.lu.nateko.cp.meta.core import java.net.URI import eu.icoscp.envri.Envri import se.lu.nateko.cp.meta.core.data.EnvriConfig -import spray.json.{JsonFormat, RootJsonFormat} +import spray.json.RootJsonFormat import spray.json.DefaultJsonProtocol.* diff --git a/core/src/main/scala/se/lu/nateko/cp/meta/core/algo/DatetimeHierarchicalBitmap.scala b/core/src/main/scala/se/lu/nateko/cp/meta/core/algo/DatetimeHierarchicalBitmap.scala index 62760a9a2..bad2d8b7a 100644 --- a/core/src/main/scala/se/lu/nateko/cp/meta/core/algo/DatetimeHierarchicalBitmap.scala +++ b/core/src/main/scala/se/lu/nateko/cp/meta/core/algo/DatetimeHierarchicalBitmap.scala @@ -1,14 +1,12 @@ package se.lu.nateko.cp.meta.core.algo -import se.lu.nateko.cp.meta.core.algo.HierarchicalBitmap - /** * Factory for HierarchivalBitmap[Long] suitable for representing java.time.Instant keys * (converted to milliseconds since epoch). Internal constants for hierarchy-coordinate calculation * algorithm are chosen so that the algorithm works correctly only for years from approximately 1420 AD to 2520 AD */ object DatetimeHierarchicalBitmap: - import HierarchicalBitmap.* + import HierarchicalBitmap.{Coord, Geo} val SpilloverThreshold = 513 diff --git a/core/src/main/scala/se/lu/nateko/cp/meta/core/crypto/JsonSupport.scala b/core/src/main/scala/se/lu/nateko/cp/meta/core/crypto/JsonSupport.scala index c96cfa041..3aad625f3 100644 --- a/core/src/main/scala/se/lu/nateko/cp/meta/core/crypto/JsonSupport.scala +++ b/core/src/main/scala/se/lu/nateko/cp/meta/core/crypto/JsonSupport.scala @@ -3,13 +3,10 @@ package se.lu.nateko.cp.meta.core.crypto import spray.json.* import scala.util.Success import scala.util.Failure -import DefaultJsonProtocol.* object JsonSupport{ given RootJsonFormat[Sha256Sum] with{ - import se.lu.nateko.cp.meta.core.crypto.Sha256Sum - def write(hash: Sha256Sum) = JsString(hash.base64Url) def read(value: JsValue): Sha256Sum = value match{ diff --git a/core/src/main/scala/se/lu/nateko/cp/meta/core/data/GeoJson.scala b/core/src/main/scala/se/lu/nateko/cp/meta/core/data/GeoJson.scala index 6cd71d548..9ed9c9d0b 100644 --- a/core/src/main/scala/se/lu/nateko/cp/meta/core/data/GeoJson.scala +++ b/core/src/main/scala/se/lu/nateko/cp/meta/core/data/GeoJson.scala @@ -5,7 +5,6 @@ import scala.util.Try import scala.util.Failure import scala.util.Success import scala.util.control.NoStackTrace -import java.net.URI object GeoJson { diff --git a/core/src/main/scala/se/lu/nateko/cp/meta/core/data/Instrument.scala b/core/src/main/scala/se/lu/nateko/cp/meta/core/data/Instrument.scala index 97c2f37f8..4971443db 100644 --- a/core/src/main/scala/se/lu/nateko/cp/meta/core/data/Instrument.scala +++ b/core/src/main/scala/se/lu/nateko/cp/meta/core/data/Instrument.scala @@ -1,6 +1,5 @@ package se.lu.nateko.cp.meta.core.data import java.time.Instant -import java.net.URI case class InstrumentDeployment( instrument: UriResource, diff --git a/core/src/main/scala/se/lu/nateko/cp/meta/core/data/Station.scala b/core/src/main/scala/se/lu/nateko/cp/meta/core/data/Station.scala index f7b2a7b0a..215cfcc22 100644 --- a/core/src/main/scala/se/lu/nateko/cp/meta/core/data/Station.scala +++ b/core/src/main/scala/se/lu/nateko/cp/meta/core/data/Station.scala @@ -2,9 +2,6 @@ package se.lu.nateko.cp.meta.core.data import java.net.URI import java.time.LocalDate -import scala.util.Try -import spray.json.* -import se.lu.nateko.cp.meta.core.CommonJsonSupport case class Station( org: Organization, diff --git a/src/main/scala/se/lu/nateko/cp/meta/CpmetaConfig.scala b/src/main/scala/se/lu/nateko/cp/meta/CpmetaConfig.scala index fc0dab59f..4875d264e 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/CpmetaConfig.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/CpmetaConfig.scala @@ -1,26 +1,16 @@ package se.lu.nateko.cp.meta - -import com.typesafe.config.Config import com.typesafe.config.ConfigFactory -import com.typesafe.config.ConfigRenderOptions -import com.typesafe.config.ConfigValueFactory import eu.icoscp.envri.Envri import se.lu.nateko.cp.cpauth.core.ConfigLoader.{appConfig, parseAs} -import se.lu.nateko.cp.cpauth.core.EmailConfig -import se.lu.nateko.cp.cpauth.core.PublicAuthConfig -import se.lu.nateko.cp.cpauth.core.UserId -import se.lu.nateko.cp.doi.core.DoiEndpointConfig -import se.lu.nateko.cp.doi.core.DoiMemberConfig +import se.lu.nateko.cp.cpauth.core.{EmailConfig, PublicAuthConfig} +import se.lu.nateko.cp.doi.core.{DoiEndpointConfig, DoiMemberConfig} import se.lu.nateko.cp.meta.core.CommonJsonSupport.TypeField -import se.lu.nateko.cp.meta.core.MetaCoreConfig import se.lu.nateko.cp.meta.core.data.OptionalOneOrSeq -import se.lu.nateko.cp.meta.core.toTypedJson -import se.lu.nateko.cp.meta.persistence.postgres.DbCredentials -import se.lu.nateko.cp.meta.persistence.postgres.DbServer +import se.lu.nateko.cp.meta.core.{MetaCoreConfig, toTypedJson} +import se.lu.nateko.cp.meta.persistence.postgres.{DbCredentials, DbServer} import spray.json.* import java.net.URI -import java.net.URL import java.nio.file.Files import java.nio.file.attribute.FileTime import scala.collection.mutable.WeakHashMap diff --git a/src/main/scala/se/lu/nateko/cp/meta/Json.scala b/src/main/scala/se/lu/nateko/cp/meta/Json.scala index 72f0c54e8..9512df337 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/Json.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/Json.scala @@ -1,23 +1,20 @@ package se.lu.nateko.cp.meta -import spray.json.* +import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport +import akka.http.scaladsl.marshalling.PredefinedToResponseMarshallers.liftMarshaller +import akka.http.scaladsl.marshalling.ToResponseMarshallable +import akka.http.scaladsl.model.{HttpEntity, HttpRequest} +import akka.http.scaladsl.unmarshalling.{FromRequestUnmarshaller, Unmarshaller} import se.lu.nateko.cp.cpauth.core.UserId +import se.lu.nateko.cp.doi.* import se.lu.nateko.cp.meta.core.CommonJsonSupport import se.lu.nateko.cp.meta.core.crypto.JsonSupport.given -import se.lu.nateko.cp.meta.core.data.JsonSupport.given -import se.lu.nateko.cp.doi.* -import scala.util.Failure -import scala.util.Success -import akka.http.scaladsl.marshalling.ToResponseMarshaller -import akka.http.scaladsl.marshalling.PredefinedToResponseMarshallers.liftMarshaller -import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport -import akka.http.scaladsl.marshalling.ToResponseMarshallable -import akka.http.scaladsl.unmarshalling.FromRequestUnmarshaller -import akka.http.scaladsl.unmarshalling.Unmarshaller -import akka.http.scaladsl.model.HttpRequest -import akka.http.scaladsl.model.HttpEntity import se.lu.nateko.cp.meta.core.data.GeoFeature +import se.lu.nateko.cp.meta.core.data.JsonSupport.given +import spray.json.* + import java.net.URI +import scala.util.{Failure, Success} trait CpmetaJsonProtocol extends CommonJsonSupport{ import DefaultJsonProtocol.* diff --git a/src/main/scala/se/lu/nateko/cp/meta/Main.scala b/src/main/scala/se/lu/nateko/cp/meta/Main.scala index 7aea161c4..7588a4488 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/Main.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/Main.scala @@ -1,21 +1,19 @@ package se.lu.nateko.cp.meta import akka.actor.ActorSystem +import akka.event.Logging import akka.http.scaladsl.Http import akka.stream.Materializer import se.lu.nateko.cp.cpauth.core.ConfigLoader.appConfig import se.lu.nateko.cp.meta.core.data.EnvriConfigs import se.lu.nateko.cp.meta.metaflow.MetaFlow import se.lu.nateko.cp.meta.routes.MainRoute -import se.lu.nateko.cp.meta.services.citation.CitationClient.readCitCache -import se.lu.nateko.cp.meta.services.citation.CitationClient.readDoiCache -import se.lu.nateko.cp.meta.services.sparql.magic.index.IndexData +import se.lu.nateko.cp.meta.services.citation.CitationClient.{readCitCache, readDoiCache} import se.lu.nateko.cp.meta.services.sparql.magic.IndexHandler -import scala.concurrent.Await -import scala.concurrent.Future +import se.lu.nateko.cp.meta.services.sparql.magic.index.IndexData + import scala.concurrent.duration.DurationInt -import akka.event.Logging -import scala.concurrent.ExecutionContext +import scala.concurrent.{Await, ExecutionContext, Future} object Main extends App with CpmetaJsonProtocol{ diff --git a/src/main/scala/se/lu/nateko/cp/meta/MetaDb.scala b/src/main/scala/se/lu/nateko/cp/meta/MetaDb.scala index 8760b90eb..12d80ff55 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/MetaDb.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/MetaDb.scala @@ -2,60 +2,37 @@ package se.lu.nateko.cp.meta import akka.Done import akka.actor.ActorSystem +import akka.event.Logging import akka.stream.Materializer import eu.icoscp.envri.Envri -import org.eclipse.rdf4j.model.IRI -import org.eclipse.rdf4j.model.ValueFactory +import org.eclipse.rdf4j.model.{IRI, ValueFactory} import org.eclipse.rdf4j.repository.Repository import org.eclipse.rdf4j.repository.sail.SailRepository import org.semanticweb.owlapi.apibinding.OWLManager -import se.lu.nateko.cp.meta.api.RdfLens -import se.lu.nateko.cp.meta.api.RdfLenses -import se.lu.nateko.cp.meta.api.SparqlServer -import se.lu.nateko.cp.meta.core.data.EnvriConfigs -import se.lu.nateko.cp.meta.core.data.flattenToSeq -import se.lu.nateko.cp.meta.ingestion.BnodeStabilizers -import se.lu.nateko.cp.meta.ingestion.Extractor -import se.lu.nateko.cp.meta.ingestion.Ingester -import se.lu.nateko.cp.meta.ingestion.Ingestion -import se.lu.nateko.cp.meta.ingestion.StatementProvider -import se.lu.nateko.cp.meta.instanceserver.InstanceServer -import se.lu.nateko.cp.meta.instanceserver.LoggingInstanceServer -import se.lu.nateko.cp.meta.instanceserver.Rdf4jInstanceServer -import se.lu.nateko.cp.meta.instanceserver.TriplestoreConnection -import se.lu.nateko.cp.meta.instanceserver.WriteNotifyingInstanceServer -import se.lu.nateko.cp.meta.onto.InstOnto -import se.lu.nateko.cp.meta.onto.Onto +import se.lu.nateko.cp.meta.api.{RdfLens, RdfLenses, SparqlServer} +import se.lu.nateko.cp.meta.core.data.{EnvriConfigs, flattenToSeq} +import se.lu.nateko.cp.meta.ingestion.{BnodeStabilizers, Extractor, Ingester, Ingestion, StatementProvider} +import se.lu.nateko.cp.meta.instanceserver.{InstanceServer, LoggingInstanceServer, Rdf4jInstanceServer, TriplestoreConnection, WriteNotifyingInstanceServer} +import se.lu.nateko.cp.meta.onto.{InstOnto, Onto} import se.lu.nateko.cp.meta.persistence.RdfUpdateLogIngester import se.lu.nateko.cp.meta.persistence.postgres.PostgresRdfLog -import se.lu.nateko.cp.meta.services.FileStorageService -import se.lu.nateko.cp.meta.services.Rdf4jSparqlRunner -import se.lu.nateko.cp.meta.services.ServiceException -import se.lu.nateko.cp.meta.services.citation.CitationClient.CitationCache -import se.lu.nateko.cp.meta.services.citation.CitationClient.DoiCache +import se.lu.nateko.cp.meta.services.citation.CitationClient.{CitationCache, DoiCache} import se.lu.nateko.cp.meta.services.citation.CitationProvider import se.lu.nateko.cp.meta.services.labeling.StationLabelingService -import se.lu.nateko.cp.meta.services.linkeddata.Rdf4jUriSerializer -import se.lu.nateko.cp.meta.services.linkeddata.UriSerializer +import se.lu.nateko.cp.meta.services.linkeddata.{Rdf4jUriSerializer, UriSerializer} import se.lu.nateko.cp.meta.services.sparql.Rdf4jSparqlServer import se.lu.nateko.cp.meta.services.sparql.magic.index.IndexData -import se.lu.nateko.cp.meta.services.sparql.magic.CpNotifyingSail -import se.lu.nateko.cp.meta.services.sparql.magic.GeoIndexProvider -import se.lu.nateko.cp.meta.services.sparql.magic.IndexHandler -import se.lu.nateko.cp.meta.services.sparql.magic.StorageSail -import se.lu.nateko.cp.meta.services.upload.DataObjectInstanceServers -import se.lu.nateko.cp.meta.services.upload.StaticObjectReader -import se.lu.nateko.cp.meta.services.upload.UploadService +import se.lu.nateko.cp.meta.services.sparql.magic.{CpNotifyingSail, GeoIndexProvider, IndexHandler, StorageSail} import se.lu.nateko.cp.meta.services.upload.etc.EtcUploadTransformer +import se.lu.nateko.cp.meta.services.upload.{DataObjectInstanceServers, StaticObjectReader, UploadService} +import se.lu.nateko.cp.meta.services.{FileStorageService, Rdf4jSparqlRunner, ServiceException} import se.lu.nateko.cp.meta.utils.async.ok import se.lu.nateko.cp.meta.utils.rdf4j.toRdf import java.net.URI import java.util.concurrent.Executors -import scala.concurrent.ExecutionContext -import scala.concurrent.Future -import scala.util.{Success, Failure} -import akka.event.Logging +import scala.concurrent.{ExecutionContext, Future} +import scala.util.{Failure, Success} class MetaDb ( diff --git a/src/main/scala/se/lu/nateko/cp/meta/UploadDtos.scala b/src/main/scala/se/lu/nateko/cp/meta/UploadDtos.scala index b73f6e335..d42b5b1b8 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/UploadDtos.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/UploadDtos.scala @@ -1,12 +1,11 @@ package se.lu.nateko.cp.meta -import java.net.URI -import java.time.Instant - +import se.lu.nateko.cp.doi.* import se.lu.nateko.cp.meta.core.crypto.Sha256Sum import se.lu.nateko.cp.meta.core.data.* -import se.lu.nateko.cp.doi.* -import scala.util.Try + +import java.net.URI +import java.time.Instant sealed trait UploadDto{ def submitterId: String diff --git a/src/main/scala/se/lu/nateko/cp/meta/api/CustomVocab.scala b/src/main/scala/se/lu/nateko/cp/meta/api/CustomVocab.scala index d7d3ff65e..11a3d8949 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/api/CustomVocab.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/api/CustomVocab.scala @@ -1,17 +1,13 @@ package se.lu.nateko.cp.meta.api -import java.net.URI -import java.time.Instant -import java.time.LocalDate -import java.time.LocalDateTime - -import org.eclipse.rdf4j.model.Literal -import org.eclipse.rdf4j.model.IRI -import org.eclipse.rdf4j.model.ValueFactory import org.eclipse.rdf4j.model.vocabulary.XSD +import org.eclipse.rdf4j.model.{IRI, Literal, ValueFactory} + +import java.net.URI +import java.time.{Instant, LocalDate, LocalDateTime} trait CustomVocab { - import CustomVocab.urlEncode + def factory: ValueFactory protected class BaseUriProvider(val baseUri: String) diff --git a/src/main/scala/se/lu/nateko/cp/meta/api/HandleNetClient.scala b/src/main/scala/se/lu/nateko/cp/meta/api/HandleNetClient.scala index 12db7c797..25a57d134 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/api/HandleNetClient.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/api/HandleNetClient.scala @@ -2,20 +2,13 @@ package se.lu.nateko.cp.meta.api import akka.Done import akka.actor.ActorSystem -import akka.http.scaladsl.ConnectionContext -import akka.http.scaladsl.Http import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport.* import akka.http.scaladsl.marshalling.Marshal -import akka.http.scaladsl.model.HttpMethods -import akka.http.scaladsl.model.HttpRequest -import akka.http.scaladsl.model.HttpResponse -import akka.http.scaladsl.model.RequestEntity -import akka.http.scaladsl.model.StatusCodes -import akka.http.scaladsl.model.Uri import akka.http.scaladsl.model.headers.RawHeader +import akka.http.scaladsl.model.{HttpMethods, HttpRequest, HttpResponse, RequestEntity, Uri} import akka.http.scaladsl.unmarshalling.Unmarshal +import akka.http.scaladsl.{ConnectionContext, Http} import akka.stream.Materializer -import com.typesafe.sslconfig.akka.AkkaSSLConfig import eu.icoscp.envri.Envri import se.lu.nateko.cp.meta.HandleNetClientConfig import se.lu.nateko.cp.meta.core.crypto.Sha256Sum @@ -24,20 +17,12 @@ import se.lu.nateko.cp.meta.utils.async.* import java.io.FileInputStream import java.net.URI -import java.nio.file.Files -import java.nio.file.Path -import java.nio.file.Paths -import java.security.KeyFactory -import java.security.KeyStore -import java.security.SecureRandom +import java.nio.file.{Files, Path, Paths} import java.security.cert.CertificateFactory -import java.security.interfaces.RSAPrivateKey -import java.security.interfaces.RSAPublicKey -import java.security.spec.PKCS8EncodedKeySpec -import java.security.spec.X509EncodedKeySpec -import javax.net.ssl.KeyManagerFactory -import javax.net.ssl.SSLContext -import javax.net.ssl.TrustManagerFactory +import java.security.interfaces.{RSAPrivateKey, RSAPublicKey} +import java.security.spec.{PKCS8EncodedKeySpec, X509EncodedKeySpec} +import java.security.{KeyFactory, KeyStore, SecureRandom} +import javax.net.ssl.{KeyManagerFactory, SSLContext, TrustManagerFactory} import scala.concurrent.Future import scala.concurrent.duration.DurationInt diff --git a/src/main/scala/se/lu/nateko/cp/meta/api/OrganizationExtra.scala b/src/main/scala/se/lu/nateko/cp/meta/api/OrganizationExtra.scala index 5a9777b93..31cea0530 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/api/OrganizationExtra.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/api/OrganizationExtra.scala @@ -1,10 +1,5 @@ package se.lu.nateko.cp.meta.api - -import se.lu.nateko.cp.meta.core.data.FeatureCollection -import se.lu.nateko.cp.meta.core.data.GeoFeature import se.lu.nateko.cp.meta.core.data.Person -import se.lu.nateko.cp.meta.core.data.Position -import se.lu.nateko.cp.meta.core.data.Station import se.lu.nateko.cp.meta.metaflow.Role import se.lu.nateko.cp.meta.services.citation.AttributionProvider import spray.json.* diff --git a/src/main/scala/se/lu/nateko/cp/meta/api/RdfLenses.scala b/src/main/scala/se/lu/nateko/cp/meta/api/RdfLenses.scala index b288b5e10..06c18ad0b 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/api/RdfLenses.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/api/RdfLenses.scala @@ -2,6 +2,7 @@ package se.lu.nateko.cp.meta.api import eu.icoscp.envri.Envri import org.eclipse.rdf4j.model.ValueFactory +import se.lu.nateko.cp.meta.MetaFlowConfig import se.lu.nateko.cp.meta.instanceserver.TriplestoreConnection import se.lu.nateko.cp.meta.utils.Validated import se.lu.nateko.cp.meta.utils.Validated.getOrElseV @@ -10,7 +11,6 @@ import se.lu.nateko.cp.meta.utils.rdf4j.toRdf import java.net.URI import RdfLens.* -import se.lu.nateko.cp.meta.MetaFlowConfig type RdfLens[C <: TriplestoreConnection] = TriplestoreConnection ?=> C diff --git a/src/main/scala/se/lu/nateko/cp/meta/api/StatisticsClient.scala b/src/main/scala/se/lu/nateko/cp/meta/api/StatisticsClient.scala index 9b983fc2e..eab735d81 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/api/StatisticsClient.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/api/StatisticsClient.scala @@ -1,26 +1,24 @@ package se.lu.nateko.cp.meta.api -import java.net.URI -import scala.concurrent.{ ExecutionContextExecutor, Future } -import scala.concurrent.duration.DurationInt - import akka.actor.ActorSystem +import akka.event.Logging import akka.http.scaladsl.Http import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport.* -import akka.http.scaladsl.model.{ HttpRequest, StatusCodes, Uri } import akka.http.scaladsl.model.headers.Host -import akka.http.scaladsl.unmarshalling.{Unmarshal, FromEntityUnmarshaller} +import akka.http.scaladsl.model.{ HttpRequest, StatusCodes, Uri } +import akka.http.scaladsl.settings.ConnectionPoolSettings +import akka.http.scaladsl.unmarshalling.{FromEntityUnmarshaller, Unmarshal} import akka.stream.Materializer +import eu.icoscp.envri.Envri import se.lu.nateko.cp.meta.StatsClientConfig import se.lu.nateko.cp.meta.core.crypto.Sha256Sum -import se.lu.nateko.cp.meta.core.data.EnvriConfigs +import se.lu.nateko.cp.meta.core.data.{EnvriConfigs, StaticObject} import se.lu.nateko.cp.meta.services.MetadataException -import spray.json.DefaultJsonProtocol -import se.lu.nateko.cp.meta.core.data.StaticObject -import akka.http.scaladsl.settings.ConnectionPoolSettings -import spray.json.RootJsonFormat -import eu.icoscp.envri.Envri -import akka.event.Logging +import spray.json.{DefaultJsonProtocol, RootJsonFormat} + +import java.net.URI +import scala.concurrent.duration.DurationInt +import scala.concurrent.{ ExecutionContextExecutor, Future } object StatisticsClient extends DefaultJsonProtocol { diff --git a/src/main/scala/se/lu/nateko/cp/meta/ingestion/BnodeStabilizers.scala b/src/main/scala/se/lu/nateko/cp/meta/ingestion/BnodeStabilizers.scala index 6bf6dd14d..233a87232 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/ingestion/BnodeStabilizers.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/ingestion/BnodeStabilizers.scala @@ -1,12 +1,10 @@ package se.lu.nateko.cp.meta.ingestion -import scala.collection.mutable -import org.eclipse.rdf4j.model.IRI -import org.eclipse.rdf4j.model.BNode -import org.eclipse.rdf4j.model.ValueFactory -import org.eclipse.rdf4j.model.Statement +import org.eclipse.rdf4j.model.{BNode, IRI, Statement, ValueFactory} import se.lu.nateko.cp.meta.utils.rdf4j.createIRI +import scala.collection.mutable + class BnodeStabilizers: private val stabs = mutable.Map.empty[IRI, BnodeStabilizer] diff --git a/src/main/scala/se/lu/nateko/cp/meta/ingestion/ExtraStationsIngester.scala b/src/main/scala/se/lu/nateko/cp/meta/ingestion/ExtraStationsIngester.scala index 33ef8f768..6679dbe36 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/ingestion/ExtraStationsIngester.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/ingestion/ExtraStationsIngester.scala @@ -1,22 +1,15 @@ package se.lu.nateko.cp.meta.ingestion -import scala.concurrent.ExecutionContext -import scala.concurrent.Future -import scala.io.Source - -import org.eclipse.rdf4j.model.IRI -import org.eclipse.rdf4j.model.Statement -import org.eclipse.rdf4j.model.Value +import eu.icoscp.envri.Envri import org.eclipse.rdf4j.model.vocabulary.RDF -import org.eclipse.rdf4j.model.ValueFactory - -import se.lu.nateko.cp.meta.api.UriId +import org.eclipse.rdf4j.model.{IRI, Statement, Value, ValueFactory} +import se.lu.nateko.cp.meta.api.{CloseableIterator, UriId} import se.lu.nateko.cp.meta.core.data.EnvriConfigs -import se.lu.nateko.cp.meta.services.CpVocab -import se.lu.nateko.cp.meta.services.CpmetaVocab +import se.lu.nateko.cp.meta.services.{CpVocab, CpmetaVocab} import se.lu.nateko.cp.meta.utils.rdf4j.* -import se.lu.nateko.cp.meta.api.CloseableIterator -import eu.icoscp.envri.Envri + +import scala.concurrent.{ExecutionContext, Future} +import scala.io.Source class ExtraStationsIngester(extraStationsPath: String)(using ExecutionContext, EnvriConfigs) extends Ingester{ import IcosStationsIngester.* diff --git a/src/main/scala/se/lu/nateko/cp/meta/ingestion/Ingestion.scala b/src/main/scala/se/lu/nateko/cp/meta/ingestion/Ingestion.scala index d52293d77..e303edf97 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/ingestion/Ingestion.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/ingestion/Ingestion.scala @@ -1,25 +1,19 @@ package se.lu.nateko.cp.meta.ingestion -import org.eclipse.rdf4j.model.ValueFactory -import org.eclipse.rdf4j.model.Statement -import se.lu.nateko.cp.meta.utils.rdf4j.Loading -import se.lu.nateko.cp.meta.instanceserver.InstanceServer -import se.lu.nateko.cp.meta.instanceserver.Rdf4jInstanceServer -import se.lu.nateko.cp.meta.instanceserver.RdfUpdate -import org.eclipse.rdf4j.repository.Repository import akka.actor.ActorSystem import akka.stream.Materializer -import java.net.URI - -import scala.concurrent.Future -import scala.concurrent.ExecutionContext -import se.lu.nateko.cp.meta.core.data.EnvriConfigs -import scala.util.Using +import org.eclipse.rdf4j.model.vocabulary.LOCN +import org.eclipse.rdf4j.model.{Statement, ValueFactory} +import org.eclipse.rdf4j.repository.Repository import se.lu.nateko.cp.meta.api.CloseableIterator +import se.lu.nateko.cp.meta.core.data.EnvriConfigs import se.lu.nateko.cp.meta.ingestion.Ingestion.Statements -import se.lu.nateko.cp.meta.utils.rdf4j.Rdf4jStatement -import org.eclipse.rdf4j.model.vocabulary.LOCN -import org.eclipse.rdf4j.model.Literal +import se.lu.nateko.cp.meta.instanceserver.{InstanceServer, Rdf4jInstanceServer, RdfUpdate} +import se.lu.nateko.cp.meta.utils.rdf4j.Loading + +import java.net.URI +import scala.concurrent.{ExecutionContext, Future} +import scala.util.Using sealed trait StatementProvider{ def isAppendOnly: Boolean = false diff --git a/src/main/scala/se/lu/nateko/cp/meta/ingestion/LocalSparqlConstructExtractor.scala b/src/main/scala/se/lu/nateko/cp/meta/ingestion/LocalSparqlConstructExtractor.scala index ea71f10a4..803457cc5 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/ingestion/LocalSparqlConstructExtractor.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/ingestion/LocalSparqlConstructExtractor.scala @@ -1,16 +1,12 @@ package se.lu.nateko.cp.meta.ingestion -import java.nio.file.{Files, Paths} - +import org.eclipse.rdf4j.model.Statement import org.eclipse.rdf4j.repository.Repository +import se.lu.nateko.cp.meta.api.{CloseableIterator, SparqlQuery} +import se.lu.nateko.cp.meta.services.Rdf4jSparqlRunner -import scala.concurrent.ExecutionContext -import scala.concurrent.Future +import scala.concurrent.{ExecutionContext, Future} import scala.io.Source -import se.lu.nateko.cp.meta.api.SparqlQuery -import se.lu.nateko.cp.meta.services.Rdf4jSparqlRunner -import se.lu.nateko.cp.meta.api.CloseableIterator -import org.eclipse.rdf4j.model.Statement class LocalSparqlConstructExtractor(queryRes: String, extras: String*)(using ExecutionContext) extends Extractor{ diff --git a/src/main/scala/se/lu/nateko/cp/meta/ingestion/PeopleAndOrgsIngester.scala b/src/main/scala/se/lu/nateko/cp/meta/ingestion/PeopleAndOrgsIngester.scala index b3d7e96b6..40ea51d99 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/ingestion/PeopleAndOrgsIngester.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/ingestion/PeopleAndOrgsIngester.scala @@ -1,23 +1,17 @@ package se.lu.nateko.cp.meta.ingestion -import scala.io.Source -import org.eclipse.rdf4j.model.IRI -import org.eclipse.rdf4j.model.Value -import org.eclipse.rdf4j.model.ValueFactory -import org.eclipse.rdf4j.model.vocabulary.RDF -import org.eclipse.rdf4j.model.vocabulary.RDFS -import se.lu.nateko.cp.meta.api.UriId +import eu.icoscp.envri.Envri +import org.eclipse.rdf4j.model.vocabulary.{RDF, RDFS} +import org.eclipse.rdf4j.model.{IRI, Value, ValueFactory} +import se.lu.nateko.cp.meta.api.{CloseableIterator, UriId} +import se.lu.nateko.cp.meta.core.data.EnvriConfigs import se.lu.nateko.cp.meta.metaflow.Researcher -import se.lu.nateko.cp.meta.services.CpVocab -import se.lu.nateko.cp.meta.services.CpmetaVocab +import se.lu.nateko.cp.meta.services.{CpVocab, CpmetaVocab} import se.lu.nateko.cp.meta.utils.rdf4j.* -import scala.concurrent.Future -import eu.icoscp.envri.Envri -import se.lu.nateko.cp.meta.core.data.EnvriConfigs +import scala.concurrent.{ExecutionContext, Future} +import scala.io.Source import scala.util.Using -import se.lu.nateko.cp.meta.api.CloseableIterator -import scala.concurrent.ExecutionContext class PeopleAndOrgsIngester(pathToTextRes: String)(using EnvriConfigs, ExecutionContext) extends Ingester{ diff --git a/src/main/scala/se/lu/nateko/cp/meta/ingestion/RdfXmlFileIngester.scala b/src/main/scala/se/lu/nateko/cp/meta/ingestion/RdfXmlFileIngester.scala index f97471a2e..5a5e46a7e 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/ingestion/RdfXmlFileIngester.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/ingestion/RdfXmlFileIngester.scala @@ -1,10 +1,10 @@ package se.lu.nateko.cp.meta.ingestion +import org.eclipse.rdf4j.model.ValueFactory import org.eclipse.rdf4j.rio.RDFFormat import se.lu.nateko.cp.meta.utils.rdf4j.* -import org.eclipse.rdf4j.model.ValueFactory -import scala.concurrent.Future -import scala.concurrent.ExecutionContext + +import scala.concurrent.{ExecutionContext, Future} //TODO Consider rewriting using a parser only, without loading all statements into memory diff --git a/src/main/scala/se/lu/nateko/cp/meta/ingestion/RemoteSparqlConstructIngester.scala b/src/main/scala/se/lu/nateko/cp/meta/ingestion/RemoteSparqlConstructIngester.scala index 885f390fb..fb9d2171f 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/ingestion/RemoteSparqlConstructIngester.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/ingestion/RemoteSparqlConstructIngester.scala @@ -1,27 +1,18 @@ package se.lu.nateko.cp.meta.ingestion -import java.net.URI - -import scala.concurrent.Future - -import org.eclipse.rdf4j.model.IRI -import org.eclipse.rdf4j.model.ValueFactory -import org.eclipse.rdf4j.rio.helpers.ContextStatementCollector -import org.eclipse.rdf4j.rio.turtle.TurtleParser - import akka.actor.ActorSystem import akka.http.scaladsl.Http -import akka.http.scaladsl.model.HttpMethods -import akka.http.scaladsl.model.HttpRequest -import akka.http.scaladsl.model.HttpResponse -import akka.http.scaladsl.model.MediaTypes -import akka.http.scaladsl.model.StatusCodes -import akka.http.scaladsl.model.headers -import akka.stream.scaladsl.StreamConverters -import se.lu.nateko.cp.meta.utils.rdf4j.toRdf +import akka.http.scaladsl.model.{HttpMethods, HttpRequest, HttpResponse, MediaTypes, StatusCodes, headers} import akka.stream.Materializer +import akka.stream.scaladsl.StreamConverters +import org.eclipse.rdf4j.model.{IRI, ValueFactory} +import org.eclipse.rdf4j.rio.helpers.ContextStatementCollector +import org.eclipse.rdf4j.rio.turtle.TurtleParser import se.lu.nateko.cp.meta.api.CloseableIterator -import scala.concurrent.ExecutionContext +import se.lu.nateko.cp.meta.utils.rdf4j.toRdf + +import java.net.URI +import scala.concurrent.{ExecutionContext, Future} class RemoteRdfGraphIngester( endpoint: URI, rdfGraph: URI diff --git a/src/main/scala/se/lu/nateko/cp/meta/ingestion/badm/BadmEntry.scala b/src/main/scala/se/lu/nateko/cp/meta/ingestion/badm/BadmEntry.scala index f61b1c103..d47cebe76 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/ingestion/badm/BadmEntry.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/ingestion/badm/BadmEntry.scala @@ -1,12 +1,10 @@ package se.lu.nateko.cp.meta.ingestion.badm -import java.time.LocalDate -import java.time.LocalDateTime - import se.lu.nateko.cp.meta.core.etcupload.StationId -import java.text.NumberFormat + +import java.text.{NumberFormat, ParseException} +import java.time.{LocalDate, LocalDateTime} import java.util.Locale -import java.text.ParseException sealed trait BadmDate case class BadmYear(year: Int) extends BadmDate diff --git a/src/main/scala/se/lu/nateko/cp/meta/ingestion/badm/EtcEntriesFetcher.scala b/src/main/scala/se/lu/nateko/cp/meta/ingestion/badm/EtcEntriesFetcher.scala index e9cea8b29..326849b97 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/ingestion/badm/EtcEntriesFetcher.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/ingestion/badm/EtcEntriesFetcher.scala @@ -1,22 +1,15 @@ package se.lu.nateko.cp.meta.ingestion.badm -import scala.concurrent.Future - import akka.actor.ActorSystem import akka.http.scaladsl.Http import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport.* import akka.http.scaladsl.marshalling.Marshal -import akka.http.scaladsl.model.HttpMethods -import akka.http.scaladsl.model.HttpRequest -import akka.http.scaladsl.model.HttpResponse -import akka.http.scaladsl.model.RequestEntity -import akka.http.scaladsl.model.StatusCodes -import akka.http.scaladsl.model.Uri +import akka.http.scaladsl.model.{HttpMethods, HttpRequest, HttpResponse, RequestEntity, StatusCodes, Uri} import akka.http.scaladsl.unmarshalling.Unmarshal import akka.stream.Materializer -import spray.json.JsObject -import spray.json.JsValue -import scala.concurrent.ExecutionContext +import spray.json.{JsObject, JsValue} + +import scala.concurrent.{ExecutionContext, Future} object EtcEntriesFetcher { diff --git a/src/main/scala/se/lu/nateko/cp/meta/ingestion/badm/IcosBadmFetcher.scala b/src/main/scala/se/lu/nateko/cp/meta/ingestion/badm/IcosBadmFetcher.scala index ade3e6ec9..d417dd58c 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/ingestion/badm/IcosBadmFetcher.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/ingestion/badm/IcosBadmFetcher.scala @@ -1,10 +1,11 @@ package se.lu.nateko.cp.meta.ingestion.badm import akka.actor.ActorSystem +import akka.http.scaladsl.model.Uri import akka.stream.Materializer -import scala.concurrent.Future import spray.json.JsObject -import akka.http.scaladsl.model.Uri + +import scala.concurrent.Future class IcosBadmFetcher(implicit system: ActorSystem, m: Materializer){ val serviceUrl = "http://www.europe-fluxdata.eu/metadata.aspx/getIcosMetadata" diff --git a/src/main/scala/se/lu/nateko/cp/meta/ingestion/badm/Parser.scala b/src/main/scala/se/lu/nateko/cp/meta/ingestion/badm/Parser.scala index ff7bc1959..8bff897a3 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/ingestion/badm/Parser.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/ingestion/badm/Parser.scala @@ -1,23 +1,16 @@ package se.lu.nateko.cp.meta.ingestion.badm -import java.text.ParseException -import java.time.LocalDate - -import BadmConsts.* -import com.opencsv.CSVParserBuilder -import com.opencsv.CSVReaderBuilder +import com.opencsv.{CSVParserBuilder, CSVReaderBuilder} +import se.lu.nateko.cp.meta.core.etcupload.StationId +import spray.json.{JsArray, JsNumber, JsObject, JsString, JsValue} -import spray.json.JsArray -import spray.json.JsNumber -import spray.json.JsObject -import spray.json.JsString import java.io.StringReader -import java.time.LocalDateTime - -import se.lu.nateko.cp.meta.core.etcupload.StationId -import spray.json.JsValue +import java.text.ParseException +import java.time.{LocalDate, LocalDateTime} import scala.util.control.NoStackTrace +import BadmConsts.* + object Parser { def parseEntriesFromCsv(src: String): Seq[BadmEntry] = { diff --git a/src/main/scala/se/lu/nateko/cp/meta/instanceserver/InstanceServer.scala b/src/main/scala/se/lu/nateko/cp/meta/instanceserver/InstanceServer.scala index 195686eee..90e571f4a 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/instanceserver/InstanceServer.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/instanceserver/InstanceServer.scala @@ -1,25 +1,17 @@ package se.lu.nateko.cp.meta.instanceserver import org.eclipse.rdf4j.model.* -import org.eclipse.rdf4j.model.vocabulary.RDF -import org.eclipse.rdf4j.model.vocabulary.RDFS -import org.eclipse.rdf4j.model.vocabulary.XSD -import se.lu.nateko.cp.meta.api.CloseableIterator -import se.lu.nateko.cp.meta.api.CloseableIterator.empty -import se.lu.nateko.cp.meta.api.SparqlRunner +import org.eclipse.rdf4j.model.vocabulary.{RDF, RDFS, XSD} +import se.lu.nateko.cp.meta.api.{CloseableIterator, SparqlRunner} import se.lu.nateko.cp.meta.core.crypto.Sha256Sum import se.lu.nateko.cp.meta.core.data.UriResource import se.lu.nateko.cp.meta.services.upload.MetadataUpdater -import se.lu.nateko.cp.meta.utils.Validated -import se.lu.nateko.cp.meta.utils.Validated.CardinalityExpectation -import se.lu.nateko.cp.meta.utils.Validated.validateSize -import se.lu.nateko.cp.meta.utils.parseInstant -import se.lu.nateko.cp.meta.utils.rdf4j.=== -import se.lu.nateko.cp.meta.utils.rdf4j.toJava +import se.lu.nateko.cp.meta.utils.Validated.{CardinalityExpectation, validateSize} +import se.lu.nateko.cp.meta.utils.rdf4j.{===, toJava} +import se.lu.nateko.cp.meta.utils.{Validated, parseInstant} import java.net.URI as JavaUri -import java.time.Instant -import java.time.LocalDate +import java.time.{Instant, LocalDate} import scala.util.Try trait InstanceServer extends AutoCloseable: @@ -95,7 +87,7 @@ trait TriplestoreConnection extends AutoCloseable: object TriplestoreConnection: - import Validated.CardinalityExpectation.{AtLeastOne, AtMostOne, ExactlyOne} + import Validated.CardinalityExpectation.{AtMostOne, ExactlyOne} type TSC = TriplestoreConnection def getStatements(subject: IRI | Null, predicate: IRI | Null, obj: Value | Null)(using conn: TSC): CloseableIterator[Statement] = diff --git a/src/main/scala/se/lu/nateko/cp/meta/instanceserver/LoggingInstanceServer.scala b/src/main/scala/se/lu/nateko/cp/meta/instanceserver/LoggingInstanceServer.scala index 80453088c..ecee75d3c 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/instanceserver/LoggingInstanceServer.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/instanceserver/LoggingInstanceServer.scala @@ -1,8 +1,6 @@ package se.lu.nateko.cp.meta.instanceserver -import org.eclipse.rdf4j.model.IRI -import org.eclipse.rdf4j.model.Statement -import org.eclipse.rdf4j.model.Value +import org.eclipse.rdf4j.model.{IRI, Value} import se.lu.nateko.cp.meta.persistence.RdfUpdateLog import scala.util.Try diff --git a/src/main/scala/se/lu/nateko/cp/meta/instanceserver/Rdf4jInstanceServer.scala b/src/main/scala/se/lu/nateko/cp/meta/instanceserver/Rdf4jInstanceServer.scala index ef6fef530..010c167c7 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/instanceserver/Rdf4jInstanceServer.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/instanceserver/Rdf4jInstanceServer.scala @@ -1,22 +1,14 @@ package se.lu.nateko.cp.meta.instanceserver -import org.eclipse.rdf4j.model.IRI -import org.eclipse.rdf4j.model.Statement -import org.eclipse.rdf4j.model.Value -import org.eclipse.rdf4j.model.ValueFactory -import org.eclipse.rdf4j.query.BindingSet -import org.eclipse.rdf4j.query.QueryLanguage -import org.eclipse.rdf4j.repository.Repository -import org.eclipse.rdf4j.repository.RepositoryConnection -import se.lu.nateko.cp.meta.api.CloseableIterator -import se.lu.nateko.cp.meta.api.SparqlQuery -import se.lu.nateko.cp.meta.api.SparqlRunner -import se.lu.nateko.cp.meta.instanceserver.TriplestoreConnection +import org.eclipse.rdf4j.model.{IRI, Statement, Value, ValueFactory} +import org.eclipse.rdf4j.query.{BindingSet, QueryLanguage} +import org.eclipse.rdf4j.repository.{Repository, RepositoryConnection} +import org.eclipse.rdf4j.sail.SailConnection +import se.lu.nateko.cp.meta.api.{CloseableIterator, SparqlQuery, SparqlRunner} import se.lu.nateko.cp.meta.utils.rdf4j.* import java.util.UUID import scala.util.Try -import org.eclipse.rdf4j.sail.SailConnection class Rdf4jInstanceServer(repo: Repository, val readContexts: Seq[IRI], val writeContext: IRI) extends InstanceServer: diff --git a/src/main/scala/se/lu/nateko/cp/meta/instanceserver/WriteNotifyingInstanceServer.scala b/src/main/scala/se/lu/nateko/cp/meta/instanceserver/WriteNotifyingInstanceServer.scala index 6bfa830ed..e8ef8ca11 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/instanceserver/WriteNotifyingInstanceServer.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/instanceserver/WriteNotifyingInstanceServer.scala @@ -1,8 +1,6 @@ package se.lu.nateko.cp.meta.instanceserver -import org.eclipse.rdf4j.model.IRI -import org.eclipse.rdf4j.model.Statement -import org.eclipse.rdf4j.model.Value +import org.eclipse.rdf4j.model.{IRI, Value} import scala.util.Try diff --git a/src/main/scala/se/lu/nateko/cp/meta/metaflow/MetaFlow.scala b/src/main/scala/se/lu/nateko/cp/meta/metaflow/MetaFlow.scala index d038a4806..e3b1bdb19 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/metaflow/MetaFlow.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/metaflow/MetaFlow.scala @@ -1,19 +1,14 @@ package se.lu.nateko.cp.meta.metaflow import akka.actor.ActorSystem -import akka.stream.IOResult -import akka.stream.Materializer import akka.stream.scaladsl.Sink +import akka.stream.{IOResult, Materializer} import akka.util.ByteString import se.lu.nateko.cp.cpauth.core.UserId -import se.lu.nateko.cp.meta.CitiesMetaFlowConfig -import se.lu.nateko.cp.meta.CpmetaConfig -import se.lu.nateko.cp.meta.IcosMetaFlowConfig -import se.lu.nateko.cp.meta.MetaDb -import se.lu.nateko.cp.meta.core.data.EnvriConfigs -import se.lu.nateko.cp.meta.core.data.flattenToSeq +import se.lu.nateko.cp.meta.core.data.{EnvriConfigs, flattenToSeq} import se.lu.nateko.cp.meta.metaflow.cities.CitiesMetaFlow import se.lu.nateko.cp.meta.metaflow.icos.IcosMetaFlow +import se.lu.nateko.cp.meta.{CitiesMetaFlowConfig, CpmetaConfig, IcosMetaFlowConfig, MetaDb} import java.nio.file.Path import scala.concurrent.Future diff --git a/src/main/scala/se/lu/nateko/cp/meta/metaflow/RdfDiffCalc.scala b/src/main/scala/se/lu/nateko/cp/meta/metaflow/RdfDiffCalc.scala index d4dfa1ea2..d87d43a4c 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/metaflow/RdfDiffCalc.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/metaflow/RdfDiffCalc.scala @@ -1,15 +1,9 @@ package se.lu.nateko.cp.meta.metaflow -import org.eclipse.rdf4j.model.IRI -import org.eclipse.rdf4j.model.Resource -import org.eclipse.rdf4j.model.Statement -import org.eclipse.rdf4j.model.Value -import org.eclipse.rdf4j.model.ValueFactory +import org.eclipse.rdf4j.model.{IRI, Resource, Statement, Value, ValueFactory} import se.lu.nateko.cp.meta.api.UriId -import se.lu.nateko.cp.meta.metaflow.RdfDiffBuilder.Assertion -import se.lu.nateko.cp.meta.metaflow.RdfDiffBuilder.Retraction -import se.lu.nateko.cp.meta.metaflow.RdfDiffBuilder.WeakRetraction import se.lu.nateko.cp.meta.instanceserver.RdfUpdate +import se.lu.nateko.cp.meta.metaflow.RdfDiffBuilder.{Assertion, Retraction, WeakRetraction} import se.lu.nateko.cp.meta.utils.Validated import se.lu.nateko.cp.meta.utils.rdf4j.=== diff --git a/src/main/scala/se/lu/nateko/cp/meta/metaflow/RdfMaker.scala b/src/main/scala/se/lu/nateko/cp/meta/metaflow/RdfMaker.scala index 4c5cddc81..2b3211c9f 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/metaflow/RdfMaker.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/metaflow/RdfMaker.scala @@ -1,23 +1,26 @@ package se.lu.nateko.cp.meta.metaflow import eu.icoscp.envri.Envri -import org.eclipse.rdf4j.model.IRI -import org.eclipse.rdf4j.model.Resource -import org.eclipse.rdf4j.model.Statement -import org.eclipse.rdf4j.model.Value -import org.eclipse.rdf4j.model.ValueFactory -import org.eclipse.rdf4j.model.vocabulary.RDF -import org.eclipse.rdf4j.model.vocabulary.RDFS -import org.eclipse.rdf4j.model.vocabulary.XSD -import se.lu.nateko.cp.meta.api.UriId -import se.lu.nateko.cp.meta.core.data.{InstrumentDeployment as _, *} -import se.lu.nateko.cp.meta.services.CpVocab -import se.lu.nateko.cp.meta.services.CpmetaVocab +import org.eclipse.rdf4j.model.vocabulary.{RDF, RDFS, XSD} +import org.eclipse.rdf4j.model.{IRI, Resource, Statement, Value, ValueFactory} +import se.lu.nateko.cp.meta.core.data.{ + InstrumentDeployment as _, + GeoFeature, + UriResource, + StationSpecifics, + EtcStationSpecifics, + AtcStationSpecifics, + IcosStationSpecifics, + IcosCitiesStationSpecifics, + SitesStationSpecifics, + NoStationSpecifics, + Position, + Organization +} import se.lu.nateko.cp.meta.services.upload.StatementsProducer +import se.lu.nateko.cp.meta.services.{CpVocab, CpmetaVocab} import se.lu.nateko.cp.meta.utils.rdf4j.* -import java.time.Instant - class RdfMaker(vocab: CpVocab, val meta: CpmetaVocab)(using Envri) { private given factory: ValueFactory = vocab.factory diff --git a/src/main/scala/se/lu/nateko/cp/meta/metaflow/RdfReader.scala b/src/main/scala/se/lu/nateko/cp/meta/metaflow/RdfReader.scala index deb6b7039..03c7ad24b 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/metaflow/RdfReader.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/metaflow/RdfReader.scala @@ -1,29 +1,17 @@ package se.lu.nateko.cp.meta.metaflow -import org.eclipse.rdf4j.model.IRI -import org.eclipse.rdf4j.model.Statement -import org.eclipse.rdf4j.model.Value -import org.eclipse.rdf4j.model.ValueFactory -import org.eclipse.rdf4j.model.vocabulary.RDF -import org.eclipse.rdf4j.model.vocabulary.RDFS +import org.eclipse.rdf4j.model.vocabulary.{RDF, RDFS} +import org.eclipse.rdf4j.model.{IRI, Statement, ValueFactory} +import se.lu.nateko.cp.meta.api.RdfLens.{CpLens, DocConn, DocLens, MetaConn, MetaLens} import se.lu.nateko.cp.meta.api.UriId -import se.lu.nateko.cp.meta.api.RdfLens.{MetaConn, DocConn, MetaLens, DocLens, CpLens} -import se.lu.nateko.cp.meta.core.data.EnvriConfigs -import se.lu.nateko.cp.meta.core.data.Funder -import se.lu.nateko.cp.meta.core.data.Orcid -import se.lu.nateko.cp.meta.core.data.Organization -import se.lu.nateko.cp.meta.core.data.Person -import se.lu.nateko.cp.meta.core.data.Position -import se.lu.nateko.cp.meta.instanceserver.InstanceServer -import se.lu.nateko.cp.meta.instanceserver.RdfUpdate -import se.lu.nateko.cp.meta.services.CpVocab +import se.lu.nateko.cp.meta.core.data.{EnvriConfigs, Funder} +import se.lu.nateko.cp.meta.instanceserver.TriplestoreConnection.* +import se.lu.nateko.cp.meta.instanceserver.{InstanceServer, RdfUpdate} import se.lu.nateko.cp.meta.services.MetadataException +import se.lu.nateko.cp.meta.services.upload.DobjMetaReader import se.lu.nateko.cp.meta.utils.Validated -import se.lu.nateko.cp.meta.utils.Validated.CardinalityExpectation -import se.lu.nateko.cp.meta.utils.Validated.validateSize +import se.lu.nateko.cp.meta.utils.Validated.{CardinalityExpectation, validateSize} import se.lu.nateko.cp.meta.utils.rdf4j.toRdf -import se.lu.nateko.cp.meta.instanceserver.TriplestoreConnection.* -import se.lu.nateko.cp.meta.services.upload.DobjMetaReader class MetaflowLenses(val cpLens: CpLens, val envriLens: MetaLens, val docLens: DocLens) diff --git a/src/main/scala/se/lu/nateko/cp/meta/metaflow/RolesDiffCalc.scala b/src/main/scala/se/lu/nateko/cp/meta/metaflow/RolesDiffCalc.scala index 8800d1630..6c9f14bb6 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/metaflow/RolesDiffCalc.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/metaflow/RolesDiffCalc.scala @@ -1,8 +1,9 @@ package se.lu.nateko.cp.meta.metaflow -import scala.collection.mutable.Set import se.lu.nateko.cp.meta.api.UriId +import scala.collection.mutable.Set + object RolesDiffCalc{ def resultingMembsForSameAssumedRole[T <: TC](current: Seq[Membership[T]], latest: Seq[Membership[T]]): Seq[Membership[T]] = { diff --git a/src/main/scala/se/lu/nateko/cp/meta/metaflow/StateDiffApplier.scala b/src/main/scala/se/lu/nateko/cp/meta/metaflow/StateDiffApplier.scala index 648f3259f..7e41dc34e 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/metaflow/StateDiffApplier.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/metaflow/StateDiffApplier.scala @@ -1,12 +1,9 @@ package se.lu.nateko.cp.meta.metaflow import eu.icoscp.envri.Envri -import se.lu.nateko.cp.meta.CitiesMetaFlowConfig -import se.lu.nateko.cp.meta.IcosMetaFlowConfig -import se.lu.nateko.cp.meta.MetaDb -import se.lu.nateko.cp.meta.MetaFlowConfig -import se.lu.nateko.cp.meta.core.data.EnvriConfigs import org.slf4j.LoggerFactory +import se.lu.nateko.cp.meta.core.data.EnvriConfigs +import se.lu.nateko.cp.meta.{CitiesMetaFlowConfig, IcosMetaFlowConfig, MetaDb, MetaFlowConfig} class StateDiffApplier( diff --git a/src/main/scala/se/lu/nateko/cp/meta/metaflow/TcMetadata.scala b/src/main/scala/se/lu/nateko/cp/meta/metaflow/TcMetadata.scala index 03cdf9250..0a5665c94 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/metaflow/TcMetadata.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/metaflow/TcMetadata.scala @@ -1,15 +1,12 @@ package se.lu.nateko.cp.meta.metaflow import akka.stream.scaladsl.Source -import java.time.Instant -import java.time.LocalDateTime import org.eclipse.rdf4j.model.IRI - import se.lu.nateko.cp.meta.api.UriId -import se.lu.nateko.cp.meta.core.data.{Position, Orcid, Station} -import se.lu.nateko.cp.meta.core.data.{Organization, Funding, Funder} -import se.lu.nateko.cp.meta.services.CpVocab -import se.lu.nateko.cp.meta.services.CpmetaVocab +import se.lu.nateko.cp.meta.core.data.{Funder, Funding, Orcid, Organization, Position, Station} +import se.lu.nateko.cp.meta.services.{CpVocab, CpmetaVocab} + +import java.time.Instant trait TC diff --git a/src/main/scala/se/lu/nateko/cp/meta/metaflow/TriggeredMetaSource.scala b/src/main/scala/se/lu/nateko/cp/meta/metaflow/TriggeredMetaSource.scala index 121b804d0..f0c3bf4d4 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/metaflow/TriggeredMetaSource.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/metaflow/TriggeredMetaSource.scala @@ -1,18 +1,13 @@ package se.lu.nateko.cp.meta.metaflow -import scala.concurrent.duration.DurationInt - +import akka.actor.{ActorRef, Status} import akka.event.LoggingAdapter -import akka.actor.ActorRef -import akka.actor.Status -import akka.stream.scaladsl.Source -import akka.stream.CompletionStrategy -import akka.stream.OverflowStrategy -import akka.stream.scaladsl.Keep -import akka.stream.ThrottleMode - +import akka.stream.scaladsl.{Keep, Source} +import akka.stream.{CompletionStrategy, OverflowStrategy, ThrottleMode} import se.lu.nateko.cp.meta.utils.Validated +import scala.concurrent.duration.DurationInt + trait TriggeredMetaSource[T <: TC : TcConf] extends TcMetaSource[T] { def log: LoggingAdapter def readState: Validated[State] diff --git a/src/main/scala/se/lu/nateko/cp/meta/metaflow/cities/CitiesMetaFlow.scala b/src/main/scala/se/lu/nateko/cp/meta/metaflow/cities/CitiesMetaFlow.scala index d9a87bf19..117e0053e 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/metaflow/cities/CitiesMetaFlow.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/metaflow/cities/CitiesMetaFlow.scala @@ -4,18 +4,11 @@ import akka.actor.ActorSystem import akka.stream.Materializer import akka.stream.scaladsl.Sink import eu.icoscp.envri.Envri -import se.lu.nateko.cp.meta.CitiesMetaFlowConfig -import se.lu.nateko.cp.meta.MetaDb -import se.lu.nateko.cp.meta.MetaUploadConf -import se.lu.nateko.cp.meta.core.data.AtcStationSpecifics -import se.lu.nateko.cp.meta.core.data.CountryCode -import se.lu.nateko.cp.meta.core.data.EnvriConfigs -import se.lu.nateko.cp.meta.core.data.IcosCitiesStationSpecifics +import se.lu.nateko.cp.meta.core.data.{AtcStationSpecifics, CountryCode, EnvriConfigs, IcosCitiesStationSpecifics} import se.lu.nateko.cp.meta.metaflow.* -import se.lu.nateko.cp.meta.metaflow.icos.ATC -import se.lu.nateko.cp.meta.metaflow.icos.AtcConf -import se.lu.nateko.cp.meta.metaflow.icos.AtcMetaSource +import se.lu.nateko.cp.meta.metaflow.icos.{ATC, AtcConf, AtcMetaSource} import se.lu.nateko.cp.meta.services.MetadataException +import se.lu.nateko.cp.meta.{CitiesMetaFlowConfig, MetaDb, MetaUploadConf} object CitiesMetaFlow: def init( diff --git a/src/main/scala/se/lu/nateko/cp/meta/metaflow/cities/CitiesTcConf.scala b/src/main/scala/se/lu/nateko/cp/meta/metaflow/cities/CitiesTcConf.scala index f59977d97..da00cbf59 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/metaflow/cities/CitiesTcConf.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/metaflow/cities/CitiesTcConf.scala @@ -1,9 +1,9 @@ package se.lu.nateko.cp.meta.metaflow.cities +import org.eclipse.rdf4j.model.IRI +import se.lu.nateko.cp.meta.core.data.CityNetwork import se.lu.nateko.cp.meta.metaflow.{TC, TcConf} import se.lu.nateko.cp.meta.services.CpmetaVocab -import se.lu.nateko.cp.meta.core.data.CityNetwork -import org.eclipse.rdf4j.model.IRI sealed trait CitiesTC(val network: CityNetwork) extends TC diff --git a/src/main/scala/se/lu/nateko/cp/meta/metaflow/cities/MidLowCostMetaSource.scala b/src/main/scala/se/lu/nateko/cp/meta/metaflow/cities/MidLowCostMetaSource.scala index 6e7e02278..244cc656c 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/metaflow/cities/MidLowCostMetaSource.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/metaflow/cities/MidLowCostMetaSource.scala @@ -5,9 +5,9 @@ import se.lu.nateko.cp.meta.MetaUploadConf import se.lu.nateko.cp.meta.api.UriId import se.lu.nateko.cp.meta.core.data.* import se.lu.nateko.cp.meta.metaflow.* -import se.lu.nateko.cp.meta.utils.Validated -import se.lu.nateko.cp.meta.metaflow.icos.AtcMetaSource.{parseFromCsv, lookUpMandatory} +import se.lu.nateko.cp.meta.metaflow.icos.AtcMetaSource.{lookUpMandatory, parseFromCsv} import se.lu.nateko.cp.meta.metaflow.icos.EtcMetaSource.{Lookup, dummyUri} +import se.lu.nateko.cp.meta.utils.Validated class MidLowCostMetaSource[T <: CitiesTC : TcConf]( conf: MetaUploadConf, diff --git a/src/main/scala/se/lu/nateko/cp/meta/metaflow/icos/AtcMetaSource.scala b/src/main/scala/se/lu/nateko/cp/meta/metaflow/icos/AtcMetaSource.scala index 26af98d82..e4e5c7026 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/metaflow/icos/AtcMetaSource.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/metaflow/icos/AtcMetaSource.scala @@ -6,19 +6,15 @@ import se.lu.nateko.cp.meta.api.UriId import se.lu.nateko.cp.meta.core.data.* import se.lu.nateko.cp.meta.metaflow.* import se.lu.nateko.cp.meta.services.CpVocab -import se.lu.nateko.cp.meta.services.MetadataException import se.lu.nateko.cp.meta.utils.Validated -import java.io.BufferedInputStream -import java.io.FileInputStream -import java.io.InputStreamReader +import java.io.{BufferedInputStream, FileInputStream, InputStreamReader} import java.net.URI import java.nio.file.Path -import java.time.Instant -import java.time.LocalDate +import java.time.{Instant, LocalDate} +import scala.util.Using import EtcMetaSource.{Lookup, lookUp, lookUpOrcid, dummyUri} -import scala.util.Using class AtcMetaSource(conf: MetaUploadConf)(using ActorSystem) extends FileDropMetaSource[ATC.type](conf): import AtcMetaSource.* diff --git a/src/main/scala/se/lu/nateko/cp/meta/metaflow/icos/EtcMetaSource.scala b/src/main/scala/se/lu/nateko/cp/meta/metaflow/icos/EtcMetaSource.scala index 77b4abc35..1169158f9 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/metaflow/icos/EtcMetaSource.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/metaflow/icos/EtcMetaSource.scala @@ -1,43 +1,41 @@ package se.lu.nateko.cp.meta.metaflow.icos -import java.time.Instant -import java.time.LocalDate -import java.time.LocalDateTime -import java.time.LocalTime -import java.time.ZoneOffset - -import scala.concurrent.Future -import scala.concurrent.duration.DurationInt -import scala.util.Failure - import akka.NotUsed import akka.actor.ActorSystem +import akka.event.Logging import akka.http.scaladsl.Http -import akka.http.scaladsl.model.HttpRequest -import akka.http.scaladsl.model.Uri -import akka.stream.ActorAttributes -import akka.stream.Materializer -import akka.stream.Supervision +import akka.http.scaladsl.model.{HttpRequest, Uri} import akka.stream.scaladsl.Source +import akka.stream.{ActorAttributes, Materializer, Supervision} import akka.util.ByteString +import eu.icoscp.envri.Envri import se.lu.nateko.cp.meta.EtcConfig import se.lu.nateko.cp.meta.api.UriId -import se.lu.nateko.cp.meta.ingestion.badm.Badm -import se.lu.nateko.cp.meta.ingestion.badm.BadmLocalDate -import se.lu.nateko.cp.meta.ingestion.badm.BadmLocalDateTime -import se.lu.nateko.cp.meta.core.data.{InstrumentDeployment => _, *} -import se.lu.nateko.cp.meta.core.etcupload.DataType -import se.lu.nateko.cp.meta.core.etcupload.StationId +import se.lu.nateko.cp.meta.core.data.{ + Orcid, + Position, + CountryCode, + Organization, + UriResource, + Funder, + Funding, + Station, + EtcStationSpecifics, + PositionUtil +} +import se.lu.nateko.cp.meta.core.etcupload.{DataType, StationId} +import se.lu.nateko.cp.meta.ingestion.badm.{Badm, BadmLocalDate, BadmLocalDateTime, BadmYear} import se.lu.nateko.cp.meta.metaflow.* -import se.lu.nateko.cp.meta.services.CpmetaVocab -import se.lu.nateko.cp.meta.services.CpVocab import se.lu.nateko.cp.meta.services.upload.etc.* +import se.lu.nateko.cp.meta.services.{CpVocab, CpmetaVocab} import se.lu.nateko.cp.meta.utils.Validated import se.lu.nateko.cp.meta.utils.rdf4j.* + import java.net.URI -import se.lu.nateko.cp.meta.ingestion.badm.BadmYear -import eu.icoscp.envri.Envri -import akka.event.Logging +import java.time.{Instant, LocalDate, LocalDateTime, LocalTime, ZoneOffset} +import scala.concurrent.Future +import scala.concurrent.duration.DurationInt +import scala.util.Failure class EtcMetaSource(conf: EtcConfig, vocab: CpVocab)(using system: ActorSystem, mat: Materializer) extends TcMetaSource[ETC.type] { diff --git a/src/main/scala/se/lu/nateko/cp/meta/metaflow/icos/IcosMetaFlow.scala b/src/main/scala/se/lu/nateko/cp/meta/metaflow/icos/IcosMetaFlow.scala index 81e596c0b..b3dc8a4ae 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/metaflow/icos/IcosMetaFlow.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/metaflow/icos/IcosMetaFlow.scala @@ -3,14 +3,12 @@ package se.lu.nateko.cp.meta.metaflow.icos import akka.actor.ActorSystem import akka.stream.Materializer import akka.stream.scaladsl.Sink -import se.lu.nateko.cp.meta.EtcConfig -import se.lu.nateko.cp.meta.IcosMetaFlowConfig -import se.lu.nateko.cp.meta.MetaDb +import eu.icoscp.envri.Envri +import se.lu.nateko.cp.meta.core.data.EnvriConfigs import se.lu.nateko.cp.meta.instanceserver.WriteNotifyingInstanceServer import se.lu.nateko.cp.meta.metaflow.* import se.lu.nateko.cp.meta.services.Rdf4jSparqlRunner -import eu.icoscp.envri.Envri -import se.lu.nateko.cp.meta.core.data.EnvriConfigs +import se.lu.nateko.cp.meta.{EtcConfig, IcosMetaFlowConfig, MetaDb} object IcosMetaFlow: diff --git a/src/main/scala/se/lu/nateko/cp/meta/metaflow/icos/OtcMetaSource.scala b/src/main/scala/se/lu/nateko/cp/meta/metaflow/icos/OtcMetaSource.scala index 0f1f9327c..fbc4b3f35 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/metaflow/icos/OtcMetaSource.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/metaflow/icos/OtcMetaSource.scala @@ -1,34 +1,19 @@ package se.lu.nateko.cp.meta.metaflow.icos import akka.actor.ActorRef -import akka.actor.Status import akka.event.LoggingAdapter -import akka.stream.OverflowStrategy -import akka.stream.ThrottleMode -import akka.stream.scaladsl.Keep -import akka.stream.scaladsl.Source -import org.eclipse.rdf4j.model.IRI -import org.eclipse.rdf4j.model.Literal -import org.eclipse.rdf4j.model.Value -import org.eclipse.rdf4j.model.ValueFactory import org.eclipse.rdf4j.model.vocabulary.XSD +import org.eclipse.rdf4j.model.{IRI, Literal, Value, ValueFactory} import org.eclipse.rdf4j.query.BindingSet -import se.lu.nateko.cp.meta.api.CustomVocab -import se.lu.nateko.cp.meta.api.SparqlQuery -import se.lu.nateko.cp.meta.api.SparqlRunner -import se.lu.nateko.cp.meta.api.UriId +import se.lu.nateko.cp.meta.api.{CustomVocab, SparqlQuery, SparqlRunner, UriId} import se.lu.nateko.cp.meta.core.data.* import se.lu.nateko.cp.meta.instanceserver.WriteNotifyingInstanceServer import se.lu.nateko.cp.meta.metaflow.* -import se.lu.nateko.cp.meta.services.CpVocab -import se.lu.nateko.cp.meta.services.MetadataException +import se.lu.nateko.cp.meta.services.{CpVocab, MetadataException} import se.lu.nateko.cp.meta.utils.Validated import se.lu.nateko.cp.meta.utils.rdf4j.* import java.time.Instant -import java.time.LocalDate -import scala.concurrent.duration.DurationInt -import scala.util.Try class OtcMetaSource( server: WriteNotifyingInstanceServer, sparql: SparqlRunner, val log: LoggingAdapter diff --git a/src/main/scala/se/lu/nateko/cp/meta/onto/InstOnto.scala b/src/main/scala/se/lu/nateko/cp/meta/onto/InstOnto.scala index f3d5628eb..2acf0b452 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/onto/InstOnto.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/onto/InstOnto.scala @@ -1,26 +1,16 @@ package se.lu.nateko.cp.meta.onto -import org.eclipse.rdf4j.model.IRI -import org.eclipse.rdf4j.model.Literal -import org.eclipse.rdf4j.model.Statement -import org.eclipse.rdf4j.model.Value -import org.eclipse.rdf4j.model.ValueFactory -import org.eclipse.rdf4j.model.vocabulary.OWL -import org.eclipse.rdf4j.model.vocabulary.RDF -import org.eclipse.rdf4j.model.vocabulary.RDFS -import org.eclipse.rdf4j.model.vocabulary.XSD +import org.eclipse.rdf4j.model.vocabulary.{OWL, RDF, RDFS, XSD} +import org.eclipse.rdf4j.model.{IRI, Literal, Statement, Value, ValueFactory} import org.eclipse.rdf4j.query.UpdateExecutionException -import org.semanticweb.owlapi.model.{IRI => OwlIri} +import org.semanticweb.owlapi.model.IRI as OwlIri import se.lu.nateko.cp.meta.* -import se.lu.nateko.cp.meta.instanceserver.InstanceServer -import se.lu.nateko.cp.meta.instanceserver.RdfUpdate -import se.lu.nateko.cp.meta.instanceserver.TriplestoreConnection +import se.lu.nateko.cp.meta.instanceserver.{InstanceServer, RdfUpdate, TriplestoreConnection} import se.lu.nateko.cp.meta.utils.rdf4j.* import java.net.URI -import scala.util.Failure -import scala.util.Try import scala.util.control.NoStackTrace +import scala.util.{Failure, Try} import TriplestoreConnection.* diff --git a/src/main/scala/se/lu/nateko/cp/meta/onto/Onto.scala b/src/main/scala/se/lu/nateko/cp/meta/onto/Onto.scala index b20537e99..954d3d9d6 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/onto/Onto.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/onto/Onto.scala @@ -1,19 +1,17 @@ package se.lu.nateko.cp.meta.onto -import java.net.URI - -import scala.collection.concurrent.TrieMap - import org.semanticweb.owlapi.model.* import org.semanticweb.owlapi.model.parameters.Imports import org.semanticweb.owlapi.search.EntitySearcher import org.semanticweb.owlapi.vocab.OWLFacet - import se.lu.nateko.cp.meta.* import se.lu.nateko.cp.meta.onto.labeler.* import se.lu.nateko.cp.meta.onto.reasoner.* import se.lu.nateko.cp.meta.utils.owlapi.* +import java.net.URI +import scala.collection.concurrent.TrieMap + class Onto (owlOntology: OWLOntology) extends java.io.Closeable{ diff --git a/src/main/scala/se/lu/nateko/cp/meta/onto/Vocab.scala b/src/main/scala/se/lu/nateko/cp/meta/onto/Vocab.scala index cee520946..3499a4123 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/onto/Vocab.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/onto/Vocab.scala @@ -1,11 +1,8 @@ package se.lu.nateko.cp.meta.onto -import org.semanticweb.owlapi.model.OWLDataFactory import org.semanticweb.owlapi.apibinding.OWLManager +import org.semanticweb.owlapi.model.{IRI, OWLAnnotationProperty, OWLDataFactory, PrefixManager} import org.semanticweb.owlapi.util.DefaultPrefixManager -import org.semanticweb.owlapi.model.PrefixManager -import org.semanticweb.owlapi.model.OWLAnnotationProperty -import org.semanticweb.owlapi.model.IRI object Vocab { diff --git a/src/main/scala/se/lu/nateko/cp/meta/onto/labeler/ClassIndividualsLabeler.scala b/src/main/scala/se/lu/nateko/cp/meta/onto/labeler/ClassIndividualsLabeler.scala index ea0240810..e20d7a085 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/onto/labeler/ClassIndividualsLabeler.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/onto/labeler/ClassIndividualsLabeler.scala @@ -1,10 +1,11 @@ package se.lu.nateko.cp.meta.onto.labeler -import scala.jdk.CollectionConverters.* import org.semanticweb.owlapi.model.* import org.semanticweb.owlapi.search.EntitySearcher import se.lu.nateko.cp.meta.onto.Vocab +import scala.jdk.CollectionConverters.* + object ClassIndividualsLabeler{ diff --git a/src/main/scala/se/lu/nateko/cp/meta/onto/labeler/Labeler.scala b/src/main/scala/se/lu/nateko/cp/meta/onto/labeler/Labeler.scala index 9d018bd83..0510b2f73 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/onto/labeler/Labeler.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/onto/labeler/Labeler.scala @@ -2,14 +2,10 @@ package se.lu.nateko.cp.meta.onto.labeler import org.eclipse.rdf4j.model.IRI import org.eclipse.rdf4j.model.vocabulary.RDFS -import org.semanticweb.owlapi.model.OWLAnnotationProperty -import org.semanticweb.owlapi.model.OWLEntity -import org.semanticweb.owlapi.model.OWLOntology +import org.semanticweb.owlapi.model.{OWLAnnotationProperty, OWLEntity, OWLOntology} import org.semanticweb.owlapi.search.EntitySearcher import se.lu.nateko.cp.meta.ResourceDto -import se.lu.nateko.cp.meta.instanceserver.InstanceServer -import se.lu.nateko.cp.meta.instanceserver.TriplestoreConnection.TSC -import se.lu.nateko.cp.meta.instanceserver.TriplestoreConnection.getValues +import se.lu.nateko.cp.meta.instanceserver.TriplestoreConnection.{TSC, getValues} import se.lu.nateko.cp.meta.utils.owlapi.* import scala.jdk.CollectionConverters.IteratorHasAsScala diff --git a/src/main/scala/se/lu/nateko/cp/meta/onto/labeler/MultiComponentIndividualLabeler.scala b/src/main/scala/se/lu/nateko/cp/meta/onto/labeler/MultiComponentIndividualLabeler.scala index d7a90385e..f21db606f 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/onto/labeler/MultiComponentIndividualLabeler.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/onto/labeler/MultiComponentIndividualLabeler.scala @@ -1,11 +1,8 @@ package se.lu.nateko.cp.meta.onto.labeler -import org.eclipse.rdf4j.model.IRI -import org.eclipse.rdf4j.model.Literal -import org.semanticweb.owlapi.model.{IRI => OWLIRI, _} -import se.lu.nateko.cp.meta.instanceserver.InstanceServer -import se.lu.nateko.cp.meta.instanceserver.TriplestoreConnection.TSC -import se.lu.nateko.cp.meta.instanceserver.TriplestoreConnection.getValues +import org.eclipse.rdf4j.model.{IRI, Literal} +import org.semanticweb.owlapi.model.{IRI as OWLIRI, OWLObjectProperty} +import se.lu.nateko.cp.meta.instanceserver.TriplestoreConnection.{TSC, getValues} class MultiComponentIndividualLabeler( components: Seq[DisplayComponent], diff --git a/src/main/scala/se/lu/nateko/cp/meta/onto/labeler/UniversalLabeler.scala b/src/main/scala/se/lu/nateko/cp/meta/onto/labeler/UniversalLabeler.scala index ccc19764e..bc0628b9d 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/onto/labeler/UniversalLabeler.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/onto/labeler/UniversalLabeler.scala @@ -1,9 +1,7 @@ package se.lu.nateko.cp.meta.onto.labeler import org.eclipse.rdf4j.model.IRI -import org.semanticweb.owlapi.model.OWLOntology -import org.semanticweb.owlapi.model.{IRI => OwlIri} -import se.lu.nateko.cp.meta.instanceserver.InstanceServer +import org.semanticweb.owlapi.model.{IRI as OwlIri, OWLOntology} import se.lu.nateko.cp.meta.instanceserver.TriplestoreConnection.TSC import se.lu.nateko.cp.meta.onto.InstOnto import se.lu.nateko.cp.meta.utils.rdf4j.* diff --git a/src/main/scala/se/lu/nateko/cp/meta/onto/reasoner/BaseReasoner.scala b/src/main/scala/se/lu/nateko/cp/meta/onto/reasoner/BaseReasoner.scala index b097b8db8..319e136c1 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/onto/reasoner/BaseReasoner.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/onto/reasoner/BaseReasoner.scala @@ -1,14 +1,10 @@ package se.lu.nateko.cp.meta.onto.reasoner -import scala.jdk.CollectionConverters.{IteratorHasAsScala, SeqHasAsJava} -import org.semanticweb.owlapi.search.EntitySearcher import org.semanticweb.owlapi.model.parameters.Imports -import org.semanticweb.owlapi.model.OWLOntology -import org.semanticweb.owlapi.model.OWLClass -import org.semanticweb.owlapi.model.OWLClassExpression -import org.semanticweb.owlapi.model.OWLProperty -import org.semanticweb.owlapi.model.OWLDataProperty -import org.semanticweb.owlapi.model.OWLObjectProperty +import org.semanticweb.owlapi.model.{OWLClass, OWLClassExpression, OWLDataProperty, OWLObjectProperty, OWLOntology, OWLProperty} +import org.semanticweb.owlapi.search.EntitySearcher + +import scala.jdk.CollectionConverters.{IteratorHasAsScala, SeqHasAsJava} abstract class BaseReasoner(ontology: OWLOntology) extends Reasoner { diff --git a/src/main/scala/se/lu/nateko/cp/meta/onto/reasoner/HermitBasedReasoner.scala b/src/main/scala/se/lu/nateko/cp/meta/onto/reasoner/HermitBasedReasoner.scala index b8e9c5360..bdff123b7 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/onto/reasoner/HermitBasedReasoner.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/onto/reasoner/HermitBasedReasoner.scala @@ -1,12 +1,8 @@ package se.lu.nateko.cp.meta.onto.reasoner +import org.semanticweb.owlapi.model.{OWLClass, OWLClassExpression, OWLDataProperty, OWLObjectProperty, OWLOntology, OWLProperty} + import scala.jdk.CollectionConverters.IteratorHasAsScala -import org.semanticweb.owlapi.model.OWLClass -import org.semanticweb.owlapi.model.OWLProperty -import org.semanticweb.owlapi.model.OWLClassExpression -import org.semanticweb.owlapi.model.OWLOntology -import org.semanticweb.owlapi.model.OWLDataProperty -import org.semanticweb.owlapi.model.OWLObjectProperty class HermitBasedReasoner(ontology: OWLOntology) extends BaseReasoner(ontology){ diff --git a/src/main/scala/se/lu/nateko/cp/meta/onto/reasoner/Reasoner.scala b/src/main/scala/se/lu/nateko/cp/meta/onto/reasoner/Reasoner.scala index 39d166869..ff60f40bd 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/onto/reasoner/Reasoner.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/onto/reasoner/Reasoner.scala @@ -1,8 +1,6 @@ package se.lu.nateko.cp.meta.onto.reasoner -import org.semanticweb.owlapi.model.OWLClass -import org.semanticweb.owlapi.model.OWLProperty -import org.semanticweb.owlapi.model.OWLClassExpression +import org.semanticweb.owlapi.model.{OWLClass, OWLClassExpression, OWLProperty} trait Reasoner extends java.io.Closeable{ def getSuperClasses(owlClass: OWLClass, direct: Boolean): Seq[OWLClassExpression] diff --git a/src/main/scala/se/lu/nateko/cp/meta/persistence/InMemoryRdfLog.scala b/src/main/scala/se/lu/nateko/cp/meta/persistence/InMemoryRdfLog.scala index 88f89f008..3c1c05433 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/persistence/InMemoryRdfLog.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/persistence/InMemoryRdfLog.scala @@ -1,9 +1,10 @@ package se.lu.nateko.cp.meta.persistence +import se.lu.nateko.cp.meta.api.CloseableIterator +import se.lu.nateko.cp.meta.instanceserver.RdfUpdate + import java.util.concurrent.ConcurrentLinkedQueue import scala.jdk.CollectionConverters.* -import se.lu.nateko.cp.meta.instanceserver.RdfUpdate -import se.lu.nateko.cp.meta.api.CloseableIterator class InMemoryRdfLog extends RdfUpdateLog{ diff --git a/src/main/scala/se/lu/nateko/cp/meta/persistence/RdfUpdateLog.scala b/src/main/scala/se/lu/nateko/cp/meta/persistence/RdfUpdateLog.scala index 26c230d44..679634274 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/persistence/RdfUpdateLog.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/persistence/RdfUpdateLog.scala @@ -1,8 +1,9 @@ package se.lu.nateko.cp.meta.persistence -import java.io.Closeable -import se.lu.nateko.cp.meta.instanceserver.RdfUpdate import se.lu.nateko.cp.meta.api.CloseableIterator +import se.lu.nateko.cp.meta.instanceserver.RdfUpdate + +import java.io.Closeable import java.time.Instant trait RdfUpdateLog extends Closeable{ diff --git a/src/main/scala/se/lu/nateko/cp/meta/persistence/RdfUpdateLogIngester.scala b/src/main/scala/se/lu/nateko/cp/meta/persistence/RdfUpdateLogIngester.scala index f0951c45c..9d732d5f6 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/persistence/RdfUpdateLogIngester.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/persistence/RdfUpdateLogIngester.scala @@ -1,16 +1,11 @@ package se.lu.nateko.cp.meta.persistence - -import org.eclipse.rdf4j.common.transaction.IsolationLevels import org.eclipse.rdf4j.model.IRI import org.eclipse.rdf4j.repository.Repository - -import scala.util.Try -import scala.util.Failure - import se.lu.nateko.cp.meta.api.CloseableIterator import se.lu.nateko.cp.meta.instanceserver.RdfUpdate import se.lu.nateko.cp.meta.utils.rdf4j.* -import scala.util.Using + +import scala.util.{Try, Using} object RdfUpdateLogIngester: diff --git a/src/main/scala/se/lu/nateko/cp/meta/persistence/postgres/Postgres.scala b/src/main/scala/se/lu/nateko/cp/meta/persistence/postgres/Postgres.scala index e3d5d0f0d..ba8e83e9d 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/persistence/postgres/Postgres.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/persistence/postgres/Postgres.scala @@ -1,8 +1,6 @@ package se.lu.nateko.cp.meta.persistence.postgres -import java.sql.Connection -import java.sql.DriverManager - +import java.sql.{Connection, DriverManager} import scala.util.Try case class DbCredentials(db: String, user: String, password: String) diff --git a/src/main/scala/se/lu/nateko/cp/meta/persistence/postgres/PostgresRdfLog.scala b/src/main/scala/se/lu/nateko/cp/meta/persistence/postgres/PostgresRdfLog.scala index 5492c89da..0818d1d33 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/persistence/postgres/PostgresRdfLog.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/persistence/postgres/PostgresRdfLog.scala @@ -1,16 +1,13 @@ package se.lu.nateko.cp.meta.persistence.postgres -import java.sql.BatchUpdateException -import java.sql.PreparedStatement -import java.sql.Timestamp -import org.eclipse.rdf4j.model.Literal -import org.eclipse.rdf4j.model.IRI -import org.eclipse.rdf4j.model.ValueFactory import org.eclipse.rdf4j.model.vocabulary.XSD -import se.lu.nateko.cp.meta.instanceserver.RdfUpdate -import se.lu.nateko.cp.meta.persistence.RdfUpdateLog +import org.eclipse.rdf4j.model.{IRI, Literal, ValueFactory} import se.lu.nateko.cp.meta.RdflogConfig import se.lu.nateko.cp.meta.api.CloseableIterator +import se.lu.nateko.cp.meta.instanceserver.RdfUpdate +import se.lu.nateko.cp.meta.persistence.RdfUpdateLog + +import java.sql.{BatchUpdateException, PreparedStatement, Timestamp} import java.time.Instant class PostgresRdfLog(logName: String, serv: DbServer, creds: DbCredentials, factory: ValueFactory) extends RdfUpdateLog{ diff --git a/src/main/scala/se/lu/nateko/cp/meta/persistence/postgres/RdfUpdateResultSetIterator.scala b/src/main/scala/se/lu/nateko/cp/meta/persistence/postgres/RdfUpdateResultSetIterator.scala index c8ec86975..7ce057ec4 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/persistence/postgres/RdfUpdateResultSetIterator.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/persistence/postgres/RdfUpdateResultSetIterator.scala @@ -1,13 +1,9 @@ package se.lu.nateko.cp.meta.persistence.postgres -import java.sql.ResultSet - -import org.eclipse.rdf4j.model.IRI -import org.eclipse.rdf4j.model.Value -import org.eclipse.rdf4j.model.ValueFactory - +import org.eclipse.rdf4j.model.{IRI, Value, ValueFactory} import se.lu.nateko.cp.meta.instanceserver.RdfUpdate -import java.sql.Connection + +import java.sql.{Connection, ResultSet} import java.time.Instant class RdfUpdateResultSetIterator(getConn: () => Connection, factory: ValueFactory, selectQuery: String){ diff --git a/src/main/scala/se/lu/nateko/cp/meta/persistence/postgres/ResultSetIterator.scala b/src/main/scala/se/lu/nateko/cp/meta/persistence/postgres/ResultSetIterator.scala index 3c85c0690..68235d8a3 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/persistence/postgres/ResultSetIterator.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/persistence/postgres/ResultSetIterator.scala @@ -1,8 +1,8 @@ package se.lu.nateko.cp.meta.persistence.postgres -import java.sql.ResultSet import se.lu.nateko.cp.meta.api.CloseableIterator -import java.sql.Connection + +import java.sql.{Connection, ResultSet} class ResultSetIterator[T](connectionFactory: () => Connection, resultFactory: ResultSet => T, selectQuery: String) extends CloseableIterator[T]{ private val conn = connectionFactory() diff --git a/src/main/scala/se/lu/nateko/cp/meta/routes/AdminRouting.scala b/src/main/scala/se/lu/nateko/cp/meta/routes/AdminRouting.scala index 01759df7f..08b51b436 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/routes/AdminRouting.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/routes/AdminRouting.scala @@ -1,28 +1,19 @@ package se.lu.nateko.cp.meta.routes - -import akka.Done -import akka.http.scaladsl.model.ContentTypes -import akka.http.scaladsl.model.HttpEntity -import akka.http.scaladsl.model.StatusCodes +import akka.http.scaladsl.model.{ContentTypes, HttpEntity, StatusCodes} import akka.http.scaladsl.server.Directives.* import akka.http.scaladsl.server.Route import akka.stream.scaladsl.Source import akka.util.ByteString -import org.eclipse.rdf4j.model.IRI -import org.eclipse.rdf4j.model.Statement +import org.eclipse.rdf4j.model.{IRI, Statement} import org.eclipse.rdf4j.repository.Repository import se.lu.nateko.cp.meta.SparqlServerConfig import se.lu.nateko.cp.meta.api.SparqlQuery -import se.lu.nateko.cp.meta.api.SparqlRunner -import se.lu.nateko.cp.meta.instanceserver.InstanceServer -import se.lu.nateko.cp.meta.instanceserver.RdfUpdate +import se.lu.nateko.cp.meta.instanceserver.{InstanceServer, RdfUpdate} import se.lu.nateko.cp.meta.services.Rdf4jSparqlRunner -import se.lu.nateko.cp.meta.utils.rdf4j.Rdf4jStatement -import se.lu.nateko.cp.meta.utils.rdf4j.transact +import se.lu.nateko.cp.meta.utils.rdf4j.{Rdf4jStatement, transact} import scala.concurrent.Future -import scala.util.Failure -import scala.util.Success +import scala.util.{Failure, Success} class AdminRouting( diff --git a/src/main/scala/se/lu/nateko/cp/meta/routes/AuthenticationRouting.scala b/src/main/scala/se/lu/nateko/cp/meta/routes/AuthenticationRouting.scala index 2d087679a..e56f4c2bc 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/routes/AuthenticationRouting.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/routes/AuthenticationRouting.scala @@ -1,31 +1,18 @@ package se.lu.nateko.cp.meta.routes -import scala.language.implicitConversions - -import se.lu.nateko.cp.cpauth.core.Authenticator -import se.lu.nateko.cp.cpauth.core.UserId -import se.lu.nateko.cp.cpauth.core.CookieToToken -import akka.http.scaladsl.server.Route -import akka.http.scaladsl.server.StandardRoute -import akka.http.scaladsl.server.Directives.* -import akka.http.scaladsl.server.Directive0 -import akka.http.scaladsl.server.Directive1 -import se.lu.nateko.cp.cpauth.core.PublicAuthConfig - -import scala.util.Success -import scala.util.Failure -import akka.http.scaladsl.model.StatusCodes -import se.lu.nateko.cp.meta.CpmetaJsonProtocol -import akka.http.scaladsl.server.Rejection -import akka.http.scaladsl.server.RejectionHandler -import akka.http.scaladsl.model.headers.`X-Forwarded-For` -import spray.json.JsObject -import spray.json.JsNull -import se.lu.nateko.cp.meta.core.data.{EnvriResolver, EnvriConfigs} -import akka.http.scaladsl.model.headers.HttpCookie -import akka.http.scaladsl.model.headers.SameSite import akka.http.javadsl.server.MissingCookieRejection +import akka.http.scaladsl.model.StatusCodes +import akka.http.scaladsl.model.headers.{HttpCookie, SameSite, `X-Forwarded-For`} +import akka.http.scaladsl.server.Directives.* +import akka.http.scaladsl.server.{Directive0, Directive1, Rejection, RejectionHandler, Route, StandardRoute} import eu.icoscp.envri.Envri +import se.lu.nateko.cp.cpauth.core.{Authenticator, CookieToToken, PublicAuthConfig, UserId} +import se.lu.nateko.cp.meta.CpmetaJsonProtocol +import se.lu.nateko.cp.meta.core.data.{EnvriConfigs, EnvriResolver} +import spray.json.{JsNull, JsObject} + +import scala.language.implicitConversions +import scala.util.{Failure, Success} class AuthenticationRouting(authConf: Map[Envri, PublicAuthConfig])(using EnvriConfigs) extends CpmetaJsonProtocol{ import AuthenticationRouting.* diff --git a/src/main/scala/se/lu/nateko/cp/meta/routes/DoiRoute.scala b/src/main/scala/se/lu/nateko/cp/meta/routes/DoiRoute.scala index 5ec0f0471..a4e900862 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/routes/DoiRoute.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/routes/DoiRoute.scala @@ -1,5 +1,6 @@ package se.lu.nateko.cp.meta.routes +import akka.event.{Logging, LoggingBus} import akka.http.scaladsl.model.StatusCodes import akka.http.scaladsl.server.Directives.* import akka.http.scaladsl.server.Route @@ -12,7 +13,6 @@ import se.lu.nateko.cp.meta.services.upload.* import java.net.URI import scala.language.implicitConversions -import akka.event.{Logging, LoggingBus} object DoiRoute extends CpmetaJsonProtocol{ def apply( diff --git a/src/main/scala/se/lu/nateko/cp/meta/routes/DtoDownloadRoute.scala b/src/main/scala/se/lu/nateko/cp/meta/routes/DtoDownloadRoute.scala index 3424be960..299d30a78 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/routes/DtoDownloadRoute.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/routes/DtoDownloadRoute.scala @@ -1,19 +1,16 @@ package se.lu.nateko.cp.meta.routes - -import scala.language.implicitConversions - -import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport.* -import akka.http.scaladsl.model.Uri -import akka.http.scaladsl.model.StatusCodes -import akka.http.scaladsl.server.Route +import akka.http.scaladsl.model.{StatusCodes, Uri} import akka.http.scaladsl.server.Directives.* +import akka.http.scaladsl.server.Route import akka.http.scaladsl.unmarshalling.Unmarshaller -import scala.concurrent.Future -import scala.util.Try -import se.lu.nateko.cp.meta.core.CommonJsonSupport.WithErrors import se.lu.nateko.cp.meta.CpmetaJsonProtocol -import se.lu.nateko.cp.meta.services.linkeddata.UriSerializer +import se.lu.nateko.cp.meta.core.CommonJsonSupport.WithErrors import se.lu.nateko.cp.meta.services.UploadDtoReader +import se.lu.nateko.cp.meta.services.linkeddata.UriSerializer + +import scala.concurrent.Future +import scala.language.implicitConversions +import scala.util.Try object DtoDownloadRoute extends CpmetaJsonProtocol{ diff --git a/src/main/scala/se/lu/nateko/cp/meta/routes/FilesRoute.scala b/src/main/scala/se/lu/nateko/cp/meta/routes/FilesRoute.scala index 24c497047..62083145e 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/routes/FilesRoute.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/routes/FilesRoute.scala @@ -1,11 +1,10 @@ package se.lu.nateko.cp.meta.routes -import akka.http.scaladsl.server.Route import akka.http.scaladsl.server.Directives.* -import se.lu.nateko.cp.meta.services.FileStorageService import akka.http.scaladsl.server.directives.ContentTypeResolver +import akka.http.scaladsl.server.{PathMatcher1, Route} import se.lu.nateko.cp.meta.core.crypto.Sha256Sum -import akka.http.scaladsl.server.PathMatcher1 +import se.lu.nateko.cp.meta.services.FileStorageService object FilesRoute { diff --git a/src/main/scala/se/lu/nateko/cp/meta/routes/LabelingApiRoute.scala b/src/main/scala/se/lu/nateko/cp/meta/routes/LabelingApiRoute.scala index 787abafbc..4365a2425 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/routes/LabelingApiRoute.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/routes/LabelingApiRoute.scala @@ -1,38 +1,23 @@ package se.lu.nateko.cp.meta.routes -import scala.language.implicitConversions - -import akka.http.scaladsl.model.ContentTypes -import akka.http.scaladsl.model.HttpEntity -import akka.http.scaladsl.model.HttpResponse -import akka.http.scaladsl.model.Multipart -import akka.http.scaladsl.model.ResponseEntity -import akka.http.scaladsl.model.StatusCodes +import akka.http.scaladsl.model.{ContentTypes, HttpEntity, Multipart, StatusCodes} import akka.http.scaladsl.server.Directives.* -import akka.http.scaladsl.server.ExceptionHandler -import akka.http.scaladsl.server.Route +import akka.http.scaladsl.server.{ExceptionHandler, Route} import akka.http.scaladsl.unmarshalling.Unmarshaller import akka.stream.Materializer import akka.stream.scaladsl.Source import akka.util.ByteString -import se.lu.nateko.cp.meta.CpmetaJsonProtocol -import se.lu.nateko.cp.meta.FileDeletionDto -import se.lu.nateko.cp.meta.LabelingStatusUpdate -import se.lu.nateko.cp.meta.LabelingUserDto -import se.lu.nateko.cp.meta.services.IllegalLabelingStatusException -import se.lu.nateko.cp.meta.services.UnauthorizedStationUpdateException -import se.lu.nateko.cp.meta.services.UnauthorizedUserInfoUpdateException -import se.lu.nateko.cp.meta.services.labeling.StationLabelingHistory -import se.lu.nateko.cp.meta.services.labeling.StationLabelingService +import se.lu.nateko.cp.meta.services.labeling.{StationLabelingHistory, StationLabelingService} +import se.lu.nateko.cp.meta.services.{IllegalLabelingStatusException, UnauthorizedStationUpdateException, UnauthorizedUserInfoUpdateException} +import se.lu.nateko.cp.meta.{CpmetaJsonProtocol, FileDeletionDto, LabelingStatusUpdate, LabelingUserDto} import spray.json.JsObject import java.net.URI import java.nio.charset.StandardCharsets import scala.concurrent.Future import scala.concurrent.duration.DurationInt +import scala.language.implicitConversions import scala.util.Try -import spray.json.RootJsonReader -import spray.json.DefaultJsonProtocol.RootJsObjectFormat object LabelingApiRoute extends CpmetaJsonProtocol: diff --git a/src/main/scala/se/lu/nateko/cp/meta/routes/LinkedDataRoute.scala b/src/main/scala/se/lu/nateko/cp/meta/routes/LinkedDataRoute.scala index 92cdaaf32..2bc378b54 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/routes/LinkedDataRoute.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/routes/LinkedDataRoute.scala @@ -1,24 +1,22 @@ package se.lu.nateko.cp.meta.routes -import scala.language.postfixOps +import akka.event.{Logging, LoggingBus} +import akka.http.scaladsl.marshalling.ToResponseMarshaller import akka.http.scaladsl.model.* import akka.http.scaladsl.model.headers.* import akka.http.scaladsl.server.Directives.* import akka.http.scaladsl.server.Route -import se.lu.nateko.cp.meta.InstanceServersConfig -import se.lu.nateko.cp.meta.MetaDb -import se.lu.nateko.cp.meta.core.data.DataObject -import se.lu.nateko.cp.meta.core.data.EnvriConfigs +import eu.icoscp.envri.Envri +import se.lu.nateko.cp.meta.core.data.{DataObject, EnvriConfigs} import se.lu.nateko.cp.meta.instanceserver.InstanceServer import se.lu.nateko.cp.meta.routes.FilesRoute.Sha256Segment import se.lu.nateko.cp.meta.services.CpVocab -import se.lu.nateko.cp.meta.services.linkeddata.InstanceServerSerializer -import se.lu.nateko.cp.meta.services.linkeddata.UriSerializer import se.lu.nateko.cp.meta.services.linkeddata.UriSerializer.Hash +import se.lu.nateko.cp.meta.services.linkeddata.{InstanceServerSerializer, UriSerializer} import se.lu.nateko.cp.meta.services.metaexport.Inspire -import akka.http.scaladsl.marshalling.ToResponseMarshaller -import eu.icoscp.envri.Envri -import akka.event.{LoggingBus, Logging} +import se.lu.nateko.cp.meta.{InstanceServersConfig, MetaDb} + +import scala.language.postfixOps object LinkedDataRoute { private given ToResponseMarshaller[InstanceServer] = InstanceServerSerializer.marshaller diff --git a/src/main/scala/se/lu/nateko/cp/meta/routes/MainRoute.scala b/src/main/scala/se/lu/nateko/cp/meta/routes/MainRoute.scala index 5637f95a3..b4b38c50b 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/routes/MainRoute.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/routes/MainRoute.scala @@ -1,25 +1,21 @@ package se.lu.nateko.cp.meta.routes import akka.actor.ActorSystem -import akka.http.scaladsl.marshalling.ToEntityMarshaller -import akka.http.scaladsl.marshalling.ToResponseMarshaller +import akka.event.LoggingBus +import akka.http.scaladsl.marshalling.{ToEntityMarshaller, ToResponseMarshaller} import akka.http.scaladsl.model.* import akka.http.scaladsl.server.Directives.* -import akka.http.scaladsl.server.ExceptionHandler -import akka.http.scaladsl.server.Route +import akka.http.scaladsl.server.{ExceptionHandler, Route} import akka.stream.Materializer -import se.lu.nateko.cp.meta.CpmetaConfig -import se.lu.nateko.cp.meta.MetaDb import se.lu.nateko.cp.meta.api.SparqlQuery -import se.lu.nateko.cp.meta.core.data.EnvriConfig -import se.lu.nateko.cp.meta.core.data.EnvriConfigs +import se.lu.nateko.cp.meta.core.data.{EnvriConfig, EnvriConfigs} import se.lu.nateko.cp.meta.metaflow.MetaFlow import se.lu.nateko.cp.meta.services.Rdf4jSparqlRunner import se.lu.nateko.cp.meta.services.upload.DoiService import se.lu.nateko.cp.meta.services.upload.PageContentMarshalling.errorMarshaller +import se.lu.nateko.cp.meta.{CpmetaConfig, MetaDb} import scala.concurrent.ExecutionContext -import akka.event.LoggingBus object MainRoute { diff --git a/src/main/scala/se/lu/nateko/cp/meta/routes/MetadataEntryRouting.scala b/src/main/scala/se/lu/nateko/cp/meta/routes/MetadataEntryRouting.scala index f4f2daa15..96fe8fb4a 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/routes/MetadataEntryRouting.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/routes/MetadataEntryRouting.scala @@ -1,15 +1,13 @@ package se.lu.nateko.cp.meta.routes -import se.lu.nateko.cp.meta.onto.InstOnto +import akka.http.scaladsl.model.* import akka.http.scaladsl.server.Directives.* import akka.http.scaladsl.server.Route -import akka.http.scaladsl.model.* -import se.lu.nateko.cp.meta.CpmetaJsonProtocol -import se.lu.nateko.cp.meta.UpdateDto -import se.lu.nateko.cp.meta.ReplaceDto -import java.net.URI -import se.lu.nateko.cp.meta.InstOntoServerConfig +import se.lu.nateko.cp.meta.onto.InstOnto +import se.lu.nateko.cp.meta.{CpmetaJsonProtocol, InstOntoServerConfig, ReplaceDto, UpdateDto} import spray.json.* + +import java.net.URI import scala.language.implicitConversions class MetadataEntryRouting(authRouting: AuthenticationRouting) extends CpmetaJsonProtocol{ diff --git a/src/main/scala/se/lu/nateko/cp/meta/routes/SitemapRoute.scala b/src/main/scala/se/lu/nateko/cp/meta/routes/SitemapRoute.scala index 59c0c6cb7..81395c7ed 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/routes/SitemapRoute.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/routes/SitemapRoute.scala @@ -1,15 +1,11 @@ package se.lu.nateko.cp.meta.routes import akka.http.scaladsl.model.* -import akka.http.scaladsl.model.headers.* import akka.http.scaladsl.server.Directives.* import akka.http.scaladsl.server.Route import se.lu.nateko.cp.meta.api.SparqlRunner -import se.lu.nateko.cp.meta.api.SparqlQuery -import se.lu.nateko.cp.meta.core.data.EnvriConfigs +import se.lu.nateko.cp.meta.core.data.{EnvriConfig, EnvriConfigs, envriConf} import se.lu.nateko.cp.meta.services.metaexport.SchemaOrg -import se.lu.nateko.cp.meta.core.data.EnvriConfig -import se.lu.nateko.cp.meta.core.data.envriConf object SitemapRoute { def apply(sparqler: SparqlRunner)(using EnvriConfigs): Route = { diff --git a/src/main/scala/se/lu/nateko/cp/meta/routes/SparqlRoute.scala b/src/main/scala/se/lu/nateko/cp/meta/routes/SparqlRoute.scala index f88ff8c56..d424cae68 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/routes/SparqlRoute.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/routes/SparqlRoute.scala @@ -3,51 +3,29 @@ package se.lu.nateko.cp.meta.routes import akka.NotUsed import akka.actor.ActorSystem import akka.http.caching.LfuCache -import akka.http.caching.scaladsl.Cache import akka.http.scaladsl.marshalling.ToResponseMarshaller -import akka.http.scaladsl.model.HttpEntity.Default -import akka.http.scaladsl.model.HttpEntity.Strict import akka.http.scaladsl.model.* +import akka.http.scaladsl.model.HttpEntity.Strict import akka.http.scaladsl.model.headers.* -import akka.http.scaladsl.server.Directive -import akka.http.scaladsl.server.Directive0 -import akka.http.scaladsl.server.Directive1 import akka.http.scaladsl.server.Directives.* -import akka.http.scaladsl.server.RejectionHandler -import akka.http.scaladsl.server.RequestContext -import akka.http.scaladsl.server.Route -import akka.http.scaladsl.server.RouteResult -import akka.http.scaladsl.server.RouteResult.Complete -import akka.http.scaladsl.server.RouteResult.Rejected +import akka.http.scaladsl.server.RouteResult.{Complete, Rejected} import akka.http.scaladsl.server.directives.CachingDirectives.* -import akka.stream.Materializer -import akka.stream.SinkShape -import akka.stream.scaladsl.Broadcast -import akka.stream.scaladsl.Concat -import akka.stream.scaladsl.Flow -import akka.stream.scaladsl.GraphDSL -import akka.stream.scaladsl.Keep -import akka.stream.scaladsl.Sink -import akka.stream.scaladsl.SinkQueueWithCancel -import akka.stream.scaladsl.Source +import akka.http.scaladsl.server.{Directive, Directive0, Directive1, RejectionHandler, RequestContext, Route, RouteResult} +import akka.stream.scaladsl.{Broadcast, Flow, GraphDSL, Keep, Sink, SinkQueueWithCancel, Source} +import akka.stream.{Materializer, SinkShape} import akka.util.ByteString import se.lu.nateko.cp.meta.SparqlServerConfig import se.lu.nateko.cp.meta.api.SparqlQuery import se.lu.nateko.cp.meta.core.crypto.Sha256Sum import se.lu.nateko.cp.meta.core.data.EnvriConfigs -import se.lu.nateko.cp.meta.services.CacheSizeLimitExceeded import se.lu.nateko.cp.meta.utils.getStackTrace import java.nio.charset.StandardCharsets import java.security.MessageDigest import java.util.concurrent.CancellationException -import java.util.concurrent.CompletionException import scala.collection.immutable.Queue -import scala.concurrent.ExecutionContext -import scala.concurrent.Future -import scala.concurrent.duration.* +import scala.concurrent.{ExecutionContext, Future} import scala.util.Random -import scala.util.Success object SparqlRoute: @@ -100,21 +78,21 @@ object SparqlRoute: tprovide((msg, false)) path("sparql"): - withPermissiveCorsHeader: - options: - respondWithHeaders( - `Access-Control-Allow-Methods`(HttpMethods.GET, HttpMethods.POST), - `Access-Control-Allow-Headers`(`Content-Type`.name, `Cache-Control`.name) - )(complete(StatusCodes.OK)) - ~ - extractRequestContext: ctxt => - //system.log.info(s"Got a SPARQL request with entity ${ctxt.request.entity}") - spCache.makeKey(ctxt).fold(bypass): key => - cacheStatus(key): (cacheStatusMessage, cacheProhibited) => - respondWithHeader(RawHeader(X_Cache_Status, cacheStatusMessage)): _ => - if cacheProhibited - then spCache.put(key, plainRoute(ctxt)) - else spCache.apply(key, () => plainRoute(ctxt)) + withPermissiveCorsHeader: + options: + respondWithHeaders( + `Access-Control-Allow-Methods`(HttpMethods.GET, HttpMethods.POST), + `Access-Control-Allow-Headers`(`Content-Type`.name, `Cache-Control`.name) + )(complete(StatusCodes.OK)) + ~ + extractRequestContext: ctxt => + //system.log.info(s"Got a SPARQL request with entity ${ctxt.request.entity}") + spCache.makeKey(ctxt).fold(bypass): key => + cacheStatus(key): (cacheStatusMessage, cacheProhibited) => + respondWithHeader(RawHeader(X_Cache_Status, cacheStatusMessage)): _ => + if cacheProhibited + then spCache.put(key, plainRoute(ctxt)) + else spCache.apply(key, () => plainRoute(ctxt)) end apply private val ensureNoEmptyOkResponseDueToTimeout: Directive0 = extractRequestContext.flatMap{ctxt => diff --git a/src/main/scala/se/lu/nateko/cp/meta/routes/StaticRoute.scala b/src/main/scala/se/lu/nateko/cp/meta/routes/StaticRoute.scala index aadf37188..3b175553f 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/routes/StaticRoute.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/routes/StaticRoute.scala @@ -3,16 +3,12 @@ package se.lu.nateko.cp.meta.routes import akka.http.scaladsl.model.* import akka.http.scaladsl.server.Directives.* import akka.http.scaladsl.server.Route -import org.eclipse.rdf4j.model.IRI -import org.eclipse.rdf4j.model.Literal +import eu.icoscp.envri.Envri +import org.eclipse.rdf4j.model.{IRI, Literal} import play.twirl.api.Html -import se.lu.nateko.cp.cpauth.core.PublicAuthConfig import se.lu.nateko.cp.meta.OntoConfig -import se.lu.nateko.cp.meta.api.SparqlQuery -import se.lu.nateko.cp.meta.api.SparqlRunner -import se.lu.nateko.cp.meta.core.data.EnvriConfig -import se.lu.nateko.cp.meta.core.data.EnvriConfigs -import se.lu.nateko.cp.meta.core.data.Licence +import se.lu.nateko.cp.meta.api.{SparqlQuery, SparqlRunner} +import se.lu.nateko.cp.meta.core.data.{EnvriConfig, EnvriConfigs} import se.lu.nateko.cp.meta.services.citation.CitationMaker import se.lu.nateko.cp.meta.services.upload.PageContentMarshalling import se.lu.nateko.cp.meta.utils.rdf4j.* @@ -20,7 +16,6 @@ import se.lu.nateko.cp.meta.utils.rdf4j.* import java.net.URI import scala.language.postfixOps import scala.util.Using -import eu.icoscp.envri.Envri object StaticRoute { diff --git a/src/main/scala/se/lu/nateko/cp/meta/routes/UploadApiRoute.scala b/src/main/scala/se/lu/nateko/cp/meta/routes/UploadApiRoute.scala index ff3f24538..ed7711e78 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/routes/UploadApiRoute.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/routes/UploadApiRoute.scala @@ -1,38 +1,25 @@ package se.lu.nateko.cp.meta.routes - -import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport.* import akka.http.scaladsl.model.* import akka.http.scaladsl.server.Directives.* -import akka.http.scaladsl.server.ExceptionHandler -import akka.http.scaladsl.server.MalformedRequestContentRejection -import akka.http.scaladsl.server.RejectionHandler -import akka.http.scaladsl.server.Route +import akka.http.scaladsl.server.{ExceptionHandler, MalformedRequestContentRejection, RejectionHandler, Route} import akka.stream.Materializer import akka.stream.scaladsl.Keep -import se.lu.nateko.cp.meta.CpmetaJsonProtocol -import se.lu.nateko.cp.meta.ObjectUploadDto -import se.lu.nateko.cp.meta.StaticCollectionDto import se.lu.nateko.cp.meta.core.MetaCoreConfig import se.lu.nateko.cp.meta.core.crypto.Sha256Sum -import se.lu.nateko.cp.meta.core.data.DataObject -import se.lu.nateko.cp.meta.core.data.DocObject -import se.lu.nateko.cp.meta.core.data.GeoFeature import se.lu.nateko.cp.meta.core.data.JsonSupport.given -import se.lu.nateko.cp.meta.core.data.UploadCompletionInfo +import se.lu.nateko.cp.meta.core.data.{EnvriConfigs, UploadCompletionInfo} import se.lu.nateko.cp.meta.core.etcupload.EtcUploadMetadata import se.lu.nateko.cp.meta.core.etcupload.JsonSupport.given -import se.lu.nateko.cp.meta.core.etcupload.StationId import se.lu.nateko.cp.meta.metaflow.MetaUploadService -import se.lu.nateko.cp.meta.metaflow.icos.AtcMetaSource import se.lu.nateko.cp.meta.services.* import se.lu.nateko.cp.meta.services.upload.* +import se.lu.nateko.cp.meta.{CpmetaJsonProtocol, ObjectUploadDto, StaticCollectionDto} import java.net.URI import scala.collection.immutable.Seq import scala.concurrent.Future import scala.language.implicitConversions import scala.util.Try -import se.lu.nateko.cp.meta.core.data.EnvriConfigs object UploadApiRoute extends CpmetaJsonProtocol{ diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/CpVocab.scala b/src/main/scala/se/lu/nateko/cp/meta/services/CpVocab.scala index 62de4aeae..4ec9753d6 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/CpVocab.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/CpVocab.scala @@ -1,28 +1,16 @@ package se.lu.nateko.cp.meta.services -import org.eclipse.rdf4j.model.IRI -import org.eclipse.rdf4j.model.ValueFactory -import se.lu.nateko.cp.meta.api.CustomVocab -import se.lu.nateko.cp.meta.api.UriId +import eu.icoscp.envri.Envri +import org.eclipse.rdf4j.model.{IRI, ValueFactory} +import se.lu.nateko.cp.meta.api.{CustomVocab, UriId} import se.lu.nateko.cp.meta.core.crypto.Sha256Sum - -import se.lu.nateko.cp.meta.core.data.EnvriConfig -import se.lu.nateko.cp.meta.core.data.EnvriConfigs -import se.lu.nateko.cp.meta.core.data.IcosStationSpecifics -import se.lu.nateko.cp.meta.core.data.Position -import se.lu.nateko.cp.meta.core.data.collectionPrefix -import se.lu.nateko.cp.meta.core.data.objectPathPrefix -import se.lu.nateko.cp.meta.core.data.objectPrefix -import se.lu.nateko.cp.meta.core.data.staticCollLandingPage -import se.lu.nateko.cp.meta.core.data.staticObjAccessUrl -import se.lu.nateko.cp.meta.core.data.staticObjLandingPage -import se.lu.nateko.cp.meta.core.etcupload.{ StationId => EtcStationId } +import se.lu.nateko.cp.meta.core.data.{EnvriConfig, EnvriConfigs, IcosStationSpecifics, Position, staticCollLandingPage, staticObjAccessUrl, staticObjLandingPage} +import se.lu.nateko.cp.meta.core.etcupload.StationId as EtcStationId import se.lu.nateko.cp.meta.metaflow.icos.{ETC, EtcConf} -import se.lu.nateko.cp.meta.metaflow.{TC, Role, TcConf, TcId} +import se.lu.nateko.cp.meta.metaflow.{Role, TC, TcConf, TcId} import se.lu.nateko.cp.meta.utils.rdf4j.=== import java.net.URI -import eu.icoscp.envri.Envri class CpVocab (val factory: ValueFactory)(using envriConfigs: EnvriConfigs) extends CustomVocab: import CpVocab.* diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/CpmetaVocab.scala b/src/main/scala/se/lu/nateko/cp/meta/services/CpmetaVocab.scala index 8825e8eae..d3e0cd996 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/CpmetaVocab.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/CpmetaVocab.scala @@ -1,9 +1,10 @@ package se.lu.nateko.cp.meta.services import org.eclipse.rdf4j.model.ValueFactory +import se.lu.nateko.cp.meta.OntoConstants.* import se.lu.nateko.cp.meta.api.CustomVocab + import java.net.URI -import se.lu.nateko.cp.meta.OntoConstants.* class CpmetaVocab (val factory: ValueFactory) extends CustomVocab { top => diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/FileStorageService.scala b/src/main/scala/se/lu/nateko/cp/meta/services/FileStorageService.scala index 121c9a073..e36b29031 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/FileStorageService.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/FileStorageService.scala @@ -1,16 +1,14 @@ package se.lu.nateko.cp.meta.services -import java.io.File +import akka.stream.scaladsl.{FileIO, Source} import akka.util.ByteString -import java.security.MessageDigest -import java.nio.file.Files -import java.nio.file.Path -import java.nio.file.Paths -import java.nio.file.StandardOpenOption.* -import akka.stream.scaladsl.Source -import akka.stream.scaladsl.FileIO -import se.lu.nateko.cp.meta.utils.streams.ZipEntryFlow import se.lu.nateko.cp.meta.core.crypto.Sha256Sum +import se.lu.nateko.cp.meta.utils.streams.ZipEntryFlow + +import java.io.File +import java.nio.file.StandardOpenOption.* +import java.nio.file.{Files, Path, Paths} +import java.security.MessageDigest class FileStorageService(folder: File) { diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/Rdf4jSparqlRunner.scala b/src/main/scala/se/lu/nateko/cp/meta/services/Rdf4jSparqlRunner.scala index 89d5f3fa0..dec1d01f5 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/Rdf4jSparqlRunner.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/Rdf4jSparqlRunner.scala @@ -1,13 +1,9 @@ package se.lu.nateko.cp.meta.services import org.eclipse.rdf4j.model.Statement -import org.eclipse.rdf4j.query.BindingSet -import org.eclipse.rdf4j.query.QueryLanguage +import org.eclipse.rdf4j.query.{BindingSet, QueryLanguage} import org.eclipse.rdf4j.repository.Repository - -import se.lu.nateko.cp.meta.api.CloseableIterator -import se.lu.nateko.cp.meta.api.SparqlQuery -import se.lu.nateko.cp.meta.api.SparqlRunner +import se.lu.nateko.cp.meta.api.{CloseableIterator, SparqlQuery, SparqlRunner} import se.lu.nateko.cp.meta.utils.rdf4j.* class Rdf4jSparqlRunner(repo: Repository) extends SparqlRunner { diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/UploadDtoReader.scala b/src/main/scala/se/lu/nateko/cp/meta/services/UploadDtoReader.scala index 9f6f95a86..391e8210a 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/UploadDtoReader.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/UploadDtoReader.scala @@ -2,27 +2,17 @@ package se.lu.nateko.cp.meta.services import akka.http.scaladsl.model.Uri import se.lu.nateko.cp.doi.Doi -import se.lu.nateko.cp.meta.DataObjectDto -import se.lu.nateko.cp.meta.DataProductionDto -import se.lu.nateko.cp.meta.DocObjectDto -import se.lu.nateko.cp.meta.ObjectUploadDto -import se.lu.nateko.cp.meta.ReferencesDto -import se.lu.nateko.cp.meta.SpatioTemporalDto -import se.lu.nateko.cp.meta.StaticCollectionDto -import se.lu.nateko.cp.meta.StationTimeSeriesDto -import se.lu.nateko.cp.meta.UploadDto -import se.lu.nateko.cp.meta.GeoJsonString import se.lu.nateko.cp.meta.core.crypto.Sha256Sum import se.lu.nateko.cp.meta.core.data.* import se.lu.nateko.cp.meta.services.linkeddata.UriSerializer import se.lu.nateko.cp.meta.utils.* +import se.lu.nateko.cp.meta.{DataObjectDto, DataProductionDto, DocObjectDto, GeoCoverage, ReferencesDto, SpatioTemporalDto, StaticCollectionDto, StationTimeSeriesDto, UploadDto} import java.net.URI import java.time.Instant import scala.util.Success import UriSerializer.Hash -import se.lu.nateko.cp.meta.GeoCoverage class UploadDtoReader(uriSer: UriSerializer){ import UploadDtoReader.* diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/citation/AttributionProvider.scala b/src/main/scala/se/lu/nateko/cp/meta/services/citation/AttributionProvider.scala index 733a52991..24ca7a1b6 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/citation/AttributionProvider.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/citation/AttributionProvider.scala @@ -1,35 +1,15 @@ package se.lu.nateko.cp.meta.services.citation - -import org.eclipse.rdf4j.model.IRI -import org.eclipse.rdf4j.model.Literal -import org.eclipse.rdf4j.model.ValueFactory -import org.eclipse.rdf4j.model.vocabulary.XSD +import org.eclipse.rdf4j.model.{IRI, ValueFactory} import se.lu.nateko.cp.meta.api.RdfLens.MetaConn -import se.lu.nateko.cp.meta.core.data.Agent -import se.lu.nateko.cp.meta.core.data.DataObject -import se.lu.nateko.cp.meta.core.data.DataTheme -import se.lu.nateko.cp.meta.core.data.Orcid -import se.lu.nateko.cp.meta.core.data.Organization -import se.lu.nateko.cp.meta.core.data.Person -import se.lu.nateko.cp.meta.core.data.Station -import se.lu.nateko.cp.meta.core.data.UriResource -import se.lu.nateko.cp.meta.instanceserver.Rdf4jInstanceServer +import se.lu.nateko.cp.meta.core.data.{Agent, DataObject, Organization, Person, UriResource} import se.lu.nateko.cp.meta.instanceserver.TriplestoreConnection -import se.lu.nateko.cp.meta.metaflow.Administrator -import se.lu.nateko.cp.meta.metaflow.PI -import se.lu.nateko.cp.meta.metaflow.Role -import se.lu.nateko.cp.meta.services.CpVocab -import se.lu.nateko.cp.meta.services.CpmetaVocab import se.lu.nateko.cp.meta.services.upload.CpmetaReader +import se.lu.nateko.cp.meta.services.{CpVocab, CpmetaVocab} import se.lu.nateko.cp.meta.utils.Validated import se.lu.nateko.cp.meta.utils.rdf4j.* import java.net.URI import java.time.Instant -import java.{util => ju} -import scala.collection.mutable -import scala.util.Try -import scala.util.Using final class AttributionProvider(vocab: CpVocab, val metaVocab: CpmetaVocab) extends CpmetaReader: import AttributionProvider.* diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/citation/CitationMaker.scala b/src/main/scala/se/lu/nateko/cp/meta/services/citation/CitationMaker.scala index daac839f7..e946d7807 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/citation/CitationMaker.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/citation/CitationMaker.scala @@ -2,33 +2,23 @@ package se.lu.nateko.cp.meta.services.citation import eu.icoscp.envri.Envri import org.eclipse.rdf4j.model.IRI -import org.eclipse.rdf4j.model.vocabulary.RDFS -import org.eclipse.rdf4j.model.vocabulary.SKOS -import se.lu.nateko.cp.doi.Doi -import se.lu.nateko.cp.doi.DoiMeta +import org.eclipse.rdf4j.model.vocabulary.{RDFS, SKOS} +import org.slf4j.LoggerFactory +import se.lu.nateko.cp.doi.{Doi, DoiMeta} import se.lu.nateko.cp.meta.api.RdfLens import se.lu.nateko.cp.meta.core.MetaCoreConfig import se.lu.nateko.cp.meta.core.data.* import se.lu.nateko.cp.meta.instanceserver.TriplestoreConnection import se.lu.nateko.cp.meta.metaflow.icos.EtcMetaSource.toCETnoon -import se.lu.nateko.cp.meta.services.CpVocab -import se.lu.nateko.cp.meta.services.CpmetaVocab -import se.lu.nateko.cp.meta.utils.Validated -import se.lu.nateko.cp.meta.utils.parseCommaSepList +import se.lu.nateko.cp.meta.services.{CpVocab, CpmetaVocab} import se.lu.nateko.cp.meta.utils.rdf4j.* +import se.lu.nateko.cp.meta.utils.{Validated, parseCommaSepList} import java.net.URI -import java.time.Duration -import java.time.Instant -import java.time.ZoneId -import java.time.ZonedDateTime import java.time.format.DateTimeFormatter import java.time.temporal.ChronoUnit -import scala.util.Failure -import scala.util.Success -import scala.util.Try - -import org.slf4j.LoggerFactory +import java.time.{Duration, Instant, ZoneId, ZonedDateTime} +import scala.util.{Failure, Success, Try} private class CitationInfo( val pidUrl: Option[String], diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/citation/CitationProvider.scala b/src/main/scala/se/lu/nateko/cp/meta/services/citation/CitationProvider.scala index bba73d5f9..a53372553 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/citation/CitationProvider.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/citation/CitationProvider.scala @@ -1,37 +1,25 @@ package se.lu.nateko.cp.meta.services.citation import akka.actor.ActorSystem +import akka.event.Logging import akka.stream.Materializer import eu.icoscp.envri.Envri -import org.eclipse.rdf4j.model.IRI -import org.eclipse.rdf4j.model.Resource import org.eclipse.rdf4j.model.vocabulary.RDF +import org.eclipse.rdf4j.model.{IRI, Resource} import org.eclipse.rdf4j.repository.sail.SailRepository import org.eclipse.rdf4j.sail.Sail import se.lu.nateko.cp.doi.Doi -import se.lu.nateko.cp.meta.CpmetaConfig -import se.lu.nateko.cp.meta.MetaDb -import se.lu.nateko.cp.meta.api.HandleNetClient -import se.lu.nateko.cp.meta.api.RdfLens import se.lu.nateko.cp.meta.api.RdfLens.GlobConn -import se.lu.nateko.cp.meta.core.data.CitableItem -import se.lu.nateko.cp.meta.core.data.EnvriConfigs -import se.lu.nateko.cp.meta.core.data.EnvriResolver -import se.lu.nateko.cp.meta.core.data.Licence -import se.lu.nateko.cp.meta.core.data.References -import se.lu.nateko.cp.meta.core.data.StaticCollection -import se.lu.nateko.cp.meta.core.data.StaticObject -import se.lu.nateko.cp.meta.core.data.collectionPrefix -import se.lu.nateko.cp.meta.core.data.objectPrefix -import se.lu.nateko.cp.meta.instanceserver.Rdf4jInstanceServer -import se.lu.nateko.cp.meta.instanceserver.TriplestoreConnection -import se.lu.nateko.cp.meta.services.CpVocab -import se.lu.nateko.cp.meta.services.CpmetaVocab +import se.lu.nateko.cp.meta.api.{HandleNetClient, RdfLens} +import se.lu.nateko.cp.meta.core.data.{CitableItem, EnvriConfigs, EnvriResolver, Licence, References, StaticCollection, StaticObject, collectionPrefix, objectPrefix} +import se.lu.nateko.cp.meta.instanceserver.{Rdf4jInstanceServer, TriplestoreConnection} import se.lu.nateko.cp.meta.services.upload.StaticObjectReader +import se.lu.nateko.cp.meta.services.{CpVocab, CpmetaVocab} import se.lu.nateko.cp.meta.utils.rdf4j.* +import se.lu.nateko.cp.meta.{CpmetaConfig, MetaDb} + import CitationClient.CitationCache import CitationClient.DoiCache -import akka.event.Logging object CitationProvider: diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/labeling/FileService.scala b/src/main/scala/se/lu/nateko/cp/meta/services/labeling/FileService.scala index d2b97da12..c164d9da5 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/labeling/FileService.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/labeling/FileService.scala @@ -1,21 +1,17 @@ package se.lu.nateko.cp.meta.services.labeling import akka.http.scaladsl.model.HttpEntity.Chunked -import akka.http.scaladsl.model.HttpResponse -import akka.http.scaladsl.model.MediaTypes -import akka.http.scaladsl.model.Multipart +import akka.http.scaladsl.model.{HttpResponse, MediaTypes, Multipart} import org.eclipse.rdf4j.model.IRI import se.lu.nateko.cp.cpauth.core.UserId import se.lu.nateko.cp.meta.core.crypto.Sha256Sum -import se.lu.nateko.cp.meta.instanceserver.InstanceServer import se.lu.nateko.cp.meta.instanceserver.TriplestoreConnection import se.lu.nateko.cp.meta.services.MetadataException import se.lu.nateko.cp.meta.utils.rdf4j.* import java.net.URI import java.nio.charset.StandardCharsets -import scala.concurrent.ExecutionContext -import scala.concurrent.Future +import scala.concurrent.{ExecutionContext, Future} trait FileService: diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/labeling/LabelingDb.scala b/src/main/scala/se/lu/nateko/cp/meta/services/labeling/LabelingDb.scala index 454af83c2..3e15062cb 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/labeling/LabelingDb.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/labeling/LabelingDb.scala @@ -1,9 +1,7 @@ package se.lu.nateko.cp.meta.services.labeling -import se.lu.nateko.cp.meta.instanceserver.TriplestoreConnection -import se.lu.nateko.cp.meta.instanceserver.InstanceServer -import se.lu.nateko.cp.meta.instanceserver.LoggingInstanceServer import org.eclipse.rdf4j.model.Statement +import se.lu.nateko.cp.meta.instanceserver.{InstanceServer, LoggingInstanceServer, TriplestoreConnection} object LabelingDb: diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/labeling/LifecycleService.scala b/src/main/scala/se/lu/nateko/cp/meta/services/labeling/LifecycleService.scala index 962044ef3..986bd8262 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/labeling/LifecycleService.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/labeling/LifecycleService.scala @@ -1,22 +1,16 @@ package se.lu.nateko.cp.meta.services.labeling -import org.eclipse.rdf4j.model.IRI -import org.eclipse.rdf4j.model.Statement +import org.eclipse.rdf4j.model.{IRI, Statement} +import org.slf4j.LoggerFactory import play.twirl.api.Html -import se.lu.nateko.cp.cpauth.core.EmailSender -import se.lu.nateko.cp.cpauth.core.UserId +import se.lu.nateko.cp.cpauth.core.{EmailSender, UserId} import se.lu.nateko.cp.meta.instanceserver.TriplestoreConnection -import se.lu.nateko.cp.meta.services.IllegalLabelingStatusException -import se.lu.nateko.cp.meta.services.UnauthorizedStationUpdateException +import se.lu.nateko.cp.meta.services.{IllegalLabelingStatusException, UnauthorizedStationUpdateException} import se.lu.nateko.cp.meta.utils.rdf4j.* import java.net.URI -import scala.concurrent.ExecutionContext -import scala.concurrent.Future -import scala.util.Failure -import scala.util.Success -import scala.util.Try -import org.slf4j.LoggerFactory +import scala.concurrent.{ExecutionContext, Future} +import scala.util.{Failure, Success, Try} trait LifecycleService: self: StationLabelingService => diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/labeling/StationInfoService.scala b/src/main/scala/se/lu/nateko/cp/meta/services/labeling/StationInfoService.scala index 723f168e5..66077294c 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/labeling/StationInfoService.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/labeling/StationInfoService.scala @@ -1,15 +1,11 @@ package se.lu.nateko.cp.meta.services.labeling -import org.eclipse.rdf4j.model.IRI -import org.eclipse.rdf4j.model.Literal -import org.eclipse.rdf4j.model.Statement +import org.eclipse.rdf4j.model.{IRI, Literal, Statement} import se.lu.nateko.cp.cpauth.core.UserId -import se.lu.nateko.cp.meta.core.data.DataTheme import se.lu.nateko.cp.meta.instanceserver.TriplestoreConnection import se.lu.nateko.cp.meta.onto.InstOnto import se.lu.nateko.cp.meta.utils.rdf4j.* -import spray.json.JsObject -import spray.json.JsString +import spray.json.{JsObject, JsString} import java.net.URI import java.time.Instant diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/labeling/StationLabelingService.scala b/src/main/scala/se/lu/nateko/cp/meta/services/labeling/StationLabelingService.scala index 4d793d196..12455a006 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/labeling/StationLabelingService.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/labeling/StationLabelingService.scala @@ -1,17 +1,11 @@ package se.lu.nateko.cp.meta.services.labeling -import org.eclipse.rdf4j.model.IRI -import org.eclipse.rdf4j.model.ValueFactory +import org.eclipse.rdf4j.model.{IRI, ValueFactory} import se.lu.nateko.cp.cpauth.core.UserId import se.lu.nateko.cp.meta.LabelingServiceConfig -import se.lu.nateko.cp.meta.instanceserver.InstanceServer -import se.lu.nateko.cp.meta.instanceserver.TriplestoreConnection -import se.lu.nateko.cp.meta.onto.InstOnto -import se.lu.nateko.cp.meta.onto.Onto -import se.lu.nateko.cp.meta.services.CpmetaVocab -import se.lu.nateko.cp.meta.services.FileStorageService -import se.lu.nateko.cp.meta.services.UnauthorizedStationUpdateException -import se.lu.nateko.cp.meta.services.MetadataException +import se.lu.nateko.cp.meta.instanceserver.{InstanceServer, TriplestoreConnection} +import se.lu.nateko.cp.meta.onto.{InstOnto, Onto} +import se.lu.nateko.cp.meta.services.{CpmetaVocab, FileStorageService, MetadataException, UnauthorizedStationUpdateException} class StationLabelingService( diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/labeling/UserInfoService.scala b/src/main/scala/se/lu/nateko/cp/meta/services/labeling/UserInfoService.scala index 51a7118e8..a4d749fb5 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/labeling/UserInfoService.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/labeling/UserInfoService.scala @@ -1,14 +1,13 @@ package se.lu.nateko.cp.meta.services.labeling -import org.eclipse.rdf4j.model.IRI -import org.eclipse.rdf4j.model.Literal import org.eclipse.rdf4j.model.vocabulary.RDF +import org.eclipse.rdf4j.model.{IRI, Literal} import se.lu.nateko.cp.cpauth.core.UserId import se.lu.nateko.cp.meta.LabelingUserDto import se.lu.nateko.cp.meta.services.UnauthorizedUserInfoUpdateException import se.lu.nateko.cp.meta.utils.rdf4j.* -import java.net.{URI => JavaURI} +import java.net.URI as JavaURI import scala.util.Using trait UserInfoService: diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/labeling/Vocabs.scala b/src/main/scala/se/lu/nateko/cp/meta/services/labeling/Vocabs.scala index e4aaf6009..ae8c92eec 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/labeling/Vocabs.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/labeling/Vocabs.scala @@ -1,8 +1,6 @@ package se.lu.nateko.cp.meta.services.labeling -import org.eclipse.rdf4j.model.IRI -import org.eclipse.rdf4j.model.ValueFactory - +import org.eclipse.rdf4j.model.{IRI, ValueFactory} import se.lu.nateko.cp.meta.api.CustomVocab import se.lu.nateko.cp.meta.core.crypto.Sha256Sum diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/linkeddata/InstanceServerSerializer.scala b/src/main/scala/se/lu/nateko/cp/meta/services/linkeddata/InstanceServerSerializer.scala index e547dacb2..3c87e8e07 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/linkeddata/InstanceServerSerializer.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/linkeddata/InstanceServerSerializer.scala @@ -1,32 +1,21 @@ package se.lu.nateko.cp.meta.services.linkeddata -import scala.concurrent.ExecutionContext -import scala.concurrent.Future - -import org.eclipse.rdf4j.model.Namespace -import org.eclipse.rdf4j.model.Statement +import akka.http.scaladsl.marshalling.{Marshaller, Marshalling, ToResponseMarshaller} +import akka.http.scaladsl.model.{ContentType, ContentTypes, HttpCharsets, HttpEntity, HttpResponse, MediaType, MediaTypes} +import akka.stream.StreamDetachedException +import akka.stream.scaladsl.StreamConverters import org.eclipse.rdf4j.model.impl.SimpleNamespace import org.eclipse.rdf4j.model.vocabulary.{ OWL, RDF, RDFS, XSD } +import org.eclipse.rdf4j.model.{Namespace, Statement} import org.eclipse.rdf4j.rio.RDFWriterFactory import org.eclipse.rdf4j.rio.rdfxml.RDFXMLWriterFactory import org.eclipse.rdf4j.rio.turtle.TurtleWriterFactory - -import akka.http.scaladsl.marshalling.Marshaller -import akka.http.scaladsl.marshalling.Marshalling -import akka.http.scaladsl.marshalling.ToResponseMarshaller -import akka.http.scaladsl.model.ContentType -import akka.http.scaladsl.model.ContentTypes -import akka.http.scaladsl.model.HttpCharsets -import akka.http.scaladsl.model.HttpEntity -import akka.http.scaladsl.model.HttpResponse -import akka.http.scaladsl.model.MediaType -import akka.http.scaladsl.model.MediaTypes -import akka.stream.scaladsl.StreamConverters import se.lu.nateko.cp.meta.api.CloseableIterator import se.lu.nateko.cp.meta.instanceserver.InstanceServer -import scala.util.Using + import java.io.IOException -import akka.stream.StreamDetachedException +import scala.concurrent.{ExecutionContext, Future} +import scala.util.Using object InstanceServerSerializer { diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/linkeddata/UriSerializer.scala b/src/main/scala/se/lu/nateko/cp/meta/services/linkeddata/UriSerializer.scala index 465134a70..1cd5fcdb4 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/linkeddata/UriSerializer.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/linkeddata/UriSerializer.scala @@ -296,8 +296,6 @@ class Rdf4jUriSerializer( private def customJson[T : JsonWriter](fetchDto: () => Validated[T]): Marshalling[HttpResponse] = WithFixedContentType(ContentTypes.`application/json`, () => PageContentMarshalling.getJson(fetchDto())) - import PageContentMarshalling.ErrorList - private def defaultHtml(uri: Uri): Marshalling[HttpResponse] = WithOpenCharset(MediaTypes.`text/html`, getDefaultHtml(uri)) diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/metaexport/DataCite.scala b/src/main/scala/se/lu/nateko/cp/meta/services/metaexport/DataCite.scala index 16d76ec13..64364df5e 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/metaexport/DataCite.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/metaexport/DataCite.scala @@ -1,24 +1,12 @@ package se.lu.nateko.cp.meta.services.metaexport -import se.lu.nateko.cp.doi.CoolDoi -import se.lu.nateko.cp.doi.Doi -import se.lu.nateko.cp.doi.DoiMeta import se.lu.nateko.cp.doi.meta.* -import se.lu.nateko.cp.meta.core.data.Agent -import se.lu.nateko.cp.meta.core.data.DataObject -import se.lu.nateko.cp.meta.core.data.DocObject -import se.lu.nateko.cp.meta.core.data.FunderIdType -import se.lu.nateko.cp.meta.core.data.Funding -import se.lu.nateko.cp.meta.core.data.Organization -import se.lu.nateko.cp.meta.core.data.Person -import se.lu.nateko.cp.meta.core.data.PlainStaticObject -import se.lu.nateko.cp.meta.core.data.StaticCollection -import se.lu.nateko.cp.meta.core.data.StaticObject +import se.lu.nateko.cp.doi.{CoolDoi, Doi, DoiMeta} +import se.lu.nateko.cp.meta.core.data.{Agent, DataObject, DocObject, FunderIdType, Funding, Organization, Person, StaticCollection, StaticObject} import se.lu.nateko.cp.meta.services.citation.CitationMaker import se.lu.nateko.cp.meta.utils.Validated -import java.time.Instant -import java.time.Year +import java.time.{Instant, Year} class DataCite(doiMaker: String => Doi, fetchCollObjectsRecursively: StaticCollection => Validated[Seq[StaticObject]]): diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/metaexport/DoiGeoCovConverter.scala b/src/main/scala/se/lu/nateko/cp/meta/services/metaexport/DoiGeoCovConverter.scala index abeaab5c9..945502333 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/metaexport/DoiGeoCovConverter.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/metaexport/DoiGeoCovConverter.scala @@ -1,17 +1,18 @@ package se.lu.nateko.cp.meta.services.metaexport -import se.lu.nateko.cp.doi.meta.* -import se.lu.nateko.cp.doi.meta.GeoLocation -import se.lu.nateko.cp.meta.core.data.Circle -import se.lu.nateko.cp.meta.core.data.FeatureCollection -import se.lu.nateko.cp.meta.core.data.GeoFeature -import se.lu.nateko.cp.meta.core.data.GeoTrack -import se.lu.nateko.cp.meta.core.data.LatLonBox -import se.lu.nateko.cp.meta.core.data.Pin -import se.lu.nateko.cp.meta.core.data.Polygon -import se.lu.nateko.cp.meta.core.data.Position +import se.lu.nateko.cp.doi.meta.{GeoLocation, GeoLocationPoint, Longitude, Latitude, GeoLocationBox} +import se.lu.nateko.cp.meta.core.data.{ + Circle, + FeatureCollection, + FeatureWithGeoJson, + GeoFeature, + GeoTrack, + LatLonBox, + Pin, + Polygon, + Position +} import se.lu.nateko.cp.meta.services.upload.geocov.GeoCovMerger.circleToBox -import se.lu.nateko.cp.meta.core.data.FeatureWithGeoJson object DoiGeoCovConverter: diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/metaexport/Inspire.scala b/src/main/scala/se/lu/nateko/cp/meta/services/metaexport/Inspire.scala index aa288d25c..7192418e9 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/metaexport/Inspire.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/metaexport/Inspire.scala @@ -1,12 +1,10 @@ package se.lu.nateko.cp.meta.services.metaexport -import se.lu.nateko.cp.meta.core.data.DataObject -import java.time.Instant -import scala.quoted.Expr -import scala.quoted.Quotes +import se.lu.nateko.cp.meta.core.data.{DataObject, TimeInterval} import se.lu.nateko.cp.meta.services.CpVocab import se.lu.nateko.cp.meta.utils.rdf4j.=== -import se.lu.nateko.cp.meta.core.data.TimeInterval + +import java.time.Instant object Inspire{ diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/metaexport/SchemaOrg.scala b/src/main/scala/se/lu/nateko/cp/meta/services/metaexport/SchemaOrg.scala index 3701e8965..3f789de12 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/metaexport/SchemaOrg.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/metaexport/SchemaOrg.scala @@ -1,26 +1,23 @@ package se.lu.nateko.cp.meta.services.metaexport import akka.http.scaladsl.server.directives.ContentTypeResolver +import eu.icoscp.envri.Envri import org.eclipse.rdf4j.model.IRI -import se.lu.nateko.cp.doi.{meta => doi} -import se.lu.nateko.cp.meta.api.SparqlQuery -import se.lu.nateko.cp.meta.api.SparqlRunner +import se.lu.nateko.cp.doi.meta as doi +import se.lu.nateko.cp.doi.meta.{GenericName, PersonalName} +import se.lu.nateko.cp.meta.api.{SparqlQuery, SparqlRunner} import se.lu.nateko.cp.meta.core.HandleProxiesConfig import se.lu.nateko.cp.meta.core.data.* +import se.lu.nateko.cp.meta.utils.* import se.lu.nateko.cp.meta.utils.json.* import se.lu.nateko.cp.meta.utils.rdf4j.* import se.lu.nateko.cp.meta.views.LandingPageHelpers.doiAgentUri import spray.json.* -import se.lu.nateko.cp.meta.utils.* import java.net.URI +import java.time.{LocalDate, ZoneOffset} -import doi.DescriptionType.{Abstract => DoiAbstract} -import java.time.LocalDate -import java.time.ZoneOffset -import se.lu.nateko.cp.doi.meta.PersonalName -import se.lu.nateko.cp.doi.meta.GenericName -import eu.icoscp.envri.Envri +import doi.DescriptionType.Abstract as DoiAbstract object SchemaOrg: diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/QueryEvaluator.scala b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/QueryEvaluator.scala index 2d8548c16..71d5fb1df 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/QueryEvaluator.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/QueryEvaluator.scala @@ -1,17 +1,13 @@ package se.lu.nateko.cp.meta.services.sparql import akka.Done -import org.eclipse.rdf4j.query.GraphQuery -import org.eclipse.rdf4j.query.Query -import org.eclipse.rdf4j.query.QueryResults -import org.eclipse.rdf4j.query.TupleQuery import org.eclipse.rdf4j.query.resultio.TupleQueryResultWriterFactory +import org.eclipse.rdf4j.query.{GraphQuery, Query, QueryResults, TupleQuery} import org.eclipse.rdf4j.rio.RDFWriterFactory import java.io.OutputStream import java.lang.AutoCloseable -import scala.concurrent.ExecutionContext -import scala.concurrent.Future +import scala.concurrent.{ExecutionContext, Future} import scala.util.Try trait QueryEvaluator[Q <: Query] { diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/QuotaManager.scala b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/QuotaManager.scala index f8f27dc27..4c7260360 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/QuotaManager.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/QuotaManager.scala @@ -1,14 +1,12 @@ package se.lu.nateko.cp.meta.services.sparql import se.lu.nateko.cp.meta.SparqlServerConfig + import java.time.Instant -import scala.collection.concurrent.TrieMap -import java.util.concurrent.atomic.AtomicLong -import java.util.concurrent.Executor -import java.util.concurrent.ConcurrentLinkedQueue -import java.util.concurrent.RejectedExecutionException -import java.time.temporal.TemporalUnit import java.time.temporal.ChronoUnit +import java.util.concurrent.atomic.AtomicLong +import java.util.concurrent.{ConcurrentLinkedQueue, Executor} +import scala.collection.concurrent.TrieMap class QuotaManager(config: SparqlServerConfig, executor: Executor)(implicit val now: () => Instant): import QuotaManager.* diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/Rdf4jSparqlServer.scala b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/Rdf4jSparqlServer.scala index 067c49a3e..656e7ca54 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/Rdf4jSparqlServer.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/Rdf4jSparqlServer.scala @@ -1,55 +1,33 @@ package se.lu.nateko.cp.meta.services.sparql -import akka.Done -import akka.NotUsed -import akka.http.scaladsl.marshalling.Marshaller -import akka.http.scaladsl.marshalling.Marshalling -import akka.http.scaladsl.marshalling.ToResponseMarshaller -import akka.http.scaladsl.model.ContentType -import akka.http.scaladsl.model.ContentTypes -import akka.http.scaladsl.model.HttpCharsets -import akka.http.scaladsl.model.HttpEntity -import akka.http.scaladsl.model.HttpResponse -import akka.http.scaladsl.model.MediaType -import akka.http.scaladsl.model.MediaTypes -import akka.http.scaladsl.model.StatusCode -import akka.http.scaladsl.model.StatusCodes -import akka.stream.scaladsl.Sink -import akka.stream.scaladsl.Source -import akka.stream.scaladsl.StreamConverters +import akka.actor.ActorSystem +import akka.event.Logging +import akka.http.scaladsl.marshalling.{Marshaller, Marshalling, ToResponseMarshaller} +import akka.http.scaladsl.model.{ContentType, ContentTypes, HttpCharsets, HttpEntity, HttpResponse, MediaType, MediaTypes, StatusCode, StatusCodes} +import akka.stream.scaladsl.{Sink, Source, StreamConverters} import akka.util.ByteString -import org.eclipse.rdf4j.query.GraphQuery -import org.eclipse.rdf4j.query.MalformedQueryException -import org.eclipse.rdf4j.query.Query -import org.eclipse.rdf4j.query.TupleQuery -import org.eclipse.rdf4j.query.parser.ParsedBooleanQuery -import org.eclipse.rdf4j.query.parser.ParsedGraphQuery -import org.eclipse.rdf4j.query.parser.ParsedTupleQuery +import akka.{Done, NotUsed} import org.eclipse.rdf4j.query.parser.sparql.SPARQLParser +import org.eclipse.rdf4j.query.parser.{ParsedBooleanQuery, ParsedGraphQuery, ParsedTupleQuery} import org.eclipse.rdf4j.query.resultio.TupleQueryResultWriterFactory import org.eclipse.rdf4j.query.resultio.sparqljson.SPARQLResultsJSONWriterFactory import org.eclipse.rdf4j.query.resultio.sparqlxml.SPARQLResultsXMLWriterFactory import org.eclipse.rdf4j.query.resultio.text.csv.SPARQLResultsCSVWriterFactory import org.eclipse.rdf4j.query.resultio.text.tsv.SPARQLResultsTSVWriterFactory +import org.eclipse.rdf4j.query.{GraphQuery, MalformedQueryException, Query, TupleQuery} import org.eclipse.rdf4j.repository.Repository import org.eclipse.rdf4j.rio.RDFWriterFactory import org.eclipse.rdf4j.rio.rdfxml.RDFXMLWriterFactory import org.eclipse.rdf4j.rio.turtle.TurtleWriterFactory import se.lu.nateko.cp.meta.SparqlServerConfig -import se.lu.nateko.cp.meta.api.SparqlQuery -import se.lu.nateko.cp.meta.api.SparqlServer +import se.lu.nateko.cp.meta.api.{SparqlQuery, SparqlServer} import se.lu.nateko.cp.meta.services.CpmetaVocab import java.time.Instant -import java.util.concurrent.CancellationException -import java.util.concurrent.Executors -import scala.concurrent.ExecutionContext -import scala.concurrent.Future -import scala.concurrent.Promise +import java.util.concurrent.{CancellationException, Executors} import scala.concurrent.duration.DurationInt +import scala.concurrent.{ExecutionContext, Future, Promise} import scala.util.Try -import akka.actor.ActorSystem -import akka.event.Logging class Rdf4jSparqlServer( diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/index/FileSizeHierarchicalBitmap.scala b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/index/FileSizeHierarchicalBitmap.scala index 408676831..3d6efe419 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/index/FileSizeHierarchicalBitmap.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/index/FileSizeHierarchicalBitmap.scala @@ -1,8 +1,8 @@ package se.lu.nateko.cp.meta.services.sparql.index -import java.time.Instant import se.lu.nateko.cp.meta.core.algo.HierarchicalBitmap import se.lu.nateko.cp.meta.services.sparql.magic.index.ObjEntry + import scala.collection.IndexedSeq /** diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/index/SamplingHeightHierarchicalBitmap.scala b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/index/SamplingHeightHierarchicalBitmap.scala index 76e601af8..e6f5779df 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/index/SamplingHeightHierarchicalBitmap.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/index/SamplingHeightHierarchicalBitmap.scala @@ -1,9 +1,8 @@ package se.lu.nateko.cp.meta.services.sparql.index -import java.time.Instant -import scala.annotation.tailrec import se.lu.nateko.cp.meta.core.algo.HierarchicalBitmap import se.lu.nateko.cp.meta.services.sparql.magic.index.ObjEntry + import scala.collection.IndexedSeq /** diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/index/StringHierarchicalBitmap.scala b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/index/StringHierarchicalBitmap.scala index 130b18c66..2abc3fe27 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/index/StringHierarchicalBitmap.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/index/StringHierarchicalBitmap.scala @@ -1,6 +1,5 @@ package se.lu.nateko.cp.meta.services.sparql.index -import scala.collection.IndexedSeq import se.lu.nateko.cp.meta.core.algo.HierarchicalBitmap diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/CpEnrichedTripleSource.scala b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/CpEnrichedTripleSource.scala index e021bfbd1..72183bc17 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/CpEnrichedTripleSource.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/CpEnrichedTripleSource.scala @@ -1,14 +1,8 @@ package se.lu.nateko.cp.meta.services.sparql.magic - +import org.eclipse.rdf4j.model.{IRI, Resource, Value, ValueFactory} import org.eclipse.rdf4j.query.algebra.evaluation.TripleSource -import org.eclipse.rdf4j.common.iteration.CloseableIteration -import org.eclipse.rdf4j.model.IRI -import org.eclipse.rdf4j.model.Resource -import org.eclipse.rdf4j.model.Statement -import org.eclipse.rdf4j.model.Value import StatementsEnricher.StatIter -import org.eclipse.rdf4j.model.ValueFactory class CpEnrichedTripleSource(base: TripleSource, enricher: StatementsEnricher) extends TripleSource{ diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/CpIndex.scala b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/CpIndex.scala index b4e5f962f..7cc6e9bbb 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/CpIndex.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/CpIndex.scala @@ -1,36 +1,28 @@ package se.lu.nateko.cp.meta.services.sparql.magic -import org.eclipse.rdf4j.model.IRI -import org.eclipse.rdf4j.model.Value -import org.eclipse.rdf4j.model.ValueFactory +import org.eclipse.rdf4j.model.{IRI, Value, ValueFactory} import org.eclipse.rdf4j.sail.Sail -import org.roaringbitmap.buffer.BufferFastAggregation -import org.roaringbitmap.buffer.ImmutableRoaringBitmap -import org.roaringbitmap.buffer.MutableRoaringBitmap +import org.roaringbitmap.buffer.{BufferFastAggregation, ImmutableRoaringBitmap, MutableRoaringBitmap} +import org.slf4j.LoggerFactory import se.lu.nateko.cp.meta.api.RdfLens.GlobConn import se.lu.nateko.cp.meta.core.crypto.Sha256Sum -import se.lu.nateko.cp.meta.instanceserver.RdfUpdate -import se.lu.nateko.cp.meta.instanceserver.TriplestoreConnection -import se.lu.nateko.cp.meta.services.CpVocab -import se.lu.nateko.cp.meta.services.CpmetaVocab -import se.lu.nateko.cp.meta.services.MetadataException +import se.lu.nateko.cp.meta.instanceserver.{RdfUpdate, TriplestoreConnection} import se.lu.nateko.cp.meta.services.sparql.index.* +import se.lu.nateko.cp.meta.services.sparql.magic.index.{IndexData, StatEntry, emptyBitmap} +import se.lu.nateko.cp.meta.services.{CpVocab, CpmetaVocab, MetadataException} import se.lu.nateko.cp.meta.utils.* import se.lu.nateko.cp.meta.utils.async.ReadWriteLocking import se.lu.nateko.cp.meta.utils.rdf4j.* - import java.io.Serializable import java.time.Instant import java.util.ArrayList import java.util.concurrent.ArrayBlockingQueue import scala.concurrent.Future import scala.jdk.CollectionConverters.IteratorHasAsScala -import scala.util.Failure -import scala.util.Success +import scala.util.{Failure, Success} + import CpIndex.* -import org.slf4j.LoggerFactory -import se.lu.nateko.cp.meta.services.sparql.magic.index.{IndexData, StatEntry, emptyBitmap} trait ObjSpecific{ def hash: Sha256Sum diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/CpNotifyingSail.scala b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/CpNotifyingSail.scala index bf521e6f9..e5bed11f6 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/CpNotifyingSail.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/CpNotifyingSail.scala @@ -8,13 +8,14 @@ import org.eclipse.rdf4j.query.algebra.evaluation.EvaluationStrategyFactory import org.eclipse.rdf4j.query.algebra.evaluation.federation.FederatedServiceResolverClient import org.eclipse.rdf4j.sail.helpers.{NotifyingSailConnectionWrapper, NotifyingSailWrapper} import org.eclipse.rdf4j.sail.{NotifyingSail, NotifyingSailConnection, SailConnectionListener} +import org.slf4j.LoggerFactory import se.lu.nateko.cp.meta.services.citation.{CitationClient, CitationProvider} import se.lu.nateko.cp.meta.utils.async.ok import scala.concurrent.{ExecutionContext, Future, Promise} import scala.reflect.Selectable.reflectiveSelectable import scala.util.{Failure, Success} -import org.slf4j.LoggerFactory + import index.IndexData diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/CpQueryOptimizerPipeline.scala b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/CpQueryOptimizerPipeline.scala index bbc14fbd9..c0952a14f 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/CpQueryOptimizerPipeline.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/CpQueryOptimizerPipeline.scala @@ -1,13 +1,8 @@ package se.lu.nateko.cp.meta.services.sparql.magic -import org.eclipse.rdf4j.query.algebra.evaluation.EvaluationStrategy -import org.eclipse.rdf4j.query.algebra.evaluation.QueryOptimizer -import org.eclipse.rdf4j.query.algebra.evaluation.QueryOptimizerPipeline -import org.eclipse.rdf4j.query.algebra.evaluation.TripleSource import org.eclipse.rdf4j.query.algebra.evaluation.impl.EvaluationStatistics -import org.eclipse.rdf4j.query.algebra.evaluation.optimizer.OrderLimitOptimizer -import org.eclipse.rdf4j.query.algebra.evaluation.optimizer.QueryJoinOptimizer -import org.eclipse.rdf4j.query.algebra.evaluation.optimizer.StandardQueryOptimizerPipeline +import org.eclipse.rdf4j.query.algebra.evaluation.optimizer.{OrderLimitOptimizer, QueryJoinOptimizer, StandardQueryOptimizerPipeline} +import org.eclipse.rdf4j.query.algebra.evaluation.{EvaluationStrategy, QueryOptimizer, QueryOptimizerPipeline, TripleSource} class CpQueryOptimizerPipeline( strat: EvaluationStrategy, diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/GeoEventProducer.scala b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/GeoEventProducer.scala index cdab966a5..04cf974f0 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/GeoEventProducer.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/GeoEventProducer.scala @@ -1,14 +1,13 @@ package se.lu.nateko.cp.meta.services.sparql.magic import org.eclipse.rdf4j.model.IRI -import org.locationtech.jts.geom.Coordinate -import org.locationtech.jts.geom.GeometryCollection +import org.locationtech.jts.geom.{Coordinate, GeometryCollection} import org.locationtech.jts.io.geojson.GeoJsonReader import se.lu.nateko.cp.meta.api.RdfLens.GlobConn import se.lu.nateko.cp.meta.core.data.DatasetType import se.lu.nateko.cp.meta.instanceserver.TriplestoreConnection.* -import se.lu.nateko.cp.meta.utils.Validated import se.lu.nateko.cp.meta.services.CpmetaVocab +import se.lu.nateko.cp.meta.utils.Validated class GeoEventProducer(cpIndex: CpIndex, metaVocab: CpmetaVocab, geoLookup: GeoLookup): private val geoJsonReader = GeoJsonReader() diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/GeoIndex.scala b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/GeoIndex.scala index 92ba1d6ae..bb24d921c 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/GeoIndex.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/GeoIndex.scala @@ -1,12 +1,8 @@ package se.lu.nateko.cp.meta.services.sparql.magic import org.locationtech.jts.algorithm.hull.ConcaveHull -import org.locationtech.jts.geom.Envelope -import org.locationtech.jts.geom.Geometry -import org.locationtech.jts.geom.GeometryCollection -import org.locationtech.jts.geom.GeometryFactory -import org.roaringbitmap.buffer.ImmutableRoaringBitmap -import org.roaringbitmap.buffer.MutableRoaringBitmap +import org.locationtech.jts.geom.{Envelope, Geometry, GeometryCollection, GeometryFactory} +import org.roaringbitmap.buffer.{ImmutableRoaringBitmap, MutableRoaringBitmap} import scala.collection.mutable import scala.collection.mutable.ArrayBuffer diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/GeoIndexProvider.scala b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/GeoIndexProvider.scala index 99bd05541..0f7a8c41f 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/GeoIndexProvider.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/GeoIndexProvider.scala @@ -2,17 +2,15 @@ package se.lu.nateko.cp.meta.services.sparql.magic import org.eclipse.rdf4j.model.vocabulary.RDF import org.eclipse.rdf4j.sail.Sail +import org.slf4j.LoggerFactory import se.lu.nateko.cp.meta.api.RdfLens.GlobConn import se.lu.nateko.cp.meta.instanceserver.TriplestoreConnection.getStatements +import se.lu.nateko.cp.meta.services.CpmetaVocab import se.lu.nateko.cp.meta.services.upload.StaticObjectReader -import se.lu.nateko.cp.meta.utils.rdf4j.Rdf4jStatement -import se.lu.nateko.cp.meta.utils.rdf4j.accessEagerly +import se.lu.nateko.cp.meta.utils.rdf4j.{Rdf4jStatement, accessEagerly} -import scala.concurrent.ExecutionContext -import scala.concurrent.Future +import scala.concurrent.{ExecutionContext, Future} import scala.util.Using -import se.lu.nateko.cp.meta.services.CpmetaVocab -import org.slf4j.LoggerFactory class GeoIndexProvider(using ExecutionContext): private val log = LoggerFactory.getLogger(getClass()) diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/GeoLookup.scala b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/GeoLookup.scala index 163235138..113c58b19 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/GeoLookup.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/GeoLookup.scala @@ -2,14 +2,11 @@ package se.lu.nateko.cp.meta.services.sparql.magic import org.eclipse.rdf4j.model.IRI import org.eclipse.rdf4j.model.vocabulary.RDF -import org.locationtech.jts.geom.Coordinate -import org.locationtech.jts.geom.Geometry +import org.locationtech.jts.geom.{Coordinate, Geometry} import org.locationtech.jts.io.geojson.GeoJsonReader import se.lu.nateko.cp.meta.api.RdfLens.GlobConn import se.lu.nateko.cp.meta.core.crypto.Md5Sum -import se.lu.nateko.cp.meta.core.data.DatasetType -import se.lu.nateko.cp.meta.core.data.GeoFeature -import se.lu.nateko.cp.meta.core.data.GeoJson +import se.lu.nateko.cp.meta.core.data.{DatasetType, GeoFeature, GeoJson} import se.lu.nateko.cp.meta.instanceserver.TriplestoreConnection.* import se.lu.nateko.cp.meta.services.upload.StaticObjectReader import se.lu.nateko.cp.meta.utils.rdf4j.Rdf4jStatement diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/IndexHandler.scala b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/IndexHandler.scala index 2a2033dd1..c9de203ac 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/IndexHandler.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/IndexHandler.scala @@ -40,6 +40,7 @@ import se.lu.nateko.cp.meta.services.sparql.magic.index.{ } import se.lu.nateko.cp.meta.utils.async.throttle import se.lu.nateko.cp.meta.utils.rdf4j.{===, Rdf4jStatement, accessEagerly} + import java.io.{FileInputStream, FileOutputStream, InputStream, OutputStream} import java.nio.file.{Files, Paths} import java.util.zip.{GZIPInputStream, GZIPOutputStream} diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/ReadonlyConnectionWrapper.scala b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/ReadonlyConnectionWrapper.scala index ba3c7aa65..96fd21e68 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/ReadonlyConnectionWrapper.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/ReadonlyConnectionWrapper.scala @@ -1,11 +1,9 @@ package se.lu.nateko.cp.meta.services.sparql.magic +import org.eclipse.rdf4j.model.{IRI, Resource, Value} import org.eclipse.rdf4j.sail.helpers.NotifyingSailConnectionWrapper -import org.eclipse.rdf4j.sail.NotifyingSailConnection -import org.eclipse.rdf4j.sail.UpdateContext -import org.eclipse.rdf4j.model.Resource -import org.eclipse.rdf4j.model.IRI -import org.eclipse.rdf4j.model.Value +import org.eclipse.rdf4j.sail.{NotifyingSailConnection, UpdateContext} + import scala.util.control.NoStackTrace class ReadonlyConnectionWrapper(conn: NotifyingSailConnection, errorMessage: String) extends NotifyingSailConnectionWrapper(conn){ diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/SimpleTupleFunctionExprEnricher.scala b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/SimpleTupleFunctionExprEnricher.scala index 977ac7913..b6e5aa38b 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/SimpleTupleFunctionExprEnricher.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/SimpleTupleFunctionExprEnricher.scala @@ -1,10 +1,8 @@ package se.lu.nateko.cp.meta.services.sparql.magic -import org.eclipse.rdf4j.query.algebra.StatementPattern -import org.eclipse.rdf4j.query.algebra.TupleFunctionCall -import org.eclipse.rdf4j.query.algebra.ValueConstant import org.eclipse.rdf4j.query.algebra.evaluation.function.TupleFunction import org.eclipse.rdf4j.query.algebra.helpers.AbstractQueryModelVisitor +import org.eclipse.rdf4j.query.algebra.{StatementPattern, TupleFunctionCall, ValueConstant} import org.eclipse.rdf4j.sail.SailException class SimpleTupleFunctionExprEnricher(funcs: Map[String, TupleFunction]) extends AbstractQueryModelVisitor[SailException]{ diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/StatementsEnricher.scala b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/StatementsEnricher.scala index 4cbc3ac2f..22cd0fed6 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/StatementsEnricher.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/StatementsEnricher.scala @@ -1,21 +1,12 @@ package se.lu.nateko.cp.meta.services.sparql.magic -import org.eclipse.rdf4j.common.iteration.CloseableIteration -import org.eclipse.rdf4j.common.iteration.EmptyIteration -import org.eclipse.rdf4j.common.iteration.SingletonIteration -import org.eclipse.rdf4j.common.iteration.UnionIteration -import org.eclipse.rdf4j.model.IRI -import org.eclipse.rdf4j.model.Resource -import org.eclipse.rdf4j.model.Statement -import org.eclipse.rdf4j.model.Value -import org.eclipse.rdf4j.model.ValueFactory +import org.eclipse.rdf4j.common.iteration.{CloseableIteration, EmptyIteration, SingletonIteration, UnionIteration} +import org.eclipse.rdf4j.model.{IRI, Resource, Statement, Value, ValueFactory} import org.eclipse.rdf4j.repository.sparql.federation.CollectionIteration import org.eclipse.rdf4j.sail.SailException import se.lu.nateko.cp.meta.core.data.References -import se.lu.nateko.cp.meta.services.CpmetaVocab import se.lu.nateko.cp.meta.services.citation.CitationProvider -import se.lu.nateko.cp.meta.utils.rdf4j.createStringLiteral -import se.lu.nateko.cp.meta.utils.rdf4j.toRdf +import se.lu.nateko.cp.meta.utils.rdf4j.{createStringLiteral, toRdf} import java.util.Arrays import scala.collection.immutable.SeqMap diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/StorageSail.scala b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/StorageSail.scala index 2895ab28d..ea1d60667 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/StorageSail.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/StorageSail.scala @@ -1,14 +1,12 @@ package se.lu.nateko.cp.meta.services.sparql.magic -import org.eclipse.rdf4j.sail.lmdb.config.LmdbStoreConfig import org.eclipse.rdf4j.sail.lmdb.LmdbStore import org.eclipse.rdf4j.sail.lmdb.config.LmdbStoreConfig import org.eclipse.rdf4j.sail.nativerdf.NativeStore -import se.lu.nateko.cp.meta.RdfStorageConfig -import java.nio.file.FileVisitOption -import java.nio.file.Files -import java.nio.file.Paths import org.slf4j.LoggerFactory +import se.lu.nateko.cp.meta.RdfStorageConfig + +import java.nio.file.{FileVisitOption, Files, Paths} object StorageSail: private val log = LoggerFactory.getLogger(getClass()) diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/fusion/DanglingCleanup.scala b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/fusion/DanglingCleanup.scala index 3b9340d9d..e458bf402 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/fusion/DanglingCleanup.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/fusion/DanglingCleanup.scala @@ -1,9 +1,7 @@ package se.lu.nateko.cp.meta.services.sparql.magic.fusion -import org.eclipse.rdf4j.query.algebra.StatementPattern -import org.eclipse.rdf4j.query.algebra.SingletonSet -import org.eclipse.rdf4j.query.algebra.QueryModelNode import org.eclipse.rdf4j.query.algebra.helpers.AbstractQueryModelVisitor +import org.eclipse.rdf4j.query.algebra.{QueryModelNode, SingletonSet, StatementPattern} object DanglingCleanup{ diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/fusion/DataObjectFetchNode.scala b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/fusion/DataObjectFetchNode.scala index ed069d21c..d51d73929 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/fusion/DataObjectFetchNode.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/fusion/DataObjectFetchNode.scala @@ -1,10 +1,10 @@ package se.lu.nateko.cp.meta.services.sparql.magic.fusion -import scala.jdk.CollectionConverters.SeqHasAsJava import org.eclipse.rdf4j.query.algebra.* import org.eclipse.rdf4j.query.algebra.evaluation.impl.EvaluationStatistics -import se.lu.nateko.cp.meta.services.sparql.index.DataObjectFetch -import se.lu.nateko.cp.meta.services.sparql.index.Property +import se.lu.nateko.cp.meta.services.sparql.index.{DataObjectFetch, Property} + +import scala.jdk.CollectionConverters.SeqHasAsJava class DataObjectFetchNode( val fetchRequest: DataObjectFetch, diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/fusion/DofPattern.scala b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/fusion/DofPattern.scala index 9dd950499..393d1e372 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/fusion/DofPattern.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/fusion/DofPattern.scala @@ -1,7 +1,6 @@ package se.lu.nateko.cp.meta.services.sparql.magic.fusion -import org.eclipse.rdf4j.model.IRI -import org.eclipse.rdf4j.model.Value +import org.eclipse.rdf4j.model.{IRI, Value} import org.eclipse.rdf4j.query.algebra.* /** diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/fusion/DofPatternFusion.scala b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/fusion/DofPatternFusion.scala index e260dfe88..d5dd88ceb 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/fusion/DofPatternFusion.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/fusion/DofPatternFusion.scala @@ -1,27 +1,15 @@ package se.lu.nateko.cp.meta.services.sparql.magic.fusion -import org.eclipse.rdf4j.model.IRI -import org.eclipse.rdf4j.model.Literal -import org.eclipse.rdf4j.model.Value -import org.eclipse.rdf4j.query.algebra.BindingSetAssignment -import org.eclipse.rdf4j.query.algebra.Exists -import org.eclipse.rdf4j.query.algebra.Extension -import org.eclipse.rdf4j.query.algebra.Not -import org.eclipse.rdf4j.query.algebra.QueryModelNode -import org.eclipse.rdf4j.query.algebra.SingletonSet -import org.eclipse.rdf4j.query.algebra.StatementPattern -import org.eclipse.rdf4j.query.algebra.TupleExpr -import org.eclipse.rdf4j.query.algebra.Union -import org.eclipse.rdf4j.query.algebra.ValueExpr +import org.eclipse.rdf4j.model.vocabulary.GEO +import org.eclipse.rdf4j.model.{IRI, Literal, Value} +import org.eclipse.rdf4j.query.algebra.{Extension, QueryModelNode, StatementPattern, TupleExpr} import se.lu.nateko.cp.meta.services.CpmetaVocab import se.lu.nateko.cp.meta.services.sparql.index -import se.lu.nateko.cp.meta.services.sparql.index.{Exists => _, *} +import se.lu.nateko.cp.meta.services.sparql.index.* import se.lu.nateko.cp.meta.services.sparql.magic.fusion.StatsFetchPatternSearch.GroupPattern -import se.lu.nateko.cp.meta.services.sparql.magic.fusion.StatsFetchNode import se.lu.nateko.cp.meta.utils.rdf4j.* import DofPatternFusion.* -import org.eclipse.rdf4j.model.vocabulary.GEO sealed trait FusionPattern case class DobjStatFusion(exprToFuse: Extension, node: StatsFetchNode) extends FusionPattern diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/fusion/DofPatternRewrite.scala b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/fusion/DofPatternRewrite.scala index 0c8ca52dd..ebd3a9d43 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/fusion/DofPatternRewrite.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/fusion/DofPatternRewrite.scala @@ -1,15 +1,6 @@ package se.lu.nateko.cp.meta.services.sparql.magic.fusion -import se.lu.nateko.cp.meta.services.sparql.index.DobjUri -import org.eclipse.rdf4j.query.algebra.SingletonSet -import org.eclipse.rdf4j.query.algebra.BinaryTupleOperator -import org.eclipse.rdf4j.query.algebra.TupleExpr -import org.eclipse.rdf4j.query.algebra.Slice -import org.eclipse.rdf4j.query.algebra.Order -import org.eclipse.rdf4j.query.algebra.Group -import org.eclipse.rdf4j.query.algebra.Filter -import org.eclipse.rdf4j.query.algebra.UnaryTupleOperator -import org.eclipse.rdf4j.query.algebra.BindingSetAssignment +import org.eclipse.rdf4j.query.algebra.{BinaryTupleOperator, Filter, Group, Order, SingletonSet, Slice, TupleExpr, UnaryTupleOperator} object DofPatternRewrite{ diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/fusion/DofPatternSearch.scala b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/fusion/DofPatternSearch.scala index 3be1efd88..65b862ad7 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/fusion/DofPatternSearch.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/fusion/DofPatternSearch.scala @@ -1,13 +1,12 @@ package se.lu.nateko.cp.meta.services.sparql.magic.fusion -import scala.jdk.CollectionConverters.IterableHasAsScala - -import org.eclipse.rdf4j.query.algebra.* import org.eclipse.rdf4j.model.IRI +import org.eclipse.rdf4j.query.algebra.* import se.lu.nateko.cp.meta.services.CpmetaVocab -import se.lu.nateko.cp.meta.utils.rdf4j.* import se.lu.nateko.cp.meta.utils.asOptInstanceOf +import se.lu.nateko.cp.meta.utils.rdf4j.* +import scala.jdk.CollectionConverters.IterableHasAsScala import DofPatternSearch.* import StatsFetchPatternSearch.* diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/fusion/FilterPatternSearch.scala b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/fusion/FilterPatternSearch.scala index 02d9555aa..ce809becb 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/fusion/FilterPatternSearch.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/fusion/FilterPatternSearch.scala @@ -1,21 +1,8 @@ package se.lu.nateko.cp.meta.services.sparql.magic.fusion -import org.eclipse.rdf4j.model.IRI -import org.eclipse.rdf4j.model.Literal -import org.eclipse.rdf4j.model.Value import org.eclipse.rdf4j.model.vocabulary.GEO -import org.eclipse.rdf4j.query.algebra.And -import org.eclipse.rdf4j.query.algebra.Compare -import org.eclipse.rdf4j.query.algebra.Exists -import org.eclipse.rdf4j.query.algebra.Filter -import org.eclipse.rdf4j.query.algebra.Join -import org.eclipse.rdf4j.query.algebra.Not -import org.eclipse.rdf4j.query.algebra.Or -import org.eclipse.rdf4j.query.algebra.StatementPattern -import org.eclipse.rdf4j.query.algebra.ValueConstant -import org.eclipse.rdf4j.query.algebra.ValueExpr -import org.eclipse.rdf4j.query.algebra.Var -import org.eclipse.rdf4j.query.algebra.{Regex => RdfRegex} +import org.eclipse.rdf4j.model.{IRI, Literal, Value} +import org.eclipse.rdf4j.query.algebra.{And, Compare, Exists, Not, Or, Regex as RdfRegex, StatementPattern, ValueConstant, ValueExpr, Var} import org.locationtech.jts.io.WKTReader import se.lu.nateko.cp.meta.core.algo.HierarchicalBitmap.* import se.lu.nateko.cp.meta.services.CpmetaVocab @@ -24,7 +11,6 @@ import se.lu.nateko.cp.meta.services.sparql.index.* import se.lu.nateko.cp.meta.utils.asOptInstanceOf import se.lu.nateko.cp.meta.utils.rdf4j.* -import java.time.Instant import scala.util.Try import scala.util.matching.Regex diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/fusion/StatsFetchNode.scala b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/fusion/StatsFetchNode.scala index 013fe4fc7..4b6d8e232 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/fusion/StatsFetchNode.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/fusion/StatsFetchNode.scala @@ -1,10 +1,11 @@ package se.lu.nateko.cp.meta.services.sparql.magic.fusion -import scala.jdk.CollectionConverters.SeqHasAsJava import org.eclipse.rdf4j.query.algebra.* import org.eclipse.rdf4j.query.algebra.evaluation.impl.EvaluationStatistics import se.lu.nateko.cp.meta.services.sparql.magic.fusion.StatsFetchPatternSearch.GroupPattern +import scala.jdk.CollectionConverters.SeqHasAsJava + class StatsFetchNode( val countVarName: String, val group: GroupPattern diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/fusion/StatsFetchPatternSearch.scala b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/fusion/StatsFetchPatternSearch.scala index 21f2624a7..3b9da1afe 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/fusion/StatsFetchPatternSearch.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/fusion/StatsFetchPatternSearch.scala @@ -1,13 +1,10 @@ package se.lu.nateko.cp.meta.services.sparql.magic.fusion -import scala.jdk.CollectionConverters.* -import org.eclipse.rdf4j.query.algebra.Group -import org.eclipse.rdf4j.query.algebra.Count -import org.eclipse.rdf4j.query.algebra.Var -import org.eclipse.rdf4j.query.algebra.Extension -import org.eclipse.rdf4j.query.algebra.ValueExpr +import org.eclipse.rdf4j.query.algebra.{Count, Extension, Group, ValueExpr, Var} import se.lu.nateko.cp.meta.services.sparql.index.Filter +import scala.jdk.CollectionConverters.* + object StatsFetchPatternSearch{ diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/fusion/package.scala b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/fusion/package.scala index 98eec9e9f..96a4b9dab 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/fusion/package.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/fusion/package.scala @@ -1,8 +1,9 @@ package se.lu.nateko.cp.meta.services.sparql.magic.fusion -import scala.annotation.tailrec import org.eclipse.rdf4j.query.algebra.* +import scala.annotation.tailrec + def splitTriple(sp: StatementPattern) = (sp.getSubjectVar, sp.getPredicateVar, sp.getObjectVar) def highestJoinOnlyAncestor(node: QueryModelNode): Option[Join] = { diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/index/IndexData.scala b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/index/IndexData.scala index 197848c9c..57f61c5c5 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/index/IndexData.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/index/IndexData.scala @@ -3,13 +3,14 @@ package se.lu.nateko.cp.meta.services.sparql.magic.index import org.eclipse.rdf4j.model.vocabulary.XSD import org.eclipse.rdf4j.model.{IRI, Literal, Statement, Value} import org.roaringbitmap.buffer.MutableRoaringBitmap +import org.slf4j.LoggerFactory import se.lu.nateko.cp.meta.core.algo.DatetimeHierarchicalBitmap.DateTimeGeo import se.lu.nateko.cp.meta.core.algo.{DatetimeHierarchicalBitmap, HierarchicalBitmap} import se.lu.nateko.cp.meta.core.crypto.Sha256Sum -import se.lu.nateko.cp.meta.instanceserver.{TriplestoreConnection => TSC} +import se.lu.nateko.cp.meta.instanceserver.TriplestoreConnection as TSC import se.lu.nateko.cp.meta.services.linkeddata.UriSerializer.Hash +import se.lu.nateko.cp.meta.services.sparql.index.* import se.lu.nateko.cp.meta.services.sparql.index.StringHierarchicalBitmap.StringGeo -import se.lu.nateko.cp.meta.services.sparql.index.{FileSizeHierarchicalBitmap, SamplingHeightHierarchicalBitmap, *} import se.lu.nateko.cp.meta.services.{CpVocab, CpmetaVocab} import se.lu.nateko.cp.meta.utils.rdf4j.{===, Rdf4jStatement, asString, toJava} import se.lu.nateko.cp.meta.utils.{asOptInstanceOf, parseCommaSepList, parseJsonStringArray} @@ -17,7 +18,6 @@ import se.lu.nateko.cp.meta.utils.{asOptInstanceOf, parseCommaSepList, parseJson import java.time.Instant import scala.collection.IndexedSeq as IndSeq import scala.collection.mutable.{AnyRefMap, ArrayBuffer} -import org.slf4j.LoggerFactory final class DataStartGeo(objs: IndSeq[ObjEntry]) extends DateTimeGeo(objs(_).dataStart) final class DataEndGeo(objs: IndSeq[ObjEntry]) extends DateTimeGeo(objs(_).dataEnd) diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/index/ObjEntry.scala b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/index/ObjEntry.scala index de2b00e54..aef14e882 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/index/ObjEntry.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/sparql/magic/index/ObjEntry.scala @@ -3,6 +3,7 @@ package se.lu.nateko.cp.meta.services.sparql.magic.index import org.eclipse.rdf4j.model.{IRI, ValueFactory} import se.lu.nateko.cp.meta.core.crypto.Sha256Sum import se.lu.nateko.cp.meta.services.sparql.magic.ObjInfo + import java.time.Instant import scala.compiletime.uninitialized diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/upload/CollectionFetcher.scala b/src/main/scala/se/lu/nateko/cp/meta/services/upload/CollectionFetcher.scala index 4b8887276..98c173bbb 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/upload/CollectionFetcher.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/upload/CollectionFetcher.scala @@ -1,20 +1,13 @@ package se.lu.nateko.cp.meta.services.upload - -import eu.icoscp.envri.Envri import org.eclipse.rdf4j.model.IRI -import org.eclipse.rdf4j.model.vocabulary.RDF import org.eclipse.rdf4j.model.vocabulary.RDFS import se.lu.nateko.cp.meta.api.RdfLens -import se.lu.nateko.cp.meta.api.RdfLens.CollConn -import se.lu.nateko.cp.meta.api.RdfLens.DocConn +import se.lu.nateko.cp.meta.api.RdfLens.{CollConn, DocConn} import se.lu.nateko.cp.meta.core.crypto.Sha256Sum import se.lu.nateko.cp.meta.core.data.* -import se.lu.nateko.cp.meta.instanceserver.InstanceServer import se.lu.nateko.cp.meta.instanceserver.TriplestoreConnection import se.lu.nateko.cp.meta.instanceserver.TriplestoreConnection.* -import se.lu.nateko.cp.meta.services.CpVocab import se.lu.nateko.cp.meta.services.CpmetaVocab -import se.lu.nateko.cp.meta.services.citation.CitationMaker import se.lu.nateko.cp.meta.utils.* import se.lu.nateko.cp.meta.utils.rdf4j.* diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/upload/CpmetaFetcher.scala b/src/main/scala/se/lu/nateko/cp/meta/services/upload/CpmetaFetcher.scala index f7383e642..dec2a5c01 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/upload/CpmetaFetcher.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/upload/CpmetaFetcher.scala @@ -1,25 +1,16 @@ package se.lu.nateko.cp.meta.services.upload import org.eclipse.rdf4j.model.IRI -import org.eclipse.rdf4j.model.ValueFactory -import org.eclipse.rdf4j.model.vocabulary.RDF -import org.eclipse.rdf4j.model.vocabulary.RDFS +import org.eclipse.rdf4j.model.vocabulary.{RDF, RDFS} import se.lu.nateko.cp.meta.api.RdfLens -import se.lu.nateko.cp.meta.api.UriId import se.lu.nateko.cp.meta.core.data.* import se.lu.nateko.cp.meta.instanceserver.TriplestoreConnection import se.lu.nateko.cp.meta.metaflow.TcMetaSource import se.lu.nateko.cp.meta.services.CpmetaVocab -import se.lu.nateko.cp.meta.services.MetadataException -import se.lu.nateko.cp.meta.utils.Validated -import se.lu.nateko.cp.meta.utils.containsEither -import se.lu.nateko.cp.meta.utils.parseCommaSepList import se.lu.nateko.cp.meta.utils.rdf4j.* +import se.lu.nateko.cp.meta.utils.{Validated, containsEither, parseCommaSepList} import java.net.URI -import scala.util.Try -import se.lu.nateko.cp.meta.api.RdfLens.CollConn -import se.lu.nateko.cp.meta.core.crypto.Sha256Sum trait CpmetaReader: diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/upload/DataObjectInstanceServers.scala b/src/main/scala/se/lu/nateko/cp/meta/services/upload/DataObjectInstanceServers.scala index 33f79cd71..b0c7372c1 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/upload/DataObjectInstanceServers.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/upload/DataObjectInstanceServers.scala @@ -1,33 +1,15 @@ package se.lu.nateko.cp.meta.services.upload import eu.icoscp.envri.Envri -import org.eclipse.rdf4j.model.IRI -import org.eclipse.rdf4j.model.ValueFactory -import org.eclipse.rdf4j.model.vocabulary.RDF -import org.eclipse.rdf4j.repository.Repository -import se.lu.nateko.cp.meta.DataObjectDto -import se.lu.nateko.cp.meta.DocObjectDto -import se.lu.nateko.cp.meta.ObjectUploadDto +import org.eclipse.rdf4j.model.{IRI, ValueFactory} import se.lu.nateko.cp.meta.api.RdfLens import se.lu.nateko.cp.meta.core.crypto.Sha256Sum -import se.lu.nateko.cp.meta.core.data.DataObjectSpec import se.lu.nateko.cp.meta.core.data.EnvriConfigs -import se.lu.nateko.cp.meta.core.data.Station import se.lu.nateko.cp.meta.instanceserver.InstanceServer -import se.lu.nateko.cp.meta.instanceserver.Rdf4jInstanceServer -import se.lu.nateko.cp.meta.instanceserver.TriplestoreConnection -import se.lu.nateko.cp.meta.instanceserver.TriplestoreConnection.* -import se.lu.nateko.cp.meta.services.CpVocab -import se.lu.nateko.cp.meta.services.CpmetaVocab -import se.lu.nateko.cp.meta.services.MetadataException -import se.lu.nateko.cp.meta.services.UploadUserErrorException -import se.lu.nateko.cp.meta.services.citation.CitationMaker import se.lu.nateko.cp.meta.services.citation.CitationProvider +import se.lu.nateko.cp.meta.services.{CpVocab, CpmetaVocab} import se.lu.nateko.cp.meta.utils.* -import scala.util.Success -import scala.util.Try - class DataObjectInstanceServers( val vanillaGlobal: InstanceServer, diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/upload/DobjMetaReader.scala b/src/main/scala/se/lu/nateko/cp/meta/services/upload/DobjMetaReader.scala index 6532f4bfa..4e3c88a5d 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/upload/DobjMetaReader.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/upload/DobjMetaReader.scala @@ -1,25 +1,16 @@ package se.lu.nateko.cp.meta.services.upload -import java.time.LocalDate -import java.time.ZoneId - import org.eclipse.rdf4j.model.IRI -import org.eclipse.rdf4j.model.vocabulary.RDFS -import org.eclipse.rdf4j.model.vocabulary.RDF - -import scala.util.Try - +import org.eclipse.rdf4j.model.vocabulary.{RDF, RDFS} import se.lu.nateko.cp.meta.api.RdfLens import se.lu.nateko.cp.meta.core.data.* -import se.lu.nateko.cp.meta.instanceserver.InstanceServer -import se.lu.nateko.cp.meta.utils.parseCommaSepList -import se.lu.nateko.cp.meta.utils.parseJsonStringArray -import se.lu.nateko.cp.meta.utils.rdf4j.* -import se.lu.nateko.cp.meta.services.CpVocab import se.lu.nateko.cp.meta.instanceserver.TriplestoreConnection -import se.lu.nateko.cp.meta.services.MetadataException -import se.lu.nateko.cp.meta.services.CpmetaVocab -import se.lu.nateko.cp.meta.utils.Validated +import se.lu.nateko.cp.meta.services.CpVocab +import se.lu.nateko.cp.meta.utils.rdf4j.* +import se.lu.nateko.cp.meta.utils.{Validated, parseCommaSepList, parseJsonStringArray} + +import java.time.{LocalDate, ZoneId} +import scala.util.Try trait DobjMetaReader(val vocab: CpVocab) extends CpmetaReader: diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/upload/DoiClientFactory.scala b/src/main/scala/se/lu/nateko/cp/meta/services/upload/DoiClientFactory.scala index 2c8234d77..36b6fc809 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/upload/DoiClientFactory.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/upload/DoiClientFactory.scala @@ -1,14 +1,10 @@ package se.lu.nateko.cp.meta.services.upload -import se.lu.nateko.cp.doi.core.DoiClient -import se.lu.nateko.cp.doi.core.DoiClientConfig -import se.lu.nateko.cp.doi.core.DoiReadonlyClient -import se.lu.nateko.cp.doi.core.PlainJavaDoiHttp -import se.lu.nateko.cp.meta.CpmetaConfig +import eu.icoscp.envri.Envri +import se.lu.nateko.cp.doi.core.{DoiClient, DoiClientConfig, DoiReadonlyClient, PlainJavaDoiHttp} import se.lu.nateko.cp.meta.DoiConfig import scala.concurrent.ExecutionContext -import eu.icoscp.envri.Envri class DoiClientFactory(conf: DoiConfig)(using ExecutionContext): diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/upload/DoiService.scala b/src/main/scala/se/lu/nateko/cp/meta/services/upload/DoiService.scala index 0a1c4aa2c..29009389f 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/upload/DoiService.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/upload/DoiService.scala @@ -1,38 +1,15 @@ package se.lu.nateko.cp.meta.services.upload - -import akka.actor.ActorSystem -import akka.http.scaladsl.Http -import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport.* -import akka.http.scaladsl.model.HttpRequest -import akka.http.scaladsl.model.MediaTypes import akka.http.scaladsl.model.Uri -import akka.http.scaladsl.model.headers.Accept -import akka.http.scaladsl.unmarshalling.Unmarshal -import se.lu.nateko.cp.doi.CoolDoi -import se.lu.nateko.cp.doi.Doi -import se.lu.nateko.cp.doi.DoiMeta -import se.lu.nateko.cp.doi.core.DoiClient -import se.lu.nateko.cp.doi.core.DoiClientConfig -import se.lu.nateko.cp.doi.core.PlainJavaDoiHttp +import eu.icoscp.envri.Envri +import se.lu.nateko.cp.doi.{Doi, DoiMeta} import se.lu.nateko.cp.meta.DoiConfig -import se.lu.nateko.cp.meta.core.data.DataObject -import se.lu.nateko.cp.meta.core.data.DataProduction -import se.lu.nateko.cp.meta.core.data.DocObject -import se.lu.nateko.cp.meta.core.data.FeatureCollection -import se.lu.nateko.cp.meta.core.data.PlainStaticObject -import se.lu.nateko.cp.meta.core.data.StaticCollection -import se.lu.nateko.cp.meta.core.data.StaticObject +import se.lu.nateko.cp.meta.core.data.{DataObject, DocObject, PlainStaticCollection, PlainStaticObject, StaticCollection, StaticObject} import se.lu.nateko.cp.meta.services.linkeddata.UriSerializer - -import java.net.URI -import java.time.Year -import scala.concurrent.ExecutionContext -import scala.concurrent.Future -import java.time.Instant import se.lu.nateko.cp.meta.services.metaexport.DataCite -import eu.icoscp.envri.Envri import se.lu.nateko.cp.meta.utils.Validated -import se.lu.nateko.cp.meta.core.data.PlainStaticCollection + +import java.net.URI +import scala.concurrent.{ExecutionContext, Future} class DoiService(doiConf: DoiConfig, fetcher: UriSerializer)(using ExecutionContext) { diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/upload/MetadataUpdater.scala b/src/main/scala/se/lu/nateko/cp/meta/services/upload/MetadataUpdater.scala index 0ffcbae5d..5706c7101 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/upload/MetadataUpdater.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/upload/MetadataUpdater.scala @@ -1,33 +1,16 @@ package se.lu.nateko.cp.meta.services.upload import eu.icoscp.envri.Envri -import org.eclipse.rdf4j.model.IRI -import org.eclipse.rdf4j.model.Resource -import org.eclipse.rdf4j.model.Statement -import org.eclipse.rdf4j.model.ValueFactory import org.eclipse.rdf4j.model.vocabulary.RDF +import org.eclipse.rdf4j.model.{IRI, Resource, Statement, ValueFactory} import se.lu.nateko.cp.meta.api.RdfLens.CollConn -import se.lu.nateko.cp.meta.api.RdfLens.GlobConn -import se.lu.nateko.cp.meta.api.SparqlQuery -import se.lu.nateko.cp.meta.api.SparqlRunner +import se.lu.nateko.cp.meta.api.{SparqlQuery, SparqlRunner} import se.lu.nateko.cp.meta.core.crypto.Sha256Sum -import se.lu.nateko.cp.meta.instanceserver.InstanceServer -import se.lu.nateko.cp.meta.instanceserver.RdfUpdate -import se.lu.nateko.cp.meta.instanceserver.TriplestoreConnection -import se.lu.nateko.cp.meta.instanceserver.TriplestoreConnection.getOptionalUri -import se.lu.nateko.cp.meta.instanceserver.TriplestoreConnection.getStatements -import se.lu.nateko.cp.meta.instanceserver.TriplestoreConnection.getUriValues -import se.lu.nateko.cp.meta.instanceserver.TriplestoreConnection.hasStatement -import se.lu.nateko.cp.meta.services.CpVocab -import se.lu.nateko.cp.meta.services.CpmetaVocab +import se.lu.nateko.cp.meta.instanceserver.TriplestoreConnection.{getStatements, getUriValues} +import se.lu.nateko.cp.meta.instanceserver.{RdfUpdate, TriplestoreConnection} +import se.lu.nateko.cp.meta.services.{CpVocab, CpmetaVocab} import se.lu.nateko.cp.meta.utils.rdf4j.* -import scala.concurrent.Await -import scala.concurrent.ExecutionContext -import scala.concurrent.Future -import scala.concurrent.duration.Duration -import scala.util.Using - abstract class MetadataUpdater(vocab: CpVocab): import MetadataUpdater.* import StatementStability.* diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/upload/PageContentMarshalling.scala b/src/main/scala/se/lu/nateko/cp/meta/services/upload/PageContentMarshalling.scala index d6502d7d8..374b0f8e3 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/upload/PageContentMarshalling.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/upload/PageContentMarshalling.scala @@ -15,6 +15,7 @@ import se.lu.nateko.cp.meta.utils.{Validated, getStackTrace} import se.lu.nateko.cp.meta.views.LandingPageExtras import spray.json.* import views.html.{CollectionLandingPage, LandingPage, MessagePage} + import java.util.concurrent.ExecutionException import scala.concurrent.{ExecutionContext, Future} diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/upload/StatementsProducer.scala b/src/main/scala/se/lu/nateko/cp/meta/services/upload/StatementsProducer.scala index c553f4e80..18771fe9d 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/upload/StatementsProducer.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/upload/StatementsProducer.scala @@ -1,42 +1,21 @@ package se.lu.nateko.cp.meta.services.upload import eu.icoscp.envri.Envri -import org.eclipse.rdf4j.model.IRI -import org.eclipse.rdf4j.model.Literal -import org.eclipse.rdf4j.model.Statement -import org.eclipse.rdf4j.model.Value -import org.eclipse.rdf4j.model.ValueFactory -import org.eclipse.rdf4j.model.vocabulary.RDF -import org.eclipse.rdf4j.model.vocabulary.RDFS -import org.eclipse.rdf4j.model.vocabulary.XSD -import se.lu.nateko.cp.meta.DataObjectDto -import se.lu.nateko.cp.meta.DataProductionDto -import se.lu.nateko.cp.meta.DocObjectDto -import se.lu.nateko.cp.meta.ObjectUploadDto -import se.lu.nateko.cp.meta.SpatioTemporalDto -import se.lu.nateko.cp.meta.StaticCollectionDto -import se.lu.nateko.cp.meta.StationTimeSeriesDto +import org.eclipse.rdf4j.model.vocabulary.{RDF, RDFS, XSD} +import org.eclipse.rdf4j.model.{IRI, Literal, Statement, Value, ValueFactory} import se.lu.nateko.cp.meta.api.UriId import se.lu.nateko.cp.meta.core.crypto.Sha256Sum -import se.lu.nateko.cp.meta.core.data.GeoFeature -import se.lu.nateko.cp.meta.core.data.GeoJson -import se.lu.nateko.cp.meta.core.data.LatLonBox -import se.lu.nateko.cp.meta.core.data.Position -import se.lu.nateko.cp.meta.core.data.flattenToSeq -import se.lu.nateko.cp.meta.instanceserver.InstanceServer +import se.lu.nateko.cp.meta.core.data.{GeoFeature, GeoJson, LatLonBox, Position, flattenToSeq} import se.lu.nateko.cp.meta.instanceserver.TriplestoreConnection -import se.lu.nateko.cp.meta.services.CpVocab -import se.lu.nateko.cp.meta.services.CpmetaVocab -import se.lu.nateko.cp.meta.services.UploadUserErrorException import se.lu.nateko.cp.meta.services.citation.CitationMaker +import se.lu.nateko.cp.meta.services.{CpVocab, CpmetaVocab, UploadUserErrorException} import se.lu.nateko.cp.meta.utils.* import se.lu.nateko.cp.meta.utils.rdf4j.* +import se.lu.nateko.cp.meta.{DataObjectDto, DataProductionDto, DocObjectDto, GeoCoverage, GeoJsonString, ObjectUploadDto, SpatioTemporalDto, StaticCollectionDto, StationTimeSeriesDto} import java.net.URI import java.time.Instant import scala.collection.mutable.Buffer -import se.lu.nateko.cp.meta.GeoJsonString -import se.lu.nateko.cp.meta.GeoCoverage class StatementsProducer(vocab: CpVocab, metaVocab: CpmetaVocab) { diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/upload/StaticObjectFetcher.scala b/src/main/scala/se/lu/nateko/cp/meta/services/upload/StaticObjectFetcher.scala index 3041b65f9..3695700bf 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/upload/StaticObjectFetcher.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/upload/StaticObjectFetcher.scala @@ -2,20 +2,14 @@ package se.lu.nateko.cp.meta.services.upload import eu.icoscp.envri.Envri import org.eclipse.rdf4j.model.IRI -import org.eclipse.rdf4j.model.vocabulary.RDF import org.eclipse.rdf4j.model.vocabulary.RDFS -import se.lu.nateko.cp.meta.api.HandleNetClient -import se.lu.nateko.cp.meta.api.RdfLens -import se.lu.nateko.cp.meta.api.RdfLenses +import se.lu.nateko.cp.meta.api.{HandleNetClient, RdfLens, RdfLenses} import se.lu.nateko.cp.meta.core.crypto.Sha256Sum import se.lu.nateko.cp.meta.core.data.* -import se.lu.nateko.cp.meta.instanceserver.InstanceServer import se.lu.nateko.cp.meta.instanceserver.TriplestoreConnection -import se.lu.nateko.cp.meta.services.CpVocab -import se.lu.nateko.cp.meta.services.CpmetaVocab import se.lu.nateko.cp.meta.services.citation.CitationMaker +import se.lu.nateko.cp.meta.services.{CpVocab, CpmetaVocab} import se.lu.nateko.cp.meta.utils.Validated -import se.lu.nateko.cp.meta.utils.parseCommaSepList import se.lu.nateko.cp.meta.utils.rdf4j.* import java.net.URI diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/upload/UploadLock.scala b/src/main/scala/se/lu/nateko/cp/meta/services/upload/UploadLock.scala index 77636ab70..a72f2b907 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/upload/UploadLock.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/upload/UploadLock.scala @@ -5,11 +5,8 @@ import se.lu.nateko.cp.meta.core.crypto.Sha256Sum import se.lu.nateko.cp.meta.services.MetadataException import scala.collection.mutable.Set -import scala.concurrent.ExecutionContext -import scala.concurrent.Future -import scala.util.Failure -import scala.util.Success -import scala.util.Try +import scala.concurrent.{ExecutionContext, Future} +import scala.util.{Failure, Success, Try} private[upload] class UploadLock { diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/upload/UploadService.scala b/src/main/scala/se/lu/nateko/cp/meta/services/upload/UploadService.scala index bec5bf3f1..3e4eec51d 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/upload/UploadService.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/upload/UploadService.scala @@ -1,38 +1,28 @@ package se.lu.nateko.cp.meta.services.upload -import java.net.URI - -import scala.concurrent.Future -import scala.util.Try - import akka.actor.ActorSystem +import akka.http.scaladsl.model.Uri import akka.stream.Materializer +import eu.icoscp.envri.Envri +import org.eclipse.rdf4j.model.ValueFactory import se.lu.nateko.cp.cpauth.core.UserId -import se.lu.nateko.cp.meta.{ ObjectUploadDto, StaticCollectionDto, SubmitterProfile, UploadServiceConfig } -import se.lu.nateko.cp.meta.DataObjectDto -import se.lu.nateko.cp.meta.DocObjectDto -import se.lu.nateko.cp.meta.api.HandleNetClient -import se.lu.nateko.cp.meta.api.SparqlRunner +import se.lu.nateko.cp.meta.api.{HandleNetClient, RdfLens, SparqlRunner} import se.lu.nateko.cp.meta.core.crypto.Sha256Sum -import se.lu.nateko.cp.meta.core.data.* -import se.lu.nateko.cp.meta.core.data.UploadCompletionInfo +import se.lu.nateko.cp.meta.core.data.{UploadCompletionInfo, FeatureCollection, GeoFeature, DataObject, DocObject} import se.lu.nateko.cp.meta.core.etcupload.EtcUploadMetadata import se.lu.nateko.cp.meta.instanceserver.InstanceServer import se.lu.nateko.cp.meta.services.linkeddata.UriSerializer.Hash -import se.lu.nateko.cp.meta.services.UploadUserErrorException -import se.lu.nateko.cp.meta.services.upload.completion.UploadCompleter +import se.lu.nateko.cp.meta.services.upload.completion.{Report, UploadCompleter} import se.lu.nateko.cp.meta.services.upload.etc.EtcUploadTransformer import se.lu.nateko.cp.meta.services.upload.validation.UploadValidator -import se.lu.nateko.cp.meta.utils.rdf4j.* -import se.lu.nateko.cp.meta.services.upload.completion.Report -import se.lu.nateko.cp.meta.ConfigLoader -import org.eclipse.rdf4j.model.ValueFactory -import eu.icoscp.envri.Envri -import se.lu.nateko.cp.meta.services.MetadataException -import se.lu.nateko.cp.meta.api.RdfLens -import akka.http.scaladsl.model.Uri +import se.lu.nateko.cp.meta.services.{MetadataException, UploadUserErrorException} import se.lu.nateko.cp.meta.utils.Validated -import scala.util.Success +import se.lu.nateko.cp.meta.utils.rdf4j.* +import se.lu.nateko.cp.meta.{ConfigLoader, DataObjectDto, DocObjectDto, ObjectUploadDto, StaticCollectionDto, SubmitterProfile, UploadServiceConfig} + +import java.net.URI +import scala.concurrent.Future +import scala.util.{Success, Try} class AccessUri(val uri: URI) @@ -42,7 +32,7 @@ class UploadService( conf: UploadServiceConfig )(using system: ActorSystem, mat: Materializer): - import se.lu.nateko.cp.meta.instanceserver.TriplestoreConnection.* + import RdfLens.GlobConn import servers.{ metaVocab, vocab, metaReader } import system.{ dispatcher, log } diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/upload/VarMetaLookup.scala b/src/main/scala/se/lu/nateko/cp/meta/services/upload/VarMetaLookup.scala index 3e3756310..1422a4394 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/upload/VarMetaLookup.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/upload/VarMetaLookup.scala @@ -1,11 +1,9 @@ package se.lu.nateko.cp.meta.services.upload -import scala.util.matching.Regex +import se.lu.nateko.cp.meta.core.data.{UriResource, ValueType, VarMeta} + import java.net.URI -import se.lu.nateko.cp.meta.core.data.ValueType -import se.lu.nateko.cp.meta.core.data.VarMeta -import se.lu.nateko.cp.meta.core.data.UriResource -import se.lu.nateko.cp.meta.core.data.InstrumentDeployment +import scala.util.matching.Regex class DatasetVariable( val self: UriResource, diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/upload/completion/FormatSpecificCompleter.scala b/src/main/scala/se/lu/nateko/cp/meta/services/upload/completion/FormatSpecificCompleter.scala index ba37de032..2abcdd051 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/upload/completion/FormatSpecificCompleter.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/upload/completion/FormatSpecificCompleter.scala @@ -1,8 +1,7 @@ package se.lu.nateko.cp.meta.services.upload.completion import se.lu.nateko.cp.meta.core.crypto.Sha256Sum -import se.lu.nateko.cp.meta.instanceserver.RdfUpdate -import se.lu.nateko.cp.meta.instanceserver.TriplestoreConnection +import se.lu.nateko.cp.meta.instanceserver.{RdfUpdate, TriplestoreConnection} import scala.concurrent.Future diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/upload/completion/NetCdfUploadCompleter.scala b/src/main/scala/se/lu/nateko/cp/meta/services/upload/completion/NetCdfUploadCompleter.scala index e060d92e3..067d51981 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/upload/completion/NetCdfUploadCompleter.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/upload/completion/NetCdfUploadCompleter.scala @@ -2,19 +2,12 @@ package se.lu.nateko.cp.meta.services.upload.completion import eu.icoscp.envri.Envri import se.lu.nateko.cp.meta.api.HandleNetClient -import se.lu.nateko.cp.meta.api.RdfLens +import se.lu.nateko.cp.meta.api.RdfLens.DobjLens import se.lu.nateko.cp.meta.core.crypto.Sha256Sum import se.lu.nateko.cp.meta.core.data.NetCdfExtract -import se.lu.nateko.cp.meta.instanceserver.InstanceServer -import se.lu.nateko.cp.meta.instanceserver.RdfUpdate -import se.lu.nateko.cp.meta.instanceserver.TriplestoreConnection -import se.lu.nateko.cp.meta.services.CpVocab -import se.lu.nateko.cp.meta.services.CpmetaVocab +import se.lu.nateko.cp.meta.instanceserver.{RdfUpdate, TriplestoreConnection} import se.lu.nateko.cp.meta.services.upload.MetadataUpdater - -import scala.concurrent.ExecutionContext -import scala.concurrent.Future -import se.lu.nateko.cp.meta.api.RdfLens.DobjLens +import se.lu.nateko.cp.meta.services.{CpVocab, CpmetaVocab} private class NetCdfUploadCompleter( diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/upload/completion/PidMinter.scala b/src/main/scala/se/lu/nateko/cp/meta/services/upload/completion/PidMinter.scala index adf7cd792..afb63938e 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/upload/completion/PidMinter.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/upload/completion/PidMinter.scala @@ -3,12 +3,10 @@ package se.lu.nateko.cp.meta.services.upload.completion import eu.icoscp.envri.Envri import se.lu.nateko.cp.meta.api.HandleNetClient import se.lu.nateko.cp.meta.core.crypto.Sha256Sum -import se.lu.nateko.cp.meta.instanceserver.RdfUpdate -import se.lu.nateko.cp.meta.instanceserver.TriplestoreConnection +import se.lu.nateko.cp.meta.instanceserver.{RdfUpdate, TriplestoreConnection} import se.lu.nateko.cp.meta.services.CpVocab -import scala.concurrent.ExecutionContext -import scala.concurrent.Future +import scala.concurrent.{ExecutionContext, Future} class PidMinter(handles: HandleNetClient, vocab: CpVocab)(using Envri) extends FormatSpecificCompleter: diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/upload/completion/TimeSeriesUploadCompleter.scala b/src/main/scala/se/lu/nateko/cp/meta/services/upload/completion/TimeSeriesUploadCompleter.scala index 58d6e2769..26036482c 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/upload/completion/TimeSeriesUploadCompleter.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/upload/completion/TimeSeriesUploadCompleter.scala @@ -3,18 +3,12 @@ package se.lu.nateko.cp.meta.services.upload.completion import eu.icoscp.envri.Envri import org.eclipse.rdf4j.model.IRI import se.lu.nateko.cp.meta.api.HandleNetClient -import se.lu.nateko.cp.meta.api.RdfLens.DobjConn -import se.lu.nateko.cp.meta.api.RdfLens.DobjLens +import se.lu.nateko.cp.meta.api.RdfLens.{DobjConn, DobjLens} import se.lu.nateko.cp.meta.core.crypto.Sha256Sum import se.lu.nateko.cp.meta.core.data.* -import se.lu.nateko.cp.meta.instanceserver.InstanceServer -import se.lu.nateko.cp.meta.instanceserver.RdfUpdate -import se.lu.nateko.cp.meta.instanceserver.TriplestoreConnection -import se.lu.nateko.cp.meta.services.CpVocab -import se.lu.nateko.cp.meta.services.CpmetaVocab -import se.lu.nateko.cp.meta.services.UploadCompletionException -import se.lu.nateko.cp.meta.services.upload.MetadataUpdater -import se.lu.nateko.cp.meta.services.upload.StatementsProducer +import se.lu.nateko.cp.meta.instanceserver.{RdfUpdate, TriplestoreConnection} +import se.lu.nateko.cp.meta.services.upload.{MetadataUpdater, StatementsProducer} +import se.lu.nateko.cp.meta.services.{CpVocab, CpmetaVocab} import se.lu.nateko.cp.meta.utils.printAsJsonArray import se.lu.nateko.cp.meta.utils.rdf4j.Rdf4jStatement diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/upload/completion/UploadCompleter.scala b/src/main/scala/se/lu/nateko/cp/meta/services/upload/completion/UploadCompleter.scala index 2d46d071c..cf515fd93 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/upload/completion/UploadCompleter.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/upload/completion/UploadCompleter.scala @@ -1,27 +1,17 @@ package se.lu.nateko.cp.meta.services.upload.completion import eu.icoscp.envri.Envri -import se.lu.nateko.cp.meta.api.HandleNetClient +import se.lu.nateko.cp.meta.api.RdfLens.DobjLens +import se.lu.nateko.cp.meta.api.{HandleNetClient, RdfLens} import se.lu.nateko.cp.meta.core.crypto.Sha256Sum -import se.lu.nateko.cp.meta.core.data.IngestionMetadataExtract -import se.lu.nateko.cp.meta.core.data.NetCdfExtract -import se.lu.nateko.cp.meta.core.data.SpatialTimeSeriesExtract -import se.lu.nateko.cp.meta.core.data.TimeSeriesExtract -import se.lu.nateko.cp.meta.core.data.UploadCompletionInfo -import se.lu.nateko.cp.meta.instanceserver.InstanceServer -import se.lu.nateko.cp.meta.instanceserver.RdfUpdate -import se.lu.nateko.cp.meta.instanceserver.TriplestoreConnection +import se.lu.nateko.cp.meta.core.data.{NetCdfExtract, SpatialTimeSeriesExtract, TimeSeriesExtract, UploadCompletionInfo} +import se.lu.nateko.cp.meta.instanceserver.{InstanceServer, RdfUpdate, TriplestoreConnection} +import se.lu.nateko.cp.meta.services.MetadataException import se.lu.nateko.cp.meta.services.upload.DataObjectInstanceServers - import se.lu.nateko.cp.meta.utils.rdf4j.toJava import java.time.Instant -import scala.concurrent.ExecutionContext -import scala.concurrent.Future -import scala.util.Try -import se.lu.nateko.cp.meta.services.MetadataException -import se.lu.nateko.cp.meta.api.RdfLens -import se.lu.nateko.cp.meta.api.RdfLens.DobjLens +import scala.concurrent.{ExecutionContext, Future} class UploadCompleter(servers: DataObjectInstanceServers, handles: HandleNetClient)(using ExecutionContext): diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/upload/etc/EtcFileMetadata.scala b/src/main/scala/se/lu/nateko/cp/meta/services/upload/etc/EtcFileMetadata.scala index 55aa9afe4..d1ddbb3ae 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/upload/etc/EtcFileMetadata.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/upload/etc/EtcFileMetadata.scala @@ -1,8 +1,6 @@ package se.lu.nateko.cp.meta.services.upload.etc -import se.lu.nateko.cp.meta.core.etcupload.DataType -import se.lu.nateko.cp.meta.core.etcupload.StationId -import se.lu.nateko.cp.meta.ingestion.badm.{Badm, BadmEntry, BadmValue} +import se.lu.nateko.cp.meta.core.etcupload.{DataType, StationId} case class EtcFileMeta(dtype: DataType, isBinary: Boolean) case class EtcFileMetaKey(station: StationId, loggerId: Int, fileId: Int, dataType: DataType) diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/upload/etc/EtcFileMetadataProvider.scala b/src/main/scala/se/lu/nateko/cp/meta/services/upload/etc/EtcFileMetadataProvider.scala index 63536971a..cbf8e6a83 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/upload/etc/EtcFileMetadataProvider.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/upload/etc/EtcFileMetadataProvider.scala @@ -1,16 +1,15 @@ package se.lu.nateko.cp.meta.services.upload.etc -import scala.concurrent.duration.* -import scala.util.Failure -import scala.util.Success - import akka.actor.ActorSystem +import akka.event.Logging import akka.stream.Materializer -import se.lu.nateko.cp.meta.core.etcupload.StationId import se.lu.nateko.cp.meta.EtcConfig +import se.lu.nateko.cp.meta.core.etcupload.StationId import se.lu.nateko.cp.meta.metaflow.icos.EtcMetaSource import se.lu.nateko.cp.meta.services.CpVocab -import akka.event.Logging + +import scala.concurrent.duration.* +import scala.util.{Failure, Success} class EtcFileMetadataProvider(conf: EtcConfig, vocab: CpVocab)(using system: ActorSystem) extends EtcFileMetadataStore{ diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/upload/etc/EtcUploadTransformer.scala b/src/main/scala/se/lu/nateko/cp/meta/services/upload/etc/EtcUploadTransformer.scala index c35a3b4fd..378745892 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/upload/etc/EtcUploadTransformer.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/upload/etc/EtcUploadTransformer.scala @@ -1,29 +1,18 @@ package se.lu.nateko.cp.meta.services.upload.etc -import java.time.LocalDateTime -import java.time.ZoneOffset - -import scala.util.Try - import akka.actor.ActorSystem -import akka.stream.Materializer -import se.lu.nateko.cp.meta.EtcConfig -import se.lu.nateko.cp.meta.StationTimeSeriesDto -import se.lu.nateko.cp.meta.api.SparqlQuery -import se.lu.nateko.cp.meta.api.SparqlRunner -import se.lu.nateko.cp.meta.api.UriId +import eu.icoscp.envri.Envri +import se.lu.nateko.cp.meta.api.{SparqlQuery, SparqlRunner, UriId} import se.lu.nateko.cp.meta.core.crypto.Sha256Sum import se.lu.nateko.cp.meta.core.data.TimeInterval -import se.lu.nateko.cp.meta.core.etcupload.DataType -import se.lu.nateko.cp.meta.core.etcupload.EtcUploadMetadata -import se.lu.nateko.cp.meta.core.etcupload.StationId -import se.lu.nateko.cp.meta.services.CpVocab -import se.lu.nateko.cp.meta.services.MetadataException +import se.lu.nateko.cp.meta.core.etcupload.{DataType, EtcUploadMetadata, StationId} +import se.lu.nateko.cp.meta.services.{CpVocab, MetadataException} import se.lu.nateko.cp.meta.utils.* import se.lu.nateko.cp.meta.utils.rdf4j.* -import scala.util.Success -import se.lu.nateko.cp.meta.DataObjectDto -import eu.icoscp.envri.Envri +import se.lu.nateko.cp.meta.{DataObjectDto, EtcConfig, StationTimeSeriesDto} + +import java.time.{LocalDateTime, ZoneOffset} +import scala.util.{Success, Try} class EtcUploadTransformer(sparqler: SparqlRunner, config: EtcConfig, vocab: CpVocab)(using ActorSystem) { diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/upload/geocov/GeoCluster.scala b/src/main/scala/se/lu/nateko/cp/meta/services/upload/geocov/GeoCluster.scala index 451f287ba..951b8b9de 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/upload/geocov/GeoCluster.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/upload/geocov/GeoCluster.scala @@ -1,11 +1,12 @@ package se.lu.nateko.cp.meta.services.upload.geocov -import org.locationtech.jts.geom.Geometry import org.locationtech.jts.algorithm.ConvexHull -import se.lu.nateko.cp.meta.services.sparql.magic.JtsGeoFactory +import org.locationtech.jts.geom.Geometry +import org.locationtech.jts.operation.union.UnaryUnionOp import org.locationtech.jts.simplify.DouglasPeuckerSimplifier +import se.lu.nateko.cp.meta.services.sparql.magic.JtsGeoFactory + import scala.collection.mutable -import org.locationtech.jts.operation.union.UnaryUnionOp object GeoCluster: val MaxGeoDigestSize = 15 diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/upload/geocov/GeoCovMerger.scala b/src/main/scala/se/lu/nateko/cp/meta/services/upload/geocov/GeoCovMerger.scala index e77e6bac8..28e39cac3 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/upload/geocov/GeoCovMerger.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/upload/geocov/GeoCovMerger.scala @@ -1,31 +1,10 @@ package se.lu.nateko.cp.meta.services.upload.geocov - -import org.locationtech.jts.algorithm.ConvexHull import org.locationtech.jts.algorithm.hull.ConcaveHull -import org.locationtech.jts.geom.Coordinate -import org.locationtech.jts.geom.Geometry -import org.locationtech.jts.geom.GeometryCollection -import org.locationtech.jts.geom.LineString -import org.locationtech.jts.geom.Point as JtsPoint -import org.locationtech.jts.geom.Polygon as JtsPolygon -import org.locationtech.jts.io.geojson.GeoJsonReader -import se.lu.nateko.cp.doi.meta.GeoLocation -import se.lu.nateko.cp.meta.core.data.Circle -import se.lu.nateko.cp.meta.core.data.FeatureCollection -import se.lu.nateko.cp.meta.core.data.GeoFeature -import se.lu.nateko.cp.meta.core.data.GeoTrack -import se.lu.nateko.cp.meta.core.data.LatLonBox -import se.lu.nateko.cp.meta.core.data.Pin -import se.lu.nateko.cp.meta.core.data.Polygon -import se.lu.nateko.cp.meta.core.data.Position -import se.lu.nateko.cp.meta.core.etcupload.StationId -import se.lu.nateko.cp.meta.services.sparql.magic.ConcaveHullLengthRatio -import se.lu.nateko.cp.meta.services.sparql.magic.JtsGeoFactory -import se.lu.nateko.cp.meta.core.data.PositionUtil -import scala.collection.mutable.ArrayBuffer +import org.locationtech.jts.geom.{Coordinate, Envelope, Geometry, GeometryCollection, LineString, Point as JtsPoint, Polygon as JtsPolygon} import org.locationtech.jts.index.strtree.STRtree -import org.locationtech.jts.geom.Envelope -import se.lu.nateko.cp.meta.core.data.FeatureWithGeoJson +import se.lu.nateko.cp.meta.core.data.{Circle, FeatureCollection, FeatureWithGeoJson, GeoFeature, GeoTrack, LatLonBox, Pin, Polygon, Position} +import se.lu.nateko.cp.meta.core.etcupload.StationId +import se.lu.nateko.cp.meta.services.sparql.magic.{ConcaveHullLengthRatio, JtsGeoFactory} diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/upload/validation/ScopedValidator.scala b/src/main/scala/se/lu/nateko/cp/meta/services/upload/validation/ScopedValidator.scala index ad3a93b08..23d00f0b4 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/upload/validation/ScopedValidator.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/upload/validation/ScopedValidator.scala @@ -1,48 +1,23 @@ package se.lu.nateko.cp.meta.services.upload.validation import akka.NotUsed -import org.eclipse.rdf4j.model.IRI -import org.eclipse.rdf4j.model.ValueFactory -import org.eclipse.rdf4j.model.vocabulary.RDF -import se.lu.nateko.cp.cpauth.core.UserId -import se.lu.nateko.cp.meta.ConfigLoader -import se.lu.nateko.cp.meta.DataObjectDto -import se.lu.nateko.cp.meta.DataProductionDto -import se.lu.nateko.cp.meta.DataSubmitterConfig -import se.lu.nateko.cp.meta.DocObjectDto -import se.lu.nateko.cp.meta.ObjectUploadDto -import se.lu.nateko.cp.meta.StaticCollectionDto -import se.lu.nateko.cp.meta.StationTimeSeriesDto -import se.lu.nateko.cp.meta.UploadDto -import se.lu.nateko.cp.meta.UploadServiceConfig +import eu.icoscp.envri.Envri +import org.eclipse.rdf4j.model.{IRI, ValueFactory} import se.lu.nateko.cp.meta.api.RdfLens import se.lu.nateko.cp.meta.core.crypto.Sha256Sum -import se.lu.nateko.cp.meta.core.data.DataObjectSpec -import se.lu.nateko.cp.meta.core.data.DatasetType -import se.lu.nateko.cp.meta.core.data.OptionalOneOrSeq -import se.lu.nateko.cp.meta.core.data.flattenToSeq -import se.lu.nateko.cp.meta.core.data.TimeInterval -import se.lu.nateko.cp.meta.instanceserver.InstanceServer +import se.lu.nateko.cp.meta.core.data.{DataObjectSpec, OptionalOneOrSeq, TimeInterval, flattenToSeq} import se.lu.nateko.cp.meta.instanceserver.TriplestoreConnection -import se.lu.nateko.cp.meta.services.CpVocab -import se.lu.nateko.cp.meta.services.CpmetaVocab -import se.lu.nateko.cp.meta.services.UnauthorizedUploadException -import se.lu.nateko.cp.meta.services.UploadUserErrorException import se.lu.nateko.cp.meta.services.linkeddata.UriSerializer.Hash import se.lu.nateko.cp.meta.services.upload.CpmetaReader +import se.lu.nateko.cp.meta.services.{CpVocab, CpmetaVocab} import se.lu.nateko.cp.meta.utils.* import se.lu.nateko.cp.meta.utils.rdf4j.* - +import se.lu.nateko.cp.meta.{DataObjectDto, DataSubmitterConfig, DocObjectDto, ObjectUploadDto, StationTimeSeriesDto} import java.net.URI import java.time.Instant -import java.util.Date -import scala.collection.mutable.Buffer import scala.language.strictEquality -import scala.util.Failure -import scala.util.Success -import scala.util.Try -import eu.icoscp.envri.Envri +import scala.util.{Success, Try} private class ScopedValidator(vocab: CpVocab, val metaVocab: CpmetaVocab) extends CpmetaReader: diff --git a/src/main/scala/se/lu/nateko/cp/meta/services/upload/validation/UploadValidator.scala b/src/main/scala/se/lu/nateko/cp/meta/services/upload/validation/UploadValidator.scala index fe054e63c..5b624badf 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/services/upload/validation/UploadValidator.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/services/upload/validation/UploadValidator.scala @@ -1,52 +1,24 @@ package se.lu.nateko.cp.meta.services.upload.validation import akka.NotUsed -import org.eclipse.rdf4j.model.IRI -import org.eclipse.rdf4j.model.ValueFactory -import org.eclipse.rdf4j.model.vocabulary.RDF +import eu.icoscp.envri.Envri +import org.eclipse.rdf4j.model.{IRI, ValueFactory} import se.lu.nateko.cp.cpauth.core.UserId -import se.lu.nateko.cp.meta.ConfigLoader -import se.lu.nateko.cp.meta.DataObjectDto -import se.lu.nateko.cp.meta.DataProductionDto -import se.lu.nateko.cp.meta.DataSubmitterConfig -import se.lu.nateko.cp.meta.DocObjectDto -import se.lu.nateko.cp.meta.ObjectUploadDto -import se.lu.nateko.cp.meta.StaticCollectionDto -import se.lu.nateko.cp.meta.UploadDto -import se.lu.nateko.cp.meta.UploadServiceConfig -import se.lu.nateko.cp.meta.api.RdfLens +import se.lu.nateko.cp.meta.api.{RdfLens, UriId} import se.lu.nateko.cp.meta.core.crypto.Sha256Sum -import se.lu.nateko.cp.meta.core.data.DataObjectSpec -import se.lu.nateko.cp.meta.core.data.DatasetType -import se.lu.nateko.cp.meta.core.data.OptionalOneOrSeq -import se.lu.nateko.cp.meta.core.data.flattenToSeq -import se.lu.nateko.cp.meta.core.data.TimeInterval +import se.lu.nateko.cp.meta.core.data.{DataObjectSpec, DatasetType, GeoFeature, GeoJson, OptionalOneOrSeq, TimeInterval, flattenToSeq} import se.lu.nateko.cp.meta.instanceserver.TriplestoreConnection -import se.lu.nateko.cp.meta.services.CpmetaVocab -import se.lu.nateko.cp.meta.services.UnauthorizedUploadException -import se.lu.nateko.cp.meta.services.UploadUserErrorException -import se.lu.nateko.cp.meta.services.linkeddata.UriSerializer.Hash +import se.lu.nateko.cp.meta.services.upload.DataObjectInstanceServers +import se.lu.nateko.cp.meta.services.{MetadataException, UnauthorizedUploadException, UploadUserErrorException} import se.lu.nateko.cp.meta.utils.* import se.lu.nateko.cp.meta.utils.rdf4j.* +import se.lu.nateko.cp.meta.{ConfigLoader, DataObjectDto, DataProductionDto, DataSubmitterConfig, DocObjectDto, GeoCoverage, GeoJsonString, ObjectUploadDto, StaticCollectionDto, UploadDto} import java.net.URI import java.time.Instant -import java.util.Date import scala.collection.mutable.Buffer import scala.language.strictEquality -import scala.util.Failure -import scala.util.Success -import scala.util.Try -import se.lu.nateko.cp.meta.services.CpVocab -import se.lu.nateko.cp.meta.services.upload.DataObjectInstanceServers -import eu.icoscp.envri.Envri -import se.lu.nateko.cp.meta.services.MetadataException -import se.lu.nateko.cp.meta.api.UriId -import se.lu.nateko.cp.meta.core.data.GeoFeature -import spray.json.JsonParser -import se.lu.nateko.cp.meta.core.data.GeoJson -import se.lu.nateko.cp.meta.GeoCoverage -import se.lu.nateko.cp.meta.GeoJsonString +import scala.util.{Failure, Success, Try} given CanEqual[URI, URI] = CanEqual.derived given CanEqual[IRI, IRI] = CanEqual.derived @@ -60,7 +32,7 @@ def authFail(msg: String) = Failure(new UnauthorizedUploadException(msg)) class UploadValidator(servers: DataObjectInstanceServers): import servers.{ metaVocab, vocab, metaReader, lenses } import TriplestoreConnection.* - import RdfLens.{MetaConn, DobjConn, DocConn, CollConn, ItemConn, GlobConn} + import RdfLens.{MetaConn, DobjConn, DocConn, CollConn, GlobConn} given vf: ValueFactory = metaVocab.factory private val scoped = ScopedValidator(vocab, metaVocab) diff --git a/src/main/scala/se/lu/nateko/cp/meta/utils/Validated.scala b/src/main/scala/se/lu/nateko/cp/meta/utils/Validated.scala index 2de43ac30..43e3b46c8 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/utils/Validated.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/utils/Validated.scala @@ -1,11 +1,8 @@ package se.lu.nateko.cp.meta.utils import scala.collection.mutable.Buffer -import scala.concurrent.Future -import scala.concurrent.ExecutionContext -import scala.util.Try -import scala.util.Success -import scala.util.Failure +import scala.concurrent.{ExecutionContext, Future} +import scala.util.{Failure, Success, Try} class Validated[+T](val result: Option[T], val errors: Seq[String] = Nil): diff --git a/src/main/scala/se/lu/nateko/cp/meta/utils/akkahttp/package.scala b/src/main/scala/se/lu/nateko/cp/meta/utils/akkahttp/package.scala index f7fce29ee..147505785 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/utils/akkahttp/package.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/utils/akkahttp/package.scala @@ -1,15 +1,13 @@ package se.lu.nateko.cp.meta.utils.akkahttp -import akka.stream.Materializer -import akka.http.scaladsl.model.HttpResponse -import akka.http.scaladsl.model.ResponseEntity -import akka.http.scaladsl.model.StatusCodes import akka.Done -import scala.concurrent.ExecutionContext -import scala.concurrent.Future +import akka.http.scaladsl.model.{HttpResponse, ResponseEntity, StatusCodes} +import akka.stream.Materializer +import se.lu.nateko.cp.meta.utils.async.{error, ok} + import scala.concurrent.duration.DurationInt +import scala.concurrent.{ExecutionContext, Future} import scala.util.Success -import se.lu.nateko.cp.meta.utils.async.{ok, error} def responseToDone(errCtxt: String)(resp: HttpResponse)(implicit ctxt: ExecutionContext, mat: Materializer): Future[Done] = if(resp.status.isSuccess) { diff --git a/src/main/scala/se/lu/nateko/cp/meta/utils/async/CancellableAction.scala b/src/main/scala/se/lu/nateko/cp/meta/utils/async/CancellableAction.scala index 66c66f0d2..117871025 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/utils/async/CancellableAction.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/utils/async/CancellableAction.scala @@ -1,8 +1,9 @@ package se.lu.nateko.cp.meta.utils.async -import scala.concurrent.duration.* import akka.actor.Scheduler + import scala.concurrent.ExecutionContext +import scala.concurrent.duration.* class CancellableAction(delay: FiniteDuration, scheduler: Scheduler)(action: => Unit)(implicit exe: ExecutionContext){ diff --git a/src/main/scala/se/lu/nateko/cp/meta/utils/async/package.scala b/src/main/scala/se/lu/nateko/cp/meta/utils/async/package.scala index 41327085d..a580ad28f 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/utils/async/package.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/utils/async/package.scala @@ -1,17 +1,14 @@ package se.lu.nateko.cp.meta.utils.async +import akka.Done +import akka.actor.Scheduler + import java.util.concurrent.TimeoutException import java.util.concurrent.atomic.AtomicBoolean - -import scala.concurrent.ExecutionContext -import scala.concurrent.Future -import scala.concurrent.Promise import scala.concurrent.duration.FiniteDuration +import scala.concurrent.{ExecutionContext, Future, Promise} import scala.util.control.NoStackTrace -import akka.actor.Scheduler -import akka.Done - def ok: Future[Done] = Future.successful(Done) def error[T](msg: String): Future[T] = Future.failed(new Exception(msg)) diff --git a/src/main/scala/se/lu/nateko/cp/meta/utils/json.scala b/src/main/scala/se/lu/nateko/cp/meta/utils/json.scala index 7ccacfdd4..5231ae96a 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/utils/json.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/utils/json.scala @@ -1,7 +1,6 @@ package se.lu.nateko.cp.meta.utils.json -import spray.json.JsObject -import spray.json.JsValue +import spray.json.{JsObject, JsValue} def merge(objs: JsObject*): JsObject = JsObject(objs.flatMap(_.fields)*) diff --git a/src/main/scala/se/lu/nateko/cp/meta/utils/owlapi/package.scala b/src/main/scala/se/lu/nateko/cp/meta/utils/owlapi/package.scala index 3d8e352c0..fce7f6efd 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/utils/owlapi/package.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/utils/owlapi/package.scala @@ -1,12 +1,13 @@ package se.lu.nateko.cp.meta.utils.owlapi -import org.semanticweb.owlapi.model.* import org.semanticweb.owlapi.io.XMLUtils +import org.semanticweb.owlapi.model.* +import se.lu.nateko.cp.meta.CpmetaConfig + import java.util.Optional -import java.util.stream.{Stream => JavaStream} +import java.util.stream.Stream as JavaStream import scala.reflect.ClassTag -import se.lu.nateko.cp.meta.CpmetaConfig extension [T] (opt: Optional[T]) def toOption: Option[T] = if(opt.isPresent) Some(opt.get) else None diff --git a/src/main/scala/se/lu/nateko/cp/meta/utils/package.scala b/src/main/scala/se/lu/nateko/cp/meta/utils/package.scala index 151afafc6..a57c8d952 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/utils/package.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/utils/package.scala @@ -1,13 +1,13 @@ package se.lu.nateko.cp.meta.utils +import akka.http.scaladsl.model.Uri +import akka.http.scaladsl.model.Uri.Path.{Empty, Segment, Slash} + import java.time.Instant import java.time.format.DateTimeFormatter.ISO_DATE_TIME -import scala.util.{Try, Success, Failure} -import scala.reflect.ClassTag -import java.nio.charset.StandardCharsets -import akka.http.scaladsl.model.Uri -import akka.http.scaladsl.model.Uri.Path.{Segment, Slash, Empty} import scala.collection.mutable.Buffer +import scala.reflect.ClassTag +import scala.util.{Failure, Success, Try} extension [T](inner: Option[T]) def toTry(error: => Throwable): Try[T] = inner.map(Success.apply) diff --git a/src/main/scala/se/lu/nateko/cp/meta/utils/rdf4j/Loading.scala b/src/main/scala/se/lu/nateko/cp/meta/utils/rdf4j/Loading.scala index 86b63e229..aab7005f5 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/utils/rdf4j/Loading.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/utils/rdf4j/Loading.scala @@ -1,13 +1,12 @@ package se.lu.nateko.cp.meta.utils.rdf4j +import org.eclipse.rdf4j.model.{IRI, Statement} import org.eclipse.rdf4j.repository.Repository import org.eclipse.rdf4j.repository.sail.SailRepository -import org.eclipse.rdf4j.sail.memory.MemoryStore import org.eclipse.rdf4j.rio.RDFFormat -import org.eclipse.rdf4j.model.Statement -import org.eclipse.rdf4j.model.IRI -import scala.util.Failure -import scala.util.Try +import org.eclipse.rdf4j.sail.memory.MemoryStore + +import scala.util.{Failure, Try} object Loading { diff --git a/src/main/scala/se/lu/nateko/cp/meta/utils/rdf4j/Rdf4jIterationIterator.scala b/src/main/scala/se/lu/nateko/cp/meta/utils/rdf4j/Rdf4jIterationIterator.scala index 5d63b312b..b240b030a 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/utils/rdf4j/Rdf4jIterationIterator.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/utils/rdf4j/Rdf4jIterationIterator.scala @@ -1,7 +1,5 @@ package se.lu.nateko.cp.meta.utils.rdf4j -import scala.collection.AbstractIterator - import org.eclipse.rdf4j.common.iteration.CloseableIteration import se.lu.nateko.cp.meta.api.CloseableIterator diff --git a/src/main/scala/se/lu/nateko/cp/meta/utils/rdf4j/Rdf4jStatement.scala b/src/main/scala/se/lu/nateko/cp/meta/utils/rdf4j/Rdf4jStatement.scala index 17dc32244..cade68ad4 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/utils/rdf4j/Rdf4jStatement.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/utils/rdf4j/Rdf4jStatement.scala @@ -1,8 +1,6 @@ package se.lu.nateko.cp.meta.utils.rdf4j -import org.eclipse.rdf4j.model.Statement -import org.eclipse.rdf4j.model.IRI -import org.eclipse.rdf4j.model.Value +import org.eclipse.rdf4j.model.{IRI, Statement, Value} object Rdf4jStatement { diff --git a/src/main/scala/se/lu/nateko/cp/meta/utils/rdf4j/package.scala b/src/main/scala/se/lu/nateko/cp/meta/utils/rdf4j/package.scala index ca6330998..051a4765d 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/utils/rdf4j/package.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/utils/rdf4j/package.scala @@ -3,28 +3,18 @@ package se.lu.nateko.cp.meta.utils.rdf4j import akka.http.scaladsl.model.Uri import org.eclipse.rdf4j.common.iteration.CloseableIteration import org.eclipse.rdf4j.common.transaction.IsolationLevel -import org.eclipse.rdf4j.model.IRI -import org.eclipse.rdf4j.model.Literal -import org.eclipse.rdf4j.model.Statement -import org.eclipse.rdf4j.model.Value -import org.eclipse.rdf4j.model.ValueFactory import org.eclipse.rdf4j.model.vocabulary.XSD -import org.eclipse.rdf4j.repository.Repository -import org.eclipse.rdf4j.repository.RepositoryConnection +import org.eclipse.rdf4j.model.{IRI, Literal, Statement, Value, ValueFactory} +import org.eclipse.rdf4j.repository.{Repository, RepositoryConnection} import org.eclipse.rdf4j.sail.Sail -import org.eclipse.rdf4j.sail.SailConnection -import se.lu.nateko.cp.meta.api.CloseableIterator -import se.lu.nateko.cp.meta.api.RdfLens import se.lu.nateko.cp.meta.api.RdfLens.GlobConn +import se.lu.nateko.cp.meta.api.{CloseableIterator, RdfLens} import se.lu.nateko.cp.meta.instanceserver.Rdf4jSailConnection -import java.net.{ URI => JavaUri } +import java.net.URI as JavaUri import java.time.Instant import scala.collection.AbstractIterator -import scala.util.Failure -import scala.util.Success -import scala.util.Try -import scala.util.Using +import scala.util.{Try, Using} diff --git a/src/main/scala/se/lu/nateko/cp/meta/utils/streams/ZipEntryFlow.scala b/src/main/scala/se/lu/nateko/cp/meta/utils/streams/ZipEntryFlow.scala index e7fe3c2de..38711a428 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/utils/streams/ZipEntryFlow.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/utils/streams/ZipEntryFlow.scala @@ -1,26 +1,18 @@ package se.lu.nateko.cp.meta.utils.streams -import java.io.BufferedOutputStream -import java.util.zip.ZipEntry -import java.util.zip.ZipOutputStream +import akka.NotUsed +import akka.stream.scaladsl.{Flow, Source} +import akka.stream.stage.{GraphStage, GraphStageLogic, InHandler, OutHandler} +import akka.stream.{Attributes, FlowShape, Inlet, Outlet} +import akka.util.ByteString +import java.io.BufferedOutputStream +import java.util.zip.{ZipEntry, ZipOutputStream} import scala.collection.mutable.Queue import ZipEntryFlow.ZipEntrySegment import ZipEntryFlow.ZipEntryStart import ZipEntryFlow.ZipFlowElement -import akka.NotUsed -import akka.stream.Attributes -import akka.stream.FlowShape -import akka.stream.Inlet -import akka.stream.Outlet -import akka.stream.scaladsl.Flow -import akka.stream.scaladsl.Source -import akka.stream.stage.GraphStage -import akka.stream.stage.GraphStageLogic -import akka.stream.stage.InHandler -import akka.stream.stage.OutHandler -import akka.util.ByteString object ZipEntryFlow { diff --git a/src/main/scala/se/lu/nateko/cp/meta/views/LandingPageHelpers.scala b/src/main/scala/se/lu/nateko/cp/meta/views/LandingPageHelpers.scala index 7034374e9..0a04abece 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/views/LandingPageHelpers.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/views/LandingPageHelpers.scala @@ -1,24 +1,22 @@ package se.lu.nateko.cp.meta.views -import se.lu.nateko.cp.meta.core.data.JsonSupport.given -import se.lu.nateko.cp.meta.core.data.* -import se.lu.nateko.cp.meta.services.CpmetaVocab -import se.lu.nateko.cp.meta.services.CpVocab -import spray.json.* +import org.commonmark.ext.autolink.AutolinkExtension import org.commonmark.node.* import org.commonmark.parser.Parser import org.commonmark.renderer.html.HtmlRenderer -import org.commonmark.ext.autolink.AutolinkExtension +import se.lu.nateko.cp.doi.meta.Person as DoiMetaPerson +import se.lu.nateko.cp.meta.core.crypto.Sha256Sum +import se.lu.nateko.cp.meta.core.data.* +import se.lu.nateko.cp.meta.core.data.JsonSupport.given +import se.lu.nateko.cp.meta.services.{CpVocab, CpmetaVocab} +import se.lu.nateko.cp.meta.utils.rdf4j.=== +import se.lu.nateko.cp.meta.utils.urlEncode +import spray.json.* import java.net.URI -import java.time.Instant -import java.time.ZoneId import java.time.format.DateTimeFormatter +import java.time.{Instant, ZoneId} import scala.jdk.CollectionConverters.IterableHasAsJava -import se.lu.nateko.cp.doi.meta.{Person => DoiMetaPerson} -import se.lu.nateko.cp.meta.core.crypto.Sha256Sum -import se.lu.nateko.cp.meta.utils.urlEncode -import se.lu.nateko.cp.meta.utils.rdf4j.=== object LandingPageHelpers: diff --git a/src/main/scala/se/lu/nateko/cp/meta/views/ResourceViewInfo.scala b/src/main/scala/se/lu/nateko/cp/meta/views/ResourceViewInfo.scala index 5933f6669..25ea6d249 100644 --- a/src/main/scala/se/lu/nateko/cp/meta/views/ResourceViewInfo.scala +++ b/src/main/scala/se/lu/nateko/cp/meta/views/ResourceViewInfo.scala @@ -1,6 +1,7 @@ package se.lu.nateko.cp.meta.views import se.lu.nateko.cp.meta.core.data.UriResource + import ResourceViewInfo.PropValue case class ResourceViewInfo( diff --git a/src/main/twirl/views/CollectionLandingPage.scala.html b/src/main/twirl/views/CollectionLandingPage.scala.html index a5bf65bbe..df23e476c 100644 --- a/src/main/twirl/views/CollectionLandingPage.scala.html +++ b/src/main/twirl/views/CollectionLandingPage.scala.html @@ -2,8 +2,6 @@ @import se.lu.nateko.cp.meta.core.data.EnvriConfig @import se.lu.nateko.cp.meta.core.HandleProxiesConfig @import se.lu.nateko.cp.meta.views.LandingPageExtras -@import se.lu.nateko.cp.meta.views.LandingPageHelpers.getDoiTitle -@import se.lu.nateko.cp.doi.meta.Title @import se.lu.nateko.cp.meta.services.metaexport.SchemaOrg @import landpagesnips._ @import eu.icoscp.envri.Envri diff --git a/src/main/twirl/views/DataLandingPage.scala.html b/src/main/twirl/views/DataLandingPage.scala.html index e870ac028..937cec750 100644 --- a/src/main/twirl/views/DataLandingPage.scala.html +++ b/src/main/twirl/views/DataLandingPage.scala.html @@ -1,4 +1,3 @@ -@import java.net.URI @import java.time.Instant @import se.lu.nateko.cp.meta.core.data.* @import se.lu.nateko.cp.meta.core.HandleProxiesConfig @@ -419,4 +418,4 @@

Technical information

@instrumentDeploymentsPresent = @{ varMetas.exists(_.exists(_.instrumentDeployments.isDefined)) -} \ No newline at end of file +} diff --git a/src/main/twirl/views/landpagesnips/zipContents.scala.html b/src/main/twirl/views/landpagesnips/zipContents.scala.html index b888e60ca..ae6fc8736 100644 --- a/src/main/twirl/views/landpagesnips/zipContents.scala.html +++ b/src/main/twirl/views/landpagesnips/zipContents.scala.html @@ -1,5 +1,4 @@ @import se.lu.nateko.cp.meta.core.data._ -@import se.lu.nateko.cp.meta.utils.* @import java.time.Instant @(dobj: StaticObject)(implicit conf: EnvriConfig) @@ -82,4 +81,4 @@ @viewMessage = @{"View contents"} -@hideMessage = @{"Hide contents"} \ No newline at end of file +@hideMessage = @{"Hide contents"} diff --git a/src/test/scala/se/lu/nateko/cp/meta/KmlGeoJsonWorkbench.scala b/src/test/scala/se/lu/nateko/cp/meta/KmlGeoJsonWorkbench.scala index 2d252876f..551581379 100644 --- a/src/test/scala/se/lu/nateko/cp/meta/KmlGeoJsonWorkbench.scala +++ b/src/test/scala/se/lu/nateko/cp/meta/KmlGeoJsonWorkbench.scala @@ -1,18 +1,13 @@ package se.lu.nateko.cp.meta -import se.lu.nateko.cp.meta.core.data.{Polygon => GeoPolygon, Position, Circle} -import com.scalakml.io.{KmzFileReader, KmlPrintWriter} +import com.scalakml.io.KmzFileReader import com.scalakml.kml.* -import xml.PrettyPrinter -import se.lu.nateko.cp.meta.core.data.GeoFeature -import spray.json.JsObject -import java.io.File -import spray.json.{JsNull, JsValue} -import se.lu.nateko.cp.meta.core.data.GeoJson -import se.lu.nateko.cp.meta.core.data.FeatureCollection +import se.lu.nateko.cp.meta.core.data.{Circle, FeatureCollection, GeoFeature, GeoJson, Polygon as GeoPolygon, Position} import se.lu.nateko.cp.meta.core.etcupload.StationId -import java.net.URI -import java.net.URL +import spray.json.{JsNull, JsValue} + +import java.io.File +import java.net.{URI, URL} import scala.io.Source object KmlGeoJsonWorkbench { diff --git a/src/test/scala/se/lu/nateko/cp/meta/test/GcpUploadMetaGenerator.scala b/src/test/scala/se/lu/nateko/cp/meta/test/GcpUploadMetaGenerator.scala index f6add00c2..bd9c885f5 100644 --- a/src/test/scala/se/lu/nateko/cp/meta/test/GcpUploadMetaGenerator.scala +++ b/src/test/scala/se/lu/nateko/cp/meta/test/GcpUploadMetaGenerator.scala @@ -1,19 +1,15 @@ package se.lu.nateko.cp.meta.test -import java.io.File -import java.io.FileOutputStream -import java.nio.charset.Charset - -import scala.io.Source - +import eu.icoscp.envri.Envri +import org.eclipse.rdf4j.model.ValueFactory import org.eclipse.rdf4j.sail.memory.model.MemValueFactory - -import se.lu.nateko.cp.meta.CpmetaJsonProtocol -import se.lu.nateko.cp.meta.DataObjectDto import se.lu.nateko.cp.meta.services.CpVocab import se.lu.nateko.cp.meta.utils.rdf4j.toJava -import eu.icoscp.envri.Envri -import org.eclipse.rdf4j.model.ValueFactory +import se.lu.nateko.cp.meta.{CpmetaJsonProtocol, DataObjectDto} + +import java.io.{File, FileOutputStream} +import java.nio.charset.Charset +import scala.io.Source /** * One-off code to produce upload metadata packages for GCP dataset publication diff --git a/src/test/scala/se/lu/nateko/cp/meta/test/InstOntoTests.scala b/src/test/scala/se/lu/nateko/cp/meta/test/InstOntoTests.scala index fec357027..eb4d48f96 100644 --- a/src/test/scala/se/lu/nateko/cp/meta/test/InstOntoTests.scala +++ b/src/test/scala/se/lu/nateko/cp/meta/test/InstOntoTests.scala @@ -1,9 +1,9 @@ package se.lu.nateko.cp.meta.test import org.scalatest.funspec.AnyFunSpec +import se.lu.nateko.cp.meta.onto.{InstOnto, Onto} + import java.net.URI -import se.lu.nateko.cp.meta.onto.Onto -import se.lu.nateko.cp.meta.onto.InstOnto class InstOntoTests extends AnyFunSpec{ diff --git a/src/test/scala/se/lu/nateko/cp/meta/test/Playground.scala b/src/test/scala/se/lu/nateko/cp/meta/test/Playground.scala index a45b7fa57..9a229dfab 100644 --- a/src/test/scala/se/lu/nateko/cp/meta/test/Playground.scala +++ b/src/test/scala/se/lu/nateko/cp/meta/test/Playground.scala @@ -1,24 +1,21 @@ package se.lu.nateko.cp.meta.test -import java.net.URI - -import scala.concurrent.Await -import scala.concurrent.Future -import scala.concurrent.duration.Duration - import akka.Done import akka.actor.ActorSystem import akka.stream.Materializer +import eu.icoscp.envri.Envri +import se.lu.nateko.cp.cpauth.core.EmailSender +import se.lu.nateko.cp.meta.ConfigLoader import se.lu.nateko.cp.meta.api.HandleNetClient import se.lu.nateko.cp.meta.core.sparql.BoundUri -import se.lu.nateko.cp.meta.test.utils.SparqlClient -import se.lu.nateko.cp.meta.services.citation.CitationClientImpl import se.lu.nateko.cp.meta.ingestion.badm.BadmEntry -import se.lu.nateko.cp.meta.metaflow.icos.EtcMetaSource -import eu.icoscp.envri.Envri +import se.lu.nateko.cp.meta.services.citation.CitationClientImpl +import se.lu.nateko.cp.meta.test.utils.SparqlClient + +import java.net.URI import scala.collection.concurrent.TrieMap -import se.lu.nateko.cp.meta.ConfigLoader -import se.lu.nateko.cp.cpauth.core.EmailSender +import scala.concurrent.duration.Duration +import scala.concurrent.{Await, Future} object Playground { diff --git a/src/test/scala/se/lu/nateko/cp/meta/test/TestConfig.scala b/src/test/scala/se/lu/nateko/cp/meta/test/TestConfig.scala index 5d0ae1a72..7f5f5a684 100644 --- a/src/test/scala/se/lu/nateko/cp/meta/test/TestConfig.scala +++ b/src/test/scala/se/lu/nateko/cp/meta/test/TestConfig.scala @@ -1,19 +1,16 @@ package se.lu.nateko.cp.meta.test +import eu.icoscp.envri.Envri +import org.eclipse.rdf4j.rio.RDFFormat import org.semanticweb.owlapi.apibinding.OWLManager -import se.lu.nateko.cp.meta.utils.owlapi.* -import se.lu.nateko.cp.meta.instanceserver.InstanceServer -import se.lu.nateko.cp.meta.instanceserver.Rdf4jInstanceServer -import se.lu.nateko.cp.meta.utils.rdf4j.Loading -import org.semanticweb.owlapi.model.PrefixManager +import org.semanticweb.owlapi.model.{OWLClass, OWLDataProperty, OWLObjectProperty, PrefixManager} import org.semanticweb.owlapi.util.DefaultPrefixManager -import org.semanticweb.owlapi.model.OWLClass -import org.semanticweb.owlapi.model.OWLDataProperty -import org.semanticweb.owlapi.model.OWLObjectProperty -import org.eclipse.rdf4j.rio.RDFFormat import se.lu.nateko.cp.meta.core.data.{EnvriConfig, EnvriConfigs} +import se.lu.nateko.cp.meta.instanceserver.{InstanceServer, Rdf4jInstanceServer} +import se.lu.nateko.cp.meta.utils.owlapi.* +import se.lu.nateko.cp.meta.utils.rdf4j.Loading + import java.net.URI -import eu.icoscp.envri.Envri object TestConfig { val manager = OWLManager.createOWLOntologyManager diff --git a/src/test/scala/se/lu/nateko/cp/meta/test/api/AkkaTests.scala b/src/test/scala/se/lu/nateko/cp/meta/test/api/AkkaTests.scala index 34fdfe03f..a3d876d67 100644 --- a/src/test/scala/se/lu/nateko/cp/meta/test/api/AkkaTests.scala +++ b/src/test/scala/se/lu/nateko/cp/meta/test/api/AkkaTests.scala @@ -1,8 +1,9 @@ package se.lu.nateko.cp.meta.test.api -import org.scalatest.funsuite.AsyncFunSuite -import org.scalatest.BeforeAndAfterAll import akka.actor.ActorSystem +import org.scalatest.BeforeAndAfterAll +import org.scalatest.funsuite.AsyncFunSuite + import scala.concurrent.Future class AkkaTests extends AsyncFunSuite with BeforeAndAfterAll: diff --git a/src/test/scala/se/lu/nateko/cp/meta/test/api/CustomVocabTests.scala b/src/test/scala/se/lu/nateko/cp/meta/test/api/CustomVocabTests.scala index 17cfbd77d..c4cd96253 100644 --- a/src/test/scala/se/lu/nateko/cp/meta/test/api/CustomVocabTests.scala +++ b/src/test/scala/se/lu/nateko/cp/meta/test/api/CustomVocabTests.scala @@ -1,9 +1,9 @@ package se.lu.nateko.cp.meta.test.api -import org.scalatest.funspec.AnyFunSpec -import se.lu.nateko.cp.meta.api.{CustomVocab, UriId} import org.eclipse.rdf4j.model.ValueFactory import org.eclipse.rdf4j.sail.memory.model.MemValueFactory +import org.scalatest.funspec.AnyFunSpec +import se.lu.nateko.cp.meta.api.{CustomVocab, UriId} class CustomVocabTests extends AnyFunSpec{ diff --git a/src/test/scala/se/lu/nateko/cp/meta/test/api/HandleNetClientTests.scala b/src/test/scala/se/lu/nateko/cp/meta/test/api/HandleNetClientTests.scala index 5ebe22fbe..77585a5cd 100644 --- a/src/test/scala/se/lu/nateko/cp/meta/test/api/HandleNetClientTests.scala +++ b/src/test/scala/se/lu/nateko/cp/meta/test/api/HandleNetClientTests.scala @@ -3,8 +3,8 @@ package se.lu.nateko.cp.meta.test.api import org.scalatest.funspec.AnyFunSpec import se.lu.nateko.cp.meta.api.HandleNetClient import se.lu.nateko.cp.meta.core.crypto.Sha256Sum.formatByte -import java.nio.file.Paths -import java.nio.file.Files + +import java.nio.file.{Files, Paths} class HandleNetClientTests extends AnyFunSpec{ diff --git a/src/test/scala/se/lu/nateko/cp/meta/test/icos/EtcMetaSourceTests.scala b/src/test/scala/se/lu/nateko/cp/meta/test/icos/EtcMetaSourceTests.scala index 873e1cb8b..d6cdb7af3 100644 --- a/src/test/scala/se/lu/nateko/cp/meta/test/icos/EtcMetaSourceTests.scala +++ b/src/test/scala/se/lu/nateko/cp/meta/test/icos/EtcMetaSourceTests.scala @@ -1,11 +1,11 @@ package se.lu.nateko.cp.meta.test.icos import org.scalatest.funspec.AnyFunSpec -import se.lu.nateko.cp.meta.metaflow.InstrumentDeployment -import se.lu.nateko.cp.meta.core.data.Position import se.lu.nateko.cp.meta.api.UriId +import se.lu.nateko.cp.meta.core.data.{Position, PositionUtil} +import se.lu.nateko.cp.meta.metaflow.InstrumentDeployment + import java.time.Instant -import se.lu.nateko.cp.meta.core.data.PositionUtil class EtcMetaSourceTests extends AnyFunSpec{ diff --git a/src/test/scala/se/lu/nateko/cp/meta/test/icos/RdfDiffCalcTests.scala b/src/test/scala/se/lu/nateko/cp/meta/test/icos/RdfDiffCalcTests.scala index af7cd317d..dbf844fef 100644 --- a/src/test/scala/se/lu/nateko/cp/meta/test/icos/RdfDiffCalcTests.scala +++ b/src/test/scala/se/lu/nateko/cp/meta/test/icos/RdfDiffCalcTests.scala @@ -1,25 +1,21 @@ package se.lu.nateko.cp.meta.test.icos -import java.net.URI - -import org.eclipse.rdf4j.model.Statement +import eu.icoscp.envri.Envri +import org.eclipse.rdf4j.model.{Statement, ValueFactory} +import org.scalatest.GivenWhenThen import org.scalatest.funspec.AnyFunSpec - -import se.lu.nateko.cp.meta.api.UriId +import se.lu.nateko.cp.meta.api.{RdfLens, UriId} import se.lu.nateko.cp.meta.core.data.* -import se.lu.nateko.cp.meta.instanceserver.Rdf4jInstanceServer -import se.lu.nateko.cp.meta.services.CpVocab -import se.lu.nateko.cp.meta.services.CpmetaVocab +import se.lu.nateko.cp.meta.instanceserver.{InstanceServer, Rdf4jInstanceServer} import se.lu.nateko.cp.meta.metaflow.* import se.lu.nateko.cp.meta.metaflow.icos.{ATC, AtcConf} +import se.lu.nateko.cp.meta.services.upload.DobjMetaReader +import se.lu.nateko.cp.meta.services.{CpVocab, CpmetaVocab} import se.lu.nateko.cp.meta.utils.rdf4j.{Loading, toRdf} -import org.scalatest.GivenWhenThen -import se.lu.nateko.cp.meta.instanceserver.InstanceServer + +import java.net.URI + import RdfDiffCalcTests.* -import se.lu.nateko.cp.meta.services.upload.DobjMetaReader -import eu.icoscp.envri.Envri -import se.lu.nateko.cp.meta.api.RdfLens -import org.eclipse.rdf4j.model.ValueFactory class RdfDiffCalcTests extends AnyFunSpec with GivenWhenThen: diff --git a/src/test/scala/se/lu/nateko/cp/meta/test/icos/RolesDiffCalcTests.scala b/src/test/scala/se/lu/nateko/cp/meta/test/icos/RolesDiffCalcTests.scala index a56580150..fa0e82690 100644 --- a/src/test/scala/se/lu/nateko/cp/meta/test/icos/RolesDiffCalcTests.scala +++ b/src/test/scala/se/lu/nateko/cp/meta/test/icos/RolesDiffCalcTests.scala @@ -1,10 +1,10 @@ package se.lu.nateko.cp.meta.test.icos -import java.time.Instant import org.scalatest.funspec.AnyFunSpec import se.lu.nateko.cp.meta.api.UriId -import se.lu.nateko.cp.meta.metaflow.Membership -import se.lu.nateko.cp.meta.metaflow.RolesDiffCalc +import se.lu.nateko.cp.meta.metaflow.{Membership, RolesDiffCalc} + +import java.time.Instant class RolesDiffCalcTests extends AnyFunSpec{ diff --git a/src/test/scala/se/lu/nateko/cp/meta/test/ingestion/badm/BadmTestHelper.scala b/src/test/scala/se/lu/nateko/cp/meta/test/ingestion/badm/BadmTestHelper.scala index 8282d6715..4ab52e215 100644 --- a/src/test/scala/se/lu/nateko/cp/meta/test/ingestion/badm/BadmTestHelper.scala +++ b/src/test/scala/se/lu/nateko/cp/meta/test/ingestion/badm/BadmTestHelper.scala @@ -1,7 +1,8 @@ package se.lu.nateko.cp.meta.test.ingestion.badm -import se.lu.nateko.cp.meta.ingestion.badm.BadmSchema import org.apache.commons.io.IOUtils +import se.lu.nateko.cp.meta.ingestion.badm.BadmSchema + import java.nio.charset.StandardCharsets object BadmTestHelper { diff --git a/src/test/scala/se/lu/nateko/cp/meta/test/ingestion/badm/ParserTests.scala b/src/test/scala/se/lu/nateko/cp/meta/test/ingestion/badm/ParserTests.scala index f31052830..c3d71c999 100644 --- a/src/test/scala/se/lu/nateko/cp/meta/test/ingestion/badm/ParserTests.scala +++ b/src/test/scala/se/lu/nateko/cp/meta/test/ingestion/badm/ParserTests.scala @@ -1,13 +1,11 @@ package se.lu.nateko.cp.meta.test.ingestion.badm -import java.time.LocalDate -import java.time.LocalDateTime - import org.scalatest.funspec.AnyFunSpec - import se.lu.nateko.cp.meta.ingestion.badm.* import se.lu.nateko.cp.meta.ingestion.badm.Parser.* +import java.time.{LocalDate, LocalDateTime} + class ParserTests extends AnyFunSpec{ describe("toBadmDate"){ diff --git a/src/test/scala/se/lu/nateko/cp/meta/test/instanceserver/InstanceServerTests.scala b/src/test/scala/se/lu/nateko/cp/meta/test/instanceserver/InstanceServerTests.scala index 8517fd877..947254ba9 100644 --- a/src/test/scala/se/lu/nateko/cp/meta/test/instanceserver/InstanceServerTests.scala +++ b/src/test/scala/se/lu/nateko/cp/meta/test/instanceserver/InstanceServerTests.scala @@ -1,15 +1,13 @@ package se.lu.nateko.cp.meta.test.instanceserver -import org.scalatest.funspec.AnyFunSpec -import se.lu.nateko.cp.meta.persistence.InMemoryRdfLog -import se.lu.nateko.cp.meta.persistence.RdfUpdateLogIngester import org.eclipse.rdf4j.model.impl.SimpleValueFactory -import se.lu.nateko.cp.meta.instanceserver.Rdf4jInstanceServer -import se.lu.nateko.cp.meta.instanceserver.LoggingInstanceServer -import se.lu.nateko.cp.meta.utils.rdf4j.* +import org.eclipse.rdf4j.model.vocabulary.RDF import org.eclipse.rdf4j.repository.sail.SailRepository import org.eclipse.rdf4j.sail.memory.MemoryStore -import org.eclipse.rdf4j.model.vocabulary.RDF +import org.scalatest.funspec.AnyFunSpec +import se.lu.nateko.cp.meta.instanceserver.{LoggingInstanceServer, Rdf4jInstanceServer} +import se.lu.nateko.cp.meta.persistence.{InMemoryRdfLog, RdfUpdateLogIngester} +import se.lu.nateko.cp.meta.utils.rdf4j.* class InstanceServerTests extends AnyFunSpec{ diff --git a/src/test/scala/se/lu/nateko/cp/meta/test/metaflow/cities/MidLowCostMetaSourceTest.scala b/src/test/scala/se/lu/nateko/cp/meta/test/metaflow/cities/MidLowCostMetaSourceTest.scala index 626f9265c..33f439a4c 100644 --- a/src/test/scala/se/lu/nateko/cp/meta/test/metaflow/cities/MidLowCostMetaSourceTest.scala +++ b/src/test/scala/se/lu/nateko/cp/meta/test/metaflow/cities/MidLowCostMetaSourceTest.scala @@ -1,10 +1,11 @@ package se.lu.nateko.cp.meta.test.metaflow.cities import org.scalatest.funspec.AnyFunSpec -import java.nio.file.Paths +import se.lu.nateko.cp.meta.core.data.CountryCode import se.lu.nateko.cp.meta.metaflow.cities.MidLowCostMetaSource.parseStation import se.lu.nateko.cp.meta.metaflow.icos.AtcMetaSource.parseFromCsv -import se.lu.nateko.cp.meta.core.data.CountryCode + +import java.nio.file.Paths class MidLowCostMetaSourceTest extends AnyFunSpec: diff --git a/src/test/scala/se/lu/nateko/cp/meta/test/persistence/RdfUpdateLogIngesterTest.scala b/src/test/scala/se/lu/nateko/cp/meta/test/persistence/RdfUpdateLogIngesterTest.scala index 24a07d468..5bfb895f3 100644 --- a/src/test/scala/se/lu/nateko/cp/meta/test/persistence/RdfUpdateLogIngesterTest.scala +++ b/src/test/scala/se/lu/nateko/cp/meta/test/persistence/RdfUpdateLogIngesterTest.scala @@ -1,13 +1,12 @@ package se.lu.nateko.cp.meta.test.persistence -import org.scalatest.funspec.AnyFunSpec -import org.eclipse.rdf4j.model.impl.SimpleValueFactory -import org.eclipse.rdf4j.model.vocabulary.RDF -import org.eclipse.rdf4j.model.vocabulary.OWL -import se.lu.nateko.cp.meta.persistence.RdfUpdateLogIngester -import se.lu.nateko.cp.meta.instanceserver.RdfUpdate import org.eclipse.rdf4j.common.iteration.Iterations +import org.eclipse.rdf4j.model.impl.SimpleValueFactory +import org.eclipse.rdf4j.model.vocabulary.{OWL, RDF} +import org.scalatest.funspec.AnyFunSpec import se.lu.nateko.cp.meta.api.CloseableIterator +import se.lu.nateko.cp.meta.instanceserver.RdfUpdate +import se.lu.nateko.cp.meta.persistence.RdfUpdateLogIngester class RdfUpdateLogIngesterTest extends AnyFunSpec{ diff --git a/src/test/scala/se/lu/nateko/cp/meta/test/persistence/postgres/Manual.scala b/src/test/scala/se/lu/nateko/cp/meta/test/persistence/postgres/Manual.scala index a11f320d0..5e7521908 100644 --- a/src/test/scala/se/lu/nateko/cp/meta/test/persistence/postgres/Manual.scala +++ b/src/test/scala/se/lu/nateko/cp/meta/test/persistence/postgres/Manual.scala @@ -1,15 +1,10 @@ package se.lu.nateko.cp.meta.test.persistence.postgres - -import se.lu.nateko.cp.meta.persistence.postgres.PostgresRdfLog import org.eclipse.rdf4j.model.impl.SimpleValueFactory +import se.lu.nateko.cp.meta.ConfigLoader +import se.lu.nateko.cp.meta.instanceserver.{InstanceServer, LoggingInstanceServer, Rdf4jInstanceServer, RdfUpdate} +import se.lu.nateko.cp.meta.persistence.RdfUpdateLogIngester import se.lu.nateko.cp.meta.persistence.postgres.* -import se.lu.nateko.cp.meta.instanceserver.RdfUpdate -import se.lu.nateko.cp.meta.instanceserver.InstanceServer -import se.lu.nateko.cp.meta.instanceserver.LoggingInstanceServer import se.lu.nateko.cp.meta.test.TestConfig -import se.lu.nateko.cp.meta.persistence.RdfUpdateLogIngester -import se.lu.nateko.cp.meta.instanceserver.Rdf4jInstanceServer -import se.lu.nateko.cp.meta.ConfigLoader object Manual { diff --git a/src/test/scala/se/lu/nateko/cp/meta/test/reasoner/HermitBasedReasonerTests.scala b/src/test/scala/se/lu/nateko/cp/meta/test/reasoner/HermitBasedReasonerTests.scala index 0fe4b188d..ab20c0f25 100644 --- a/src/test/scala/se/lu/nateko/cp/meta/test/reasoner/HermitBasedReasonerTests.scala +++ b/src/test/scala/se/lu/nateko/cp/meta/test/reasoner/HermitBasedReasonerTests.scala @@ -4,6 +4,7 @@ import org.scalatest.funspec.AnyFunSpec import se.lu.nateko.cp.meta.onto.reasoner.HermitBasedReasoner import se.lu.nateko.cp.meta.test.TestConfig import se.lu.nateko.cp.meta.utils.owlapi.* + import java.net.URI class HermitBasedReasonerTests extends AnyFunSpec{ diff --git a/src/test/scala/se/lu/nateko/cp/meta/test/routes/AlternativePathRouteTest.scala b/src/test/scala/se/lu/nateko/cp/meta/test/routes/AlternativePathRouteTest.scala index d765a94cf..b6e30e591 100644 --- a/src/test/scala/se/lu/nateko/cp/meta/test/routes/AlternativePathRouteTest.scala +++ b/src/test/scala/se/lu/nateko/cp/meta/test/routes/AlternativePathRouteTest.scala @@ -1,9 +1,9 @@ package se.lu.nateko.cp.meta.test.routes -import org.scalatest.funspec.AnyFunSpec +import akka.http.scaladsl.model.StatusCodes import akka.http.scaladsl.server.Directives.* import akka.http.scaladsl.testkit.ScalatestRouteTest -import akka.http.scaladsl.model.StatusCodes +import org.scalatest.funspec.AnyFunSpec class AlternativePathRouteTest extends AnyFunSpec with ScalatestRouteTest{ diff --git a/src/test/scala/se/lu/nateko/cp/meta/test/services/sparql/SparqlFailureHandlerTest.scala b/src/test/scala/se/lu/nateko/cp/meta/test/services/sparql/SparqlFailureHandlerTest.scala index ebc0aa5c7..c1c2dda7c 100644 --- a/src/test/scala/se/lu/nateko/cp/meta/test/services/sparql/SparqlFailureHandlerTest.scala +++ b/src/test/scala/se/lu/nateko/cp/meta/test/services/sparql/SparqlFailureHandlerTest.scala @@ -2,15 +2,9 @@ package se.lu.nateko.cp.meta.test.services.sparql import akka.NotUsed 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.StatusCode -import akka.http.scaladsl.model.StatusCodes +import akka.http.scaladsl.model.{ContentTypes, HttpEntity, HttpResponse, StatusCode, StatusCodes} import akka.stream.Materializer -import akka.stream.scaladsl.Keep -import akka.stream.scaladsl.Sink -import akka.stream.scaladsl.Source +import akka.stream.scaladsl.{Keep, Sink, Source} import akka.util.ByteString import org.scalatest.BeforeAndAfterAll import org.scalatest.funspec.AsyncFunSpec @@ -18,8 +12,6 @@ import se.lu.nateko.cp.meta.routes.SparqlRoute import java.util.concurrent.CancellationException import scala.concurrent.Future -import scala.concurrent.Promise -import scala.concurrent.duration.DurationInt class SparqlFailureHandlerTest extends AsyncFunSpec with BeforeAndAfterAll{ diff --git a/src/test/scala/se/lu/nateko/cp/meta/test/services/sparql/SparqlRouteTests.scala b/src/test/scala/se/lu/nateko/cp/meta/test/services/sparql/SparqlRouteTests.scala index 6fb565702..6515f1d4f 100644 --- a/src/test/scala/se/lu/nateko/cp/meta/test/services/sparql/SparqlRouteTests.scala +++ b/src/test/scala/se/lu/nateko/cp/meta/test/services/sparql/SparqlRouteTests.scala @@ -2,31 +2,28 @@ package se.lu.nateko.cp.meta.test.services.sparql import se.lu.nateko.cp.meta.test.tags.SlowRoute import akka.actor.ActorSystem +import akka.event.Logging import akka.http.scaladsl.marshalling.ToResponseMarshaller -import akka.http.scaladsl.model.HttpHeader -import akka.http.scaladsl.model.StatusCodes -import akka.http.scaladsl.model.headers.CacheDirectives.* import akka.http.scaladsl.model.headers.* +import akka.http.scaladsl.model.headers.CacheDirectives.* +import akka.http.scaladsl.model.{HttpHeader, StatusCodes} import akka.http.scaladsl.server.Route -import akka.http.scaladsl.testkit.RouteTestTimeout -import akka.http.scaladsl.testkit.ScalatestRouteTest +import akka.http.scaladsl.testkit.{RouteTestTimeout, ScalatestRouteTest} import akka.pattern.after import eu.icoscp.envri.Envri import org.scalatest.compatible.Assertion import org.scalatest.funspec.AsyncFunSpec import se.lu.nateko.cp.meta.SparqlServerConfig import se.lu.nateko.cp.meta.api.SparqlQuery -import se.lu.nateko.cp.meta.core.data.EnvriConfig -import se.lu.nateko.cp.meta.core.data.EnvriConfigs +import se.lu.nateko.cp.meta.core.data.{EnvriConfig, EnvriConfigs} import se.lu.nateko.cp.meta.routes.SparqlRoute import se.lu.nateko.cp.meta.services.sparql.Rdf4jSparqlServer +import se.lu.nateko.cp.meta.test.services.sparql.regression.TestDb import java.net.URI import scala.concurrent.Future import concurrent.duration.DurationInt -import se.lu.nateko.cp.meta.test.services.sparql.regression.TestDb -import akka.event.Logging @tags.DbTest class SparqlRouteTests extends AsyncFunSpec with ScalatestRouteTest: diff --git a/src/test/scala/se/lu/nateko/cp/meta/test/services/sparql/SparqlTests.scala b/src/test/scala/se/lu/nateko/cp/meta/test/services/sparql/SparqlTests.scala index 466849935..f610bf5c5 100644 --- a/src/test/scala/se/lu/nateko/cp/meta/test/services/sparql/SparqlTests.scala +++ b/src/test/scala/se/lu/nateko/cp/meta/test/services/sparql/SparqlTests.scala @@ -1,14 +1,15 @@ package se.lu.nateko.cp.meta.test.services.sparql -import se.lu.nateko.cp.meta.utils.rdf4j.* -import org.scalatest.funspec.AnyFunSpec import org.eclipse.rdf4j.model.impl.SimpleValueFactory import org.eclipse.rdf4j.repository.sail.SailRepository -import org.eclipse.rdf4j.sail.memory.MemoryStore -import java.io.StringReader import org.eclipse.rdf4j.rio.RDFFormat -import se.lu.nateko.cp.meta.services.Rdf4jSparqlRunner +import org.eclipse.rdf4j.sail.memory.MemoryStore +import org.scalatest.funspec.AnyFunSpec import se.lu.nateko.cp.meta.api.SparqlQuery +import se.lu.nateko.cp.meta.services.Rdf4jSparqlRunner +import se.lu.nateko.cp.meta.utils.rdf4j.* + +import java.io.StringReader class SparqlTests extends AnyFunSpec{ diff --git a/src/test/scala/se/lu/nateko/cp/meta/test/services/sparql/index/GeoIndexTest.scala b/src/test/scala/se/lu/nateko/cp/meta/test/services/sparql/index/GeoIndexTest.scala index de9e7b4ee..bb81d5fb9 100644 --- a/src/test/scala/se/lu/nateko/cp/meta/test/services/sparql/index/GeoIndexTest.scala +++ b/src/test/scala/se/lu/nateko/cp/meta/test/services/sparql/index/GeoIndexTest.scala @@ -1,29 +1,15 @@ package se.lu.nateko.cp.meta.test.services.sparql.index -import com.opencsv.CSVParserBuilder -import com.opencsv.CSVReaderBuilder +import com.opencsv.{CSVParserBuilder, CSVReaderBuilder} import org.locationtech.jts.algorithm.hull.ConcaveHull -import org.locationtech.jts.geom.Coordinate -import org.locationtech.jts.geom.Envelope -import org.locationtech.jts.geom.Geometry -import org.locationtech.jts.geom.GeometryCollection -import org.locationtech.jts.geom.Point +import org.locationtech.jts.geom.{Coordinate, Envelope, Geometry, GeometryCollection, Point} import org.locationtech.jts.io.geojson.GeoJsonReader import org.roaringbitmap.buffer.MutableRoaringBitmap import org.scalatest.funspec.AnyFunSpec import se.lu.nateko.cp.meta.core.crypto.Md5Sum -import se.lu.nateko.cp.meta.metaflow.icos.EtcMetaSource.Vars.stationLon -import se.lu.nateko.cp.meta.services.sparql.magic.DataObjCov -import se.lu.nateko.cp.meta.services.sparql.magic.DenseCluster -import se.lu.nateko.cp.meta.services.sparql.magic.GeoEvent -import se.lu.nateko.cp.meta.services.sparql.magic.GeoIndex -import se.lu.nateko.cp.meta.services.sparql.magic.GeoLookup -import se.lu.nateko.cp.meta.services.sparql.magic.JtsGeoFactory -import se.lu.nateko.cp.meta.services.sparql.magic.SparseCluster +import se.lu.nateko.cp.meta.services.sparql.magic.{DataObjCov, DenseCluster, GeoEvent, GeoIndex, GeoLookup, JtsGeoFactory, SparseCluster} import java.io.FileReader -import scala.collection.mutable.Buffer -import scala.io.Source import scala.jdk.CollectionConverters.IterableHasAsScala import scala.language.dynamics diff --git a/src/test/scala/se/lu/nateko/cp/meta/test/services/sparql/index/LargeScaleDatetimeTest.scala b/src/test/scala/se/lu/nateko/cp/meta/test/services/sparql/index/LargeScaleDatetimeTest.scala index ccf4584cb..ca7fb9472 100644 --- a/src/test/scala/se/lu/nateko/cp/meta/test/services/sparql/index/LargeScaleDatetimeTest.scala +++ b/src/test/scala/se/lu/nateko/cp/meta/test/services/sparql/index/LargeScaleDatetimeTest.scala @@ -1,10 +1,11 @@ package se.lu.nateko.cp.meta.test.services.sparql.index -import java.time.Instant -import scala.io.Source +import org.scalatest.funspec.AnyFunSpec import se.lu.nateko.cp.meta.core.algo.DatetimeHierarchicalBitmap import se.lu.nateko.cp.meta.core.algo.DatetimeHierarchicalBitmap.DateTimeGeo -import org.scalatest.funspec.AnyFunSpec import se.lu.nateko.cp.meta.core.algo.HierarchicalBitmap.* + +import java.time.Instant +import scala.io.Source import scala.jdk.CollectionConverters.IteratorHasAsScala class LargeScaleDatetimeTest extends AnyFunSpec{ diff --git a/src/test/scala/se/lu/nateko/cp/meta/test/services/sparql/index/SerializationTests.scala b/src/test/scala/se/lu/nateko/cp/meta/test/services/sparql/index/SerializationTests.scala index 5df2ab9f3..c506f9e23 100644 --- a/src/test/scala/se/lu/nateko/cp/meta/test/services/sparql/index/SerializationTests.scala +++ b/src/test/scala/se/lu/nateko/cp/meta/test/services/sparql/index/SerializationTests.scala @@ -11,20 +11,11 @@ import org.scalatest.funspec.AsyncFunSpec import se.lu.nateko.cp.meta.core.algo.HierarchicalBitmap.MinFilter import se.lu.nateko.cp.meta.core.crypto.Sha256Sum import se.lu.nateko.cp.meta.services.CpmetaVocab -import se.lu.nateko.cp.meta.services.sparql.index.{ - CategFilter, - ContFilter, - DataObjectFetch, - Station, - SubmissionEnd, - And, - Exists, - SortBy, - FileName -} +import se.lu.nateko.cp.meta.services.sparql.index.{And, CategFilter, ContFilter, DataObjectFetch, Exists, FileName, SortBy, Station, SubmissionEnd} import se.lu.nateko.cp.meta.services.sparql.magic.index.IndexData import se.lu.nateko.cp.meta.services.sparql.magic.{CpIndex, IndexHandler} import se.lu.nateko.cp.meta.utils.rdf4j.Loading + import java.io.{ByteArrayInputStream, ByteArrayOutputStream} import java.time.Instant import scala.concurrent.duration.FiniteDuration diff --git a/src/test/scala/se/lu/nateko/cp/meta/test/services/sparql/index/StringHierarchicalBitmapTests.scala b/src/test/scala/se/lu/nateko/cp/meta/test/services/sparql/index/StringHierarchicalBitmapTests.scala index ba32778ab..6b5a73bb1 100644 --- a/src/test/scala/se/lu/nateko/cp/meta/test/services/sparql/index/StringHierarchicalBitmapTests.scala +++ b/src/test/scala/se/lu/nateko/cp/meta/test/services/sparql/index/StringHierarchicalBitmapTests.scala @@ -1,13 +1,14 @@ package se.lu.nateko.cp.meta.test.services.sparql.index import org.scalatest.funspec.AnyFunSpec +import se.lu.nateko.cp.meta.core.algo.HierarchicalBitmap import se.lu.nateko.cp.meta.services.sparql.index.* + import scala.jdk.CollectionConverters.IteratorHasAsScala +import scala.util.Random -import se.lu.nateko.cp.meta.core.algo.HierarchicalBitmap import HierarchicalBitmap.* -import StringHierarchicalBitmap.{StringOrdering => Ord, StringGeo} -import scala.util.Random +import StringHierarchicalBitmap.{StringOrdering as Ord, StringGeo} class StringHierarchicalBitmapTests extends AnyFunSpec{ diff --git a/src/test/scala/se/lu/nateko/cp/meta/test/services/sparql/magic/fusion/DofPatternFusionTests.scala b/src/test/scala/se/lu/nateko/cp/meta/test/services/sparql/magic/fusion/DofPatternFusionTests.scala index 79cf17261..3da5a063e 100644 --- a/src/test/scala/se/lu/nateko/cp/meta/test/services/sparql/magic/fusion/DofPatternFusionTests.scala +++ b/src/test/scala/se/lu/nateko/cp/meta/test/services/sparql/magic/fusion/DofPatternFusionTests.scala @@ -1,19 +1,16 @@ package se.lu.nateko.cp.meta.test.services.sparql.magic.fusion -import org.scalatest.funspec.AnyFunSpec -import org.scalatest.Tag import org.eclipse.rdf4j.model.IRI -import org.eclipse.rdf4j.sail.memory.model.MemValueFactory +import org.eclipse.rdf4j.query.algebra.{Filter as Rdf4jFilter, FunctionCall, TupleExpr, ValueConstant} import org.eclipse.rdf4j.query.parser.sparql.SPARQLParser -import org.eclipse.rdf4j.query.algebra.{Filter => Rdf4jFilter} -import org.eclipse.rdf4j.query.algebra.FunctionCall -import org.eclipse.rdf4j.query.algebra.TupleExpr -import org.eclipse.rdf4j.query.algebra.ValueConstant - +import org.eclipse.rdf4j.sail.memory.model.MemValueFactory +import org.scalatest.Tag +import org.scalatest.funspec.AnyFunSpec import se.lu.nateko.cp.meta.core.algo.HierarchicalBitmap import se.lu.nateko.cp.meta.services.CpmetaVocab -import se.lu.nateko.cp.meta.services.sparql.magic.fusion.* import se.lu.nateko.cp.meta.services.sparql.index.* +import se.lu.nateko.cp.meta.services.sparql.magic.fusion.* + import HierarchicalBitmap.{EqualsFilter, IntervalFilter} import PatternFinder.* diff --git a/src/test/scala/se/lu/nateko/cp/meta/test/services/sparql/magic/fusion/EarlyDobjInitSearch.scala b/src/test/scala/se/lu/nateko/cp/meta/test/services/sparql/magic/fusion/EarlyDobjInitSearch.scala index ad16bbb74..78f90fa32 100644 --- a/src/test/scala/se/lu/nateko/cp/meta/test/services/sparql/magic/fusion/EarlyDobjInitSearch.scala +++ b/src/test/scala/se/lu/nateko/cp/meta/test/services/sparql/magic/fusion/EarlyDobjInitSearch.scala @@ -1,9 +1,10 @@ package se.lu.nateko.cp.meta.services.sparql.magic.fusion import org.eclipse.rdf4j.query.algebra.TupleExpr -import scala.jdk.CollectionConverters.CollectionHasAsScala import se.lu.nateko.cp.meta.services.sparql.index.DobjUri +import scala.jdk.CollectionConverters.CollectionHasAsScala + import PatternFinder.* object EarlyDobjInitSearch{ diff --git a/src/test/scala/se/lu/nateko/cp/meta/test/services/sparql/magic/fusion/StatementPatternSearch.scala b/src/test/scala/se/lu/nateko/cp/meta/test/services/sparql/magic/fusion/StatementPatternSearch.scala index 20aa54636..845702b7c 100644 --- a/src/test/scala/se/lu/nateko/cp/meta/test/services/sparql/magic/fusion/StatementPatternSearch.scala +++ b/src/test/scala/se/lu/nateko/cp/meta/test/services/sparql/magic/fusion/StatementPatternSearch.scala @@ -1,7 +1,7 @@ package se.lu.nateko.cp.meta.services.sparql.magic.fusion -import org.eclipse.rdf4j.query.algebra.* import org.eclipse.rdf4j.model.IRI +import org.eclipse.rdf4j.query.algebra.* object StatementPatternSearch{ import PatternFinder.* diff --git a/src/test/scala/se/lu/nateko/cp/meta/test/services/sparql/magic/fusion/StatsFetchPatternSearchTests.scala b/src/test/scala/se/lu/nateko/cp/meta/test/services/sparql/magic/fusion/StatsFetchPatternSearchTests.scala index 82e9692ae..fffc1780b 100644 --- a/src/test/scala/se/lu/nateko/cp/meta/test/services/sparql/magic/fusion/StatsFetchPatternSearchTests.scala +++ b/src/test/scala/se/lu/nateko/cp/meta/test/services/sparql/magic/fusion/StatsFetchPatternSearchTests.scala @@ -1,21 +1,13 @@ package se.lu.nateko.cp.meta.test.services.sparql.magic.fusion -import org.scalatest.funspec.AnyFunSpec - -import org.eclipse.rdf4j.query.parser.sparql.SPARQLParser import org.eclipse.rdf4j.query.algebra.TupleExpr +import org.eclipse.rdf4j.query.parser.sparql.SPARQLParser import org.eclipse.rdf4j.sail.memory.model.MemValueFactory - +import org.scalatest.funspec.AnyFunSpec import se.lu.nateko.cp.meta.services.CpmetaVocab import se.lu.nateko.cp.meta.services.sparql.index.* import se.lu.nateko.cp.meta.services.sparql.magic.fusion.StatsFetchPatternSearch.GroupPattern -import se.lu.nateko.cp.meta.services.sparql.magic.fusion.DofPatternSearch -import se.lu.nateko.cp.meta.services.sparql.magic.fusion.DofPatternFusion -import se.lu.nateko.cp.meta.services.sparql.magic.fusion.DobjStatFusion -import se.lu.nateko.cp.meta.services.sparql.magic.fusion.StatsFetchNode -import se.lu.nateko.cp.meta.services.sparql.magic.fusion.DofPatternRewrite -import se.lu.nateko.cp.meta.services.sparql.magic.fusion.ProjectionDofPattern -import se.lu.nateko.cp.meta.services.sparql.magic.fusion.LeftJoinDofPattern +import se.lu.nateko.cp.meta.services.sparql.magic.fusion.{DobjStatFusion, DofPatternFusion, DofPatternSearch, StatsFetchNode} class StatsFetchPatternSearchTests extends AnyFunSpec{ private val meta = new CpmetaVocab(new MemValueFactory) diff --git a/src/test/scala/se/lu/nateko/cp/meta/test/services/sparql/regression/QueryTests.scala b/src/test/scala/se/lu/nateko/cp/meta/test/services/sparql/regression/QueryTests.scala index d64e6bbb9..e46ce7610 100644 --- a/src/test/scala/se/lu/nateko/cp/meta/test/services/sparql/regression/QueryTests.scala +++ b/src/test/scala/se/lu/nateko/cp/meta/test/services/sparql/regression/QueryTests.scala @@ -1,8 +1,7 @@ package se.lu.nateko.cp.meta.test.services.sparql.regression -import org.eclipse.rdf4j.model.Value -import org.eclipse.rdf4j.model.ValueFactory import org.eclipse.rdf4j.model.vocabulary.XSD +import org.eclipse.rdf4j.model.{Value, ValueFactory} import org.eclipse.rdf4j.query.BindingSet import org.scalatest import org.scalatest.Informer @@ -10,8 +9,7 @@ import org.scalatest.compatible.Assertion import org.scalatest.funspec.AsyncFunSpec import se.lu.nateko.cp.meta.api.CloseableIterator -import scala.concurrent.ExecutionContext -import scala.concurrent.Future +import scala.concurrent.{ExecutionContext, Future} import scala.jdk.CollectionConverters.IterableHasAsScala @tags.DbTest diff --git a/src/test/scala/se/lu/nateko/cp/meta/test/services/sparql/regression/TestDb.scala b/src/test/scala/se/lu/nateko/cp/meta/test/services/sparql/regression/TestDb.scala index 4ec347be5..b01fa5836 100644 --- a/src/test/scala/se/lu/nateko/cp/meta/test/services/sparql/regression/TestDb.scala +++ b/src/test/scala/se/lu/nateko/cp/meta/test/services/sparql/regression/TestDb.scala @@ -1,8 +1,5 @@ package se.lu.nateko.cp.meta.test.services.sparql.regression -import java.nio.file.{Files, Path} -import scala.concurrent.duration.Duration -import scala.concurrent.{Await, ExecutionContext, Future} import akka.Done import akka.actor.ActorSystem import akka.event.{Logging, LoggingAdapter} @@ -21,6 +18,10 @@ import se.lu.nateko.cp.meta.services.sparql.magic.{CpNotifyingSail, GeoIndexProv import se.lu.nateko.cp.meta.utils.async.executeSequentially import se.lu.nateko.cp.meta.{LmdbConfig, RdfStorageConfig} +import java.nio.file.{Files, Path} +import scala.concurrent.duration.Duration +import scala.concurrent.{Await, ExecutionContext, Future} + private val graphIriToFile = Seq( "atmprodcsv", "cpmeta", diff --git a/src/test/scala/se/lu/nateko/cp/meta/test/services/upload/MetadataUpdaterTests.scala b/src/test/scala/se/lu/nateko/cp/meta/test/services/upload/MetadataUpdaterTests.scala index 7437ce710..5c79709e8 100644 --- a/src/test/scala/se/lu/nateko/cp/meta/test/services/upload/MetadataUpdaterTests.scala +++ b/src/test/scala/se/lu/nateko/cp/meta/test/services/upload/MetadataUpdaterTests.scala @@ -1,32 +1,21 @@ package se.lu.nateko.cp.meta.test.services.upload import eu.icoscp.envri.Envri +import org.eclipse.rdf4j.model.vocabulary.RDF +import org.eclipse.rdf4j.model.{IRI, Literal, Value, ValueFactory} import org.eclipse.rdf4j.repository.sail.SailRepository import org.eclipse.rdf4j.sail.memory.MemoryStore +import org.scalatest.GivenWhenThen import org.scalatest.funspec.AsyncFunSpec -import se.lu.nateko.cp.meta.core.data.EnvriConfig -import se.lu.nateko.cp.meta.core.data.EnvriConfigs -import se.lu.nateko.cp.meta.instanceserver.InstanceServer -import se.lu.nateko.cp.meta.instanceserver.Rdf4jInstanceServer -import se.lu.nateko.cp.meta.services.CpVocab -import se.lu.nateko.cp.meta.services.CpmetaVocab -import se.lu.nateko.cp.meta.services.Rdf4jSparqlRunner +import se.lu.nateko.cp.meta.core.crypto.Sha256Sum +import se.lu.nateko.cp.meta.core.data.{EnvriConfig, EnvriConfigs} +import se.lu.nateko.cp.meta.instanceserver.{InstanceServer, Rdf4jInstanceServer} import se.lu.nateko.cp.meta.services.upload.ObjMetadataUpdater +import se.lu.nateko.cp.meta.services.{CpVocab, CpmetaVocab, Rdf4jSparqlRunner} import se.lu.nateko.cp.meta.utils.rdf4j.createStringLiteral import java.net.URI -import org.eclipse.rdf4j.model.ValueFactory -import org.eclipse.rdf4j.model.IRI -import org.eclipse.rdf4j.model.Value -import se.lu.nateko.cp.meta.core.crypto.Sha256Sum -import org.eclipse.rdf4j.model.Literal -import org.eclipse.rdf4j.model.vocabulary.RDF - -import scala.concurrent.ExecutionContext.Implicits.global -import org.scalatest.GivenWhenThen import java.time.Instant -import se.lu.nateko.cp.meta.SubmittersConfig -import se.lu.nateko.cp.meta.DataSubmitterConfig class MetadataUpdaterTests extends AsyncFunSpec with GivenWhenThen: class Setup( diff --git a/src/test/scala/se/lu/nateko/cp/meta/test/services/upload/geocov/ClusteringExample.scala b/src/test/scala/se/lu/nateko/cp/meta/test/services/upload/geocov/ClusteringExample.scala index 0487ed27c..f1671bb40 100644 --- a/src/test/scala/se/lu/nateko/cp/meta/test/services/upload/geocov/ClusteringExample.scala +++ b/src/test/scala/se/lu/nateko/cp/meta/test/services/upload/geocov/ClusteringExample.scala @@ -1,24 +1,12 @@ package se.lu.nateko.cp.meta.test.services.upload.geocov - -import org.locationtech.jts.geom.Coordinate import org.locationtech.jts.geom.Geometry -import org.locationtech.jts.geom.GeometryCollection -import org.locationtech.jts.geom.GeometryFactory -import org.locationtech.jts.geom.Point -import org.locationtech.jts.geom.Polygon import org.locationtech.jts.io.WKTReader -import se.lu.nateko.cp.meta.core.data.FeatureCollection -import se.lu.nateko.cp.meta.core.data.GeoFeature -import se.lu.nateko.cp.meta.core.data.GeoJson -import se.lu.nateko.cp.meta.core.data.PositionUtil.average +import se.lu.nateko.cp.meta.core.data.{FeatureCollection, GeoFeature, GeoJson} import se.lu.nateko.cp.meta.services.sparql.magic.JtsGeoFactory -import se.lu.nateko.cp.meta.services.upload.geocov.GeoCovMerger.mergeIntersecting -import se.lu.nateko.cp.meta.services.upload.geocov.GeoCovMerger.representativeCoverage +import se.lu.nateko.cp.meta.services.upload.geocov.GeoCovMerger.{mergeIntersecting, representativeCoverage} import se.lu.nateko.cp.meta.services.upload.geocov.LabeledJtsGeo -import java.nio.file.Files -import java.nio.file.Paths -import scala.collection.mutable.ArrayBuffer +import java.nio.file.{Files, Paths} object ClusteringExample: diff --git a/src/test/scala/se/lu/nateko/cp/meta/test/services/upload/geocov/GeoCovMergerTests.scala b/src/test/scala/se/lu/nateko/cp/meta/test/services/upload/geocov/GeoCovMergerTests.scala index dfdd9a312..fcd026895 100644 --- a/src/test/scala/se/lu/nateko/cp/meta/test/services/upload/geocov/GeoCovMergerTests.scala +++ b/src/test/scala/se/lu/nateko/cp/meta/test/services/upload/geocov/GeoCovMergerTests.scala @@ -1,13 +1,11 @@ package se.lu.nateko.cp.meta.test.services.upload.geocov -import org.locationtech.jts.geom.Coordinate -import org.locationtech.jts.geom.Geometry +import org.locationtech.jts.geom.{Coordinate, Geometry} import org.locationtech.jts.io.WKTReader import org.scalatest.funspec.AnyFunSpec import se.lu.nateko.cp.meta.services.sparql.magic.JtsGeoFactory import se.lu.nateko.cp.meta.services.upload.geocov.GeoCovMerger.* import se.lu.nateko.cp.meta.services.upload.geocov.LabeledJtsGeo -import se.lu.nateko.cp.meta.test.services.upload.geocov.TestGeometries.* import ClusteringExample.convertStringsToJTS import TestGeometries.* diff --git a/src/test/scala/se/lu/nateko/cp/meta/test/services/upload/geocov/TestGeoFeatures.scala b/src/test/scala/se/lu/nateko/cp/meta/test/services/upload/geocov/TestGeoFeatures.scala index 85017b12c..22b86e456 100644 --- a/src/test/scala/se/lu/nateko/cp/meta/test/services/upload/geocov/TestGeoFeatures.scala +++ b/src/test/scala/se/lu/nateko/cp/meta/test/services/upload/geocov/TestGeoFeatures.scala @@ -3,33 +3,22 @@ package se.lu.nateko.cp.meta.test.services.upload.geocov import akka.actor.ActorSystem import akka.http.scaladsl.Http import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport.* -import akka.http.scaladsl.model.HttpRequest -import akka.http.scaladsl.model.MediaTypes import akka.http.scaladsl.model.headers.Accept +import akka.http.scaladsl.model.{HttpRequest, MediaTypes} import akka.http.scaladsl.unmarshalling.Unmarshal import se.lu.nateko.cp.cpauth.core.JsonSupport.immSeqFormat -import se.lu.nateko.cp.meta.core.data.* -import se.lu.nateko.cp.meta.core.data.DataObject import se.lu.nateko.cp.meta.core.data.JsonSupport.given -import se.lu.nateko.cp.meta.core.data.PlainStaticObject -import se.lu.nateko.cp.meta.core.data.StaticCollection +import se.lu.nateko.cp.meta.core.data.{DataObject, PlainStaticObject, StaticCollection, GeoFeature, GeoTrack, FeatureCollection, Position, Circle, Polygon} import se.lu.nateko.cp.meta.utils.async.traverseFut import spray.json.RootJsonFormat import spray.json.given -import java.io.BufferedReader -import java.io.BufferedWriter -import java.io.InputStreamReader -import java.io.OutputStreamWriter +import java.io.{BufferedReader, BufferedWriter, InputStreamReader, OutputStreamWriter} import java.net.URI import java.nio.charset.StandardCharsets -import java.nio.file.Files -import java.nio.file.Paths -import java.nio.file.StandardOpenOption.CREATE -import java.nio.file.StandardOpenOption.TRUNCATE_EXISTING -import java.nio.file.StandardOpenOption.WRITE -import java.util.zip.GZIPInputStream -import java.util.zip.GZIPOutputStream +import java.nio.file.StandardOpenOption.{CREATE, TRUNCATE_EXISTING, WRITE} +import java.nio.file.{Files, Paths} +import java.util.zip.{GZIPInputStream, GZIPOutputStream} import scala.concurrent.Future import scala.util.Using diff --git a/src/test/scala/se/lu/nateko/cp/meta/test/utils/JavaTaskCancellationTests.scala b/src/test/scala/se/lu/nateko/cp/meta/test/utils/JavaTaskCancellationTests.scala index 0bb83da7b..c501eba23 100644 --- a/src/test/scala/se/lu/nateko/cp/meta/test/utils/JavaTaskCancellationTests.scala +++ b/src/test/scala/se/lu/nateko/cp/meta/test/utils/JavaTaskCancellationTests.scala @@ -1,10 +1,9 @@ package se.lu.nateko.cp.meta.test.utils -import org.scalatest.funsuite.AnyFunSuite -import java.util.concurrent.Callable -import java.util.concurrent.CancellationException -import java.util.concurrent.ScheduledThreadPoolExecutor import org.scalatest.BeforeAndAfterAll +import org.scalatest.funsuite.AnyFunSuite + +import java.util.concurrent.{Callable, CancellationException, ScheduledThreadPoolExecutor} class JavaTaskCancellationTests extends AnyFunSuite with BeforeAndAfterAll{ diff --git a/src/test/scala/se/lu/nateko/cp/meta/test/utils/SparqlClient.scala b/src/test/scala/se/lu/nateko/cp/meta/test/utils/SparqlClient.scala index 9430eaab9..b65978d56 100644 --- a/src/test/scala/se/lu/nateko/cp/meta/test/utils/SparqlClient.scala +++ b/src/test/scala/se/lu/nateko/cp/meta/test/utils/SparqlClient.scala @@ -2,16 +2,16 @@ package se.lu.nateko.cp.meta.test.utils import akka.actor.ActorSystem import akka.http.scaladsl.Http -import akka.http.scaladsl.model.* import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport.* +import akka.http.scaladsl.model.* import akka.http.scaladsl.unmarshalling.Unmarshal import akka.stream.Materializer -import scala.concurrent.Future -import se.lu.nateko.cp.meta.core.sparql.SparqlSelectResult import se.lu.nateko.cp.meta.core.sparql.JsonSupport.given +import se.lu.nateko.cp.meta.core.sparql.SparqlSelectResult + import java.net.URI -import scala.util.Success -import scala.util.Failure +import scala.concurrent.Future +import scala.util.{Failure, Success} class SparqlClient(url: URI)(using system: ActorSystem) { import system.dispatcher diff --git a/src/test/scala/se/lu/nateko/cp/meta/test/utils/UrlEncodeDecodeTests.scala b/src/test/scala/se/lu/nateko/cp/meta/test/utils/UrlEncodeDecodeTests.scala index 2f1709cfa..b0226e7de 100644 --- a/src/test/scala/se/lu/nateko/cp/meta/test/utils/UrlEncodeDecodeTests.scala +++ b/src/test/scala/se/lu/nateko/cp/meta/test/utils/UrlEncodeDecodeTests.scala @@ -1,7 +1,7 @@ package se.lu.nateko.cp.meta.test.utils -import se.lu.nateko.cp.meta.utils.{urlDecode, urlEncode} import org.scalatest.funsuite.AnyFunSuite +import se.lu.nateko.cp.meta.utils.{urlDecode, urlEncode} class UrlEncodeDecodeTests extends AnyFunSuite{ diff --git a/src/test/scala/se/lu/nateko/cp/meta/test/utils/rdf4j/EnrichedUriTests.scala b/src/test/scala/se/lu/nateko/cp/meta/test/utils/rdf4j/EnrichedUriTests.scala index b38ab1cea..356509fb4 100644 --- a/src/test/scala/se/lu/nateko/cp/meta/test/utils/rdf4j/EnrichedUriTests.scala +++ b/src/test/scala/se/lu/nateko/cp/meta/test/utils/rdf4j/EnrichedUriTests.scala @@ -1,10 +1,11 @@ package se.lu.nateko.cp.meta.test.utils.rdf4j +import org.eclipse.rdf4j.model.ValueFactory import org.eclipse.rdf4j.sail.memory.model.MemValueFactory import org.scalatest.funsuite.AnyFunSuite -import java.net.URI import se.lu.nateko.cp.meta.utils.rdf4j.* -import org.eclipse.rdf4j.model.ValueFactory + +import java.net.URI class EnrichedUriTests extends AnyFunSuite { diff --git a/src/test/scala/se/lu/nateko/cp/meta/test/utils/streams/CachedSourceTests.scala b/src/test/scala/se/lu/nateko/cp/meta/test/utils/streams/CachedSourceTests.scala index d9b38b613..aa110230c 100644 --- a/src/test/scala/se/lu/nateko/cp/meta/test/utils/streams/CachedSourceTests.scala +++ b/src/test/scala/se/lu/nateko/cp/meta/test/utils/streams/CachedSourceTests.scala @@ -1,12 +1,11 @@ package se.lu.nateko.cp.meta.test.utils.streams -import org.scalatest.funsuite.AnyFunSuite -import org.scalatest.BeforeAndAfterAll import akka.actor.ActorSystem -import akka.stream.scaladsl.Sink -import akka.stream.scaladsl.Source import akka.stream.OverflowStrategy -import akka.stream.scaladsl.Keep +import akka.stream.scaladsl.{Keep, Sink, Source} +import org.scalatest.BeforeAndAfterAll +import org.scalatest.funsuite.AnyFunSuite + import scala.util.Success class CachedSourceTests extends AnyFunSuite with BeforeAndAfterAll{ diff --git a/src/test/scala/se/lu/nateko/cp/meta/test/utils/streams/ZipEntryFlowTests.scala b/src/test/scala/se/lu/nateko/cp/meta/test/utils/streams/ZipEntryFlowTests.scala index 87acb4f46..a48bf1213 100644 --- a/src/test/scala/se/lu/nateko/cp/meta/test/utils/streams/ZipEntryFlowTests.scala +++ b/src/test/scala/se/lu/nateko/cp/meta/test/utils/streams/ZipEntryFlowTests.scala @@ -1,20 +1,17 @@ package se.lu.nateko.cp.meta.test.utils.streams -import scala.language.postfixOps - -import org.scalatest.BeforeAndAfterAll -import org.scalatest.funsuite.AnyFunSuite - import akka.actor.ActorSystem import akka.stream.Materializer - -import scala.collection.immutable.Iterable +import akka.stream.scaladsl.{Sink, Source} import akka.util.ByteString -import akka.stream.scaladsl.Source +import org.scalatest.BeforeAndAfterAll +import org.scalatest.funsuite.AnyFunSuite import se.lu.nateko.cp.meta.utils.streams.ZipEntryFlow -import akka.stream.scaladsl.Sink + +import scala.collection.immutable.Iterable import scala.concurrent.Await import scala.concurrent.duration.DurationInt +import scala.language.postfixOps class ZipEntryFlowTests extends AnyFunSuite with BeforeAndAfterAll{ diff --git a/src/test/scala/se/lu/nateko/cp/meta/upload/AtcCollMaker.scala b/src/test/scala/se/lu/nateko/cp/meta/upload/AtcCollMaker.scala index 9db8029bd..9f42eb3b0 100644 --- a/src/test/scala/se/lu/nateko/cp/meta/upload/AtcCollMaker.scala +++ b/src/test/scala/se/lu/nateko/cp/meta/upload/AtcCollMaker.scala @@ -1,21 +1,17 @@ package se.lu.nateko.cp.meta.upload +import akka.Done import se.lu.nateko.cp.doi.* import se.lu.nateko.cp.doi.meta.* -import se.lu.nateko.cp.meta.core.data.DataObject -import scala.concurrent.ExecutionContext -import se.lu.nateko.cp.meta.core.sparql.SparqlSelectResult -import java.net.URI -import se.lu.nateko.cp.meta.core.sparql.BoundLiteral -import se.lu.nateko.cp.meta.core.sparql.BoundUri import se.lu.nateko.cp.meta.StaticCollectionDto -import se.lu.nateko.cp.meta.core.data.Station -import se.lu.nateko.cp.meta.core.data.Person import se.lu.nateko.cp.meta.core.crypto.Sha256Sum -import scala.concurrent.Future -import akka.Done -import se.lu.nateko.cp.meta.utils.async.* +import se.lu.nateko.cp.meta.core.data.{DataObject, Person, Station} +import se.lu.nateko.cp.meta.core.sparql.{BoundUri, SparqlSelectResult} import se.lu.nateko.cp.meta.services.upload.UploadService +import se.lu.nateko.cp.meta.utils.async.* + +import java.net.URI +import scala.concurrent.{ExecutionContext, Future} class AtcCollMaker(maker: DoiMaker, uploader: CpUploadClient)(implicit ctxt: ExecutionContext) { import AtcCollMaker.* diff --git a/src/test/scala/se/lu/nateko/cp/meta/upload/CpUploadClient.scala b/src/test/scala/se/lu/nateko/cp/meta/upload/CpUploadClient.scala index 7d6758156..cc30ad1fc 100644 --- a/src/test/scala/se/lu/nateko/cp/meta/upload/CpUploadClient.scala +++ b/src/test/scala/se/lu/nateko/cp/meta/upload/CpUploadClient.scala @@ -1,38 +1,27 @@ package se.lu.nateko.cp.meta.upload -import scala.concurrent.Future -import scala.collection.immutable.Seq -import akka.http.scaladsl.marshalling.Marshal -import akka.http.scaladsl.model.RequestEntity -import akka.http.scaladsl.model.HttpRequest -import akka.http.scaladsl.model.HttpMethods -import akka.http.scaladsl.model.Uri -import akka.http.scaladsl.model.headers.Cookie -import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport.* -import java.nio.file.Path -import se.lu.nateko.cp.meta.core.crypto.Sha256Sum -import akka.http.scaladsl.model.HttpEntity -import akka.http.scaladsl.model.ContentTypes -import akka.stream.scaladsl.FileIO -import akka.stream.scaladsl.Sink -import akka.http.scaladsl.model.headers.Host -import spray.json.RootJsonFormat -import se.lu.nateko.cp.meta.utils.akkahttp.responseToDone -import se.lu.nateko.cp.meta.utils.async.executeSequentially +import akka.Done import akka.actor.ActorSystem import akka.http.scaladsl.Http -import akka.Done +import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport.* +import akka.http.scaladsl.marshalling.Marshal +import akka.http.scaladsl.model.headers.{Accept, Cookie, Host} +import akka.http.scaladsl.model.{ContentTypes, HttpEntity, HttpMethods, HttpRequest, MediaTypes, RequestEntity, Uri} +import akka.http.scaladsl.unmarshalling.Unmarshal import akka.stream.Materializer -import se.lu.nateko.cp.meta.CpmetaJsonProtocol -import se.lu.nateko.cp.meta.UploadDto -import se.lu.nateko.cp.meta.ObjectUploadDto -import se.lu.nateko.cp.meta.StaticCollectionDto +import akka.stream.scaladsl.{FileIO, Sink} +import se.lu.nateko.cp.meta.core.crypto.Sha256Sum +import se.lu.nateko.cp.meta.core.data.DataObject import se.lu.nateko.cp.meta.core.data.JsonSupport.given +import se.lu.nateko.cp.meta.utils.akkahttp.responseToDone +import se.lu.nateko.cp.meta.utils.async.executeSequentially +import se.lu.nateko.cp.meta.{CpmetaJsonProtocol, ObjectUploadDto, StaticCollectionDto, UploadDto} +import spray.json.RootJsonFormat + import java.net.URI -import akka.http.scaladsl.unmarshalling.Unmarshal -import se.lu.nateko.cp.meta.core.data.DataObject -import akka.http.scaladsl.model.headers.Accept -import akka.http.scaladsl.model.MediaTypes +import java.nio.file.Path +import scala.collection.immutable.Seq +import scala.concurrent.Future class CpUploadClient(conf: CpUploadClient.Config)(implicit val system: ActorSystem) extends CpmetaJsonProtocol{ diff --git a/src/test/scala/se/lu/nateko/cp/meta/upload/DigestFlow.scala b/src/test/scala/se/lu/nateko/cp/meta/upload/DigestFlow.scala index 674a83aaf..69a513f9a 100644 --- a/src/test/scala/se/lu/nateko/cp/meta/upload/DigestFlow.scala +++ b/src/test/scala/se/lu/nateko/cp/meta/upload/DigestFlow.scala @@ -1,22 +1,14 @@ package se.lu.nateko.cp.meta.upload -import java.security.MessageDigest -import scala.concurrent.Future -import scala.concurrent.Promise -import scala.util.Success -import akka.stream.Attributes -import akka.stream.FlowShape -import akka.stream.Inlet -import akka.stream.Outlet import akka.stream.scaladsl.Flow -import akka.stream.stage.GraphStageLogic -import akka.stream.stage.GraphStageWithMaterializedValue -import akka.stream.stage.InHandler -import akka.stream.stage.OutHandler +import akka.stream.stage.{GraphStageLogic, GraphStageWithMaterializedValue, InHandler, OutHandler} +import akka.stream.{Attributes, FlowShape, Inlet, Outlet} import akka.util.ByteString -import se.lu.nateko.cp.meta.core.crypto.Md5Sum -import se.lu.nateko.cp.meta.core.crypto.Sha256Sum -import scala.util.Failure +import se.lu.nateko.cp.meta.core.crypto.{Md5Sum, Sha256Sum} + +import java.security.MessageDigest +import scala.concurrent.{Future, Promise} +import scala.util.{Failure, Success} object DigestFlow{ diff --git a/src/test/scala/se/lu/nateko/cp/meta/upload/DoiMaker.scala b/src/test/scala/se/lu/nateko/cp/meta/upload/DoiMaker.scala index 21d9079c0..916013045 100644 --- a/src/test/scala/se/lu/nateko/cp/meta/upload/DoiMaker.scala +++ b/src/test/scala/se/lu/nateko/cp/meta/upload/DoiMaker.scala @@ -3,19 +3,14 @@ package se.lu.nateko.cp.meta.upload import akka.Done import akka.actor.ActorSystem import se.lu.nateko.cp.doi.* -import se.lu.nateko.cp.doi.core.DoiClient -import se.lu.nateko.cp.doi.core.DoiClientConfig -import se.lu.nateko.cp.doi.core.PlainJavaDoiHttp +import se.lu.nateko.cp.doi.core.{DoiClient, DoiClientConfig, DoiMemberConfig, PlainJavaDoiHttp} import se.lu.nateko.cp.doi.meta.* import se.lu.nateko.cp.meta.core.crypto.Sha256Sum import se.lu.nateko.cp.meta.services.CpVocab -import se.lu.nateko.cp.meta.services.upload.UploadService import se.lu.nateko.cp.meta.utils.async.executeSequentially import java.net.URI import scala.concurrent.Future -import scala.util.Try -import se.lu.nateko.cp.doi.core.DoiMemberConfig class DoiMaker(password: String)(implicit val system: ActorSystem){ diff --git a/src/test/scala/se/lu/nateko/cp/meta/upload/L3UpdateWorkbench.scala b/src/test/scala/se/lu/nateko/cp/meta/upload/L3UpdateWorkbench.scala index 7896dc771..cd8dd9529 100644 --- a/src/test/scala/se/lu/nateko/cp/meta/upload/L3UpdateWorkbench.scala +++ b/src/test/scala/se/lu/nateko/cp/meta/upload/L3UpdateWorkbench.scala @@ -1,25 +1,15 @@ package se.lu.nateko.cp.meta.upload +import akka.Done import akka.actor.ActorSystem -import akka.http.scaladsl.Http +import se.lu.nateko.cp.meta.core.crypto.Sha256Sum +import se.lu.nateko.cp.meta.utils.async.executeSequentially +import se.lu.nateko.cp.meta.{CpmetaJsonProtocol, DataObjectDto} + import java.net.URI import scala.concurrent.Future -import se.lu.nateko.cp.meta.DataObjectDto -import se.lu.nateko.cp.meta.CpmetaJsonProtocol -import se.lu.nateko.cp.meta.utils.async.{ok, error, executeSequentially} -import akka.http.scaladsl.model.Uri -import akka.http.scaladsl.unmarshalling.Unmarshal -import akka.http.scaladsl.model.HttpRequest -import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport.* import scala.io.Source -import scala.util.Success -import scala.util.Failure -import spray.json.* -import akka.Done -import akka.http.scaladsl.marshalling.Marshal -import akka.http.scaladsl.model.HttpMethods -import akka.http.scaladsl.model.RequestEntity -import se.lu.nateko.cp.meta.core.crypto.Sha256Sum +import scala.util.{Failure, Success} object L3UpdateWorkbench extends CpmetaJsonProtocol{ given system: ActorSystem = ActorSystem("l3update_workbench") diff --git a/src/test/scala/se/lu/nateko/cp/meta/upload/SparqlHelper.scala b/src/test/scala/se/lu/nateko/cp/meta/upload/SparqlHelper.scala index 75b6d45b1..95df4597e 100644 --- a/src/test/scala/se/lu/nateko/cp/meta/upload/SparqlHelper.scala +++ b/src/test/scala/se/lu/nateko/cp/meta/upload/SparqlHelper.scala @@ -1,10 +1,11 @@ package se.lu.nateko.cp.meta.upload -import se.lu.nateko.cp.doi.meta.* -import scala.concurrent.Future import akka.actor.ActorSystem +import se.lu.nateko.cp.doi.meta.* import se.lu.nateko.cp.meta.test.utils.SparqlClient + import java.net.URI +import scala.concurrent.Future class SparqlHelper(endpoint: URI)(implicit system: ActorSystem){ import se.lu.nateko.cp.meta.core.sparql.* diff --git a/src/test/scala/se/lu/nateko/cp/meta/upload/UploadWorkbench.scala b/src/test/scala/se/lu/nateko/cp/meta/upload/UploadWorkbench.scala index c08ee4a3d..5f4b38e8e 100644 --- a/src/test/scala/se/lu/nateko/cp/meta/upload/UploadWorkbench.scala +++ b/src/test/scala/se/lu/nateko/cp/meta/upload/UploadWorkbench.scala @@ -1,22 +1,19 @@ package se.lu.nateko.cp.meta.upload -import se.lu.nateko.cp.meta.core.crypto.Sha256Sum -import java.net.URI +import akka.Done import akka.actor.ActorSystem -import se.lu.nateko.cp.meta.StaticCollectionDto -import scala.concurrent.Await -import se.lu.nateko.cp.meta.upload.drought.DroughtDoiMaker -import scala.concurrent.duration.DurationInt +import akka.stream.Materializer import se.lu.nateko.cp.doi.* +import se.lu.nateko.cp.meta.StaticCollectionDto +import se.lu.nateko.cp.meta.core.crypto.Sha256Sum import se.lu.nateko.cp.meta.services.citation.CitationClientImpl -import se.lu.nateko.cp.meta.CitationConfig -import akka.stream.Materializer +import se.lu.nateko.cp.meta.upload.drought.{DroughtDoiMaker, DroughtDoiMaker2, FluxdataUpload} import se.lu.nateko.cp.meta.utils.async.executeSequentially -import scala.concurrent.Future -import akka.Done -import se.lu.nateko.cp.meta.upload.drought.DroughtDoiMaker2 -import se.lu.nateko.cp.meta.upload.drought.FluxdataUpload + +import java.net.URI import scala.collection.concurrent.TrieMap +import scala.concurrent.duration.DurationInt +import scala.concurrent.{Await, Future} object UploadWorkbench{ given system: ActorSystem = ActorSystem("upload_workbench") diff --git a/src/test/scala/se/lu/nateko/cp/meta/upload/drought/DroughtDoiMaker.scala b/src/test/scala/se/lu/nateko/cp/meta/upload/drought/DroughtDoiMaker.scala index adf7d6d5b..67bd1cc73 100644 --- a/src/test/scala/se/lu/nateko/cp/meta/upload/drought/DroughtDoiMaker.scala +++ b/src/test/scala/se/lu/nateko/cp/meta/upload/drought/DroughtDoiMaker.scala @@ -1,16 +1,14 @@ package se.lu.nateko.cp.meta.upload.drought - -import se.lu.nateko.cp.doi.core.DoiClient +import akka.Done import se.lu.nateko.cp.doi.* import se.lu.nateko.cp.doi.meta.* -import scala.concurrent.Future import se.lu.nateko.cp.meta.core.etcupload.StationId -import java.net.URI -import scala.concurrent.ExecutionContext import se.lu.nateko.cp.meta.upload.* import se.lu.nateko.cp.meta.utils.async.executeSequentially -import akka.Done + +import java.net.URI import java.time.Instant +import scala.concurrent.{ExecutionContext, Future} class DroughtDoiMaker(maker: DoiMaker, peeps: Map[URI, PersonalName], names: Map[URI, String])(implicit ctxt: ExecutionContext){ diff --git a/src/test/scala/se/lu/nateko/cp/meta/upload/drought/DroughtDoiMaker2.scala b/src/test/scala/se/lu/nateko/cp/meta/upload/drought/DroughtDoiMaker2.scala index 281ef2738..dd17d0b57 100644 --- a/src/test/scala/se/lu/nateko/cp/meta/upload/drought/DroughtDoiMaker2.scala +++ b/src/test/scala/se/lu/nateko/cp/meta/upload/drought/DroughtDoiMaker2.scala @@ -1,18 +1,14 @@ package se.lu.nateko.cp.meta.upload.drought - -import se.lu.nateko.cp.doi.core.DoiClient +import akka.Done import se.lu.nateko.cp.doi.* import se.lu.nateko.cp.doi.meta.* -import scala.concurrent.Future -import se.lu.nateko.cp.meta.core.etcupload.StationId -import java.net.URI -import scala.concurrent.ExecutionContext +import se.lu.nateko.cp.meta.core.crypto.Sha256Sum +import se.lu.nateko.cp.meta.services.citation.CitationClient import se.lu.nateko.cp.meta.upload.* import se.lu.nateko.cp.meta.utils.async.executeSequentially -import akka.Done + import java.time.Instant -import se.lu.nateko.cp.meta.core.crypto.Sha256Sum -import se.lu.nateko.cp.meta.services.citation.CitationClient +import scala.concurrent.{ExecutionContext, Future} class DroughtDoiMaker2(maker: DoiMaker, citer: CitationClient)(implicit ctxt: ExecutionContext){ diff --git a/src/test/scala/se/lu/nateko/cp/meta/upload/drought/DroughtMeta2.scala b/src/test/scala/se/lu/nateko/cp/meta/upload/drought/DroughtMeta2.scala index 42edbc247..e12e42895 100644 --- a/src/test/scala/se/lu/nateko/cp/meta/upload/drought/DroughtMeta2.scala +++ b/src/test/scala/se/lu/nateko/cp/meta/upload/drought/DroughtMeta2.scala @@ -1,22 +1,16 @@ package se.lu.nateko.cp.meta.upload.drought -import com.opencsv.CSVParserBuilder -import com.opencsv.CSVReaderBuilder +import com.opencsv.{CSVParserBuilder, CSVReaderBuilder} import se.lu.nateko.cp.doi.Doi import se.lu.nateko.cp.meta.core.crypto.Sha256Sum import se.lu.nateko.cp.meta.core.data.TimeInterval import se.lu.nateko.cp.meta.services.CpVocab -import se.lu.nateko.cp.meta.services.citation.CitationClient -import se.lu.nateko.cp.meta.services.citation.CitationStyle +import se.lu.nateko.cp.meta.services.citation.{CitationClient, CitationStyle} -import java.io.File -import java.io.FileReader +import java.io.{File, FileReader} import java.net.URI -import java.time.Instant -import java.time.LocalDate -import scala.concurrent.ExecutionContext -import scala.concurrent.Future -import scala.io.Source +import java.time.{Instant, LocalDate} +import scala.concurrent.{ExecutionContext, Future} import scala.jdk.CollectionConverters.IteratorHasAsScala import scala.util.Using diff --git a/src/test/scala/se/lu/nateko/cp/meta/upload/drought/DroughtUpload.scala b/src/test/scala/se/lu/nateko/cp/meta/upload/drought/DroughtUpload.scala index 1f6f63a6a..6b347f052 100644 --- a/src/test/scala/se/lu/nateko/cp/meta/upload/drought/DroughtUpload.scala +++ b/src/test/scala/se/lu/nateko/cp/meta/upload/drought/DroughtUpload.scala @@ -1,22 +1,18 @@ package se.lu.nateko.cp.meta.upload.drought -import scala.concurrent.Future +import akka.Done +import com.opencsv.CSVReader +import se.lu.nateko.cp.doi.* import se.lu.nateko.cp.meta.core.crypto.Sha256Sum -import java.net.URI -import java.nio.file.Path import se.lu.nateko.cp.meta.core.data.TimeInterval -import akka.Done +import se.lu.nateko.cp.meta.upload.* +import se.lu.nateko.cp.meta.{DataObjectDto, DataProductionDto, ObjectUploadDto, StaticCollectionDto, StationTimeSeriesDto} + import java.io.InputStreamReader -import com.opencsv.CSVReader -import java.nio.file.Paths +import java.net.URI +import java.nio.file.{Path, Paths} +import scala.concurrent.Future import scala.jdk.CollectionConverters.IteratorHasAsScala -import se.lu.nateko.cp.meta.StaticCollectionDto -import se.lu.nateko.cp.meta.ObjectUploadDto -import se.lu.nateko.cp.meta.DataProductionDto -import se.lu.nateko.cp.meta.StationTimeSeriesDto -import se.lu.nateko.cp.meta.DataObjectDto -import se.lu.nateko.cp.meta.upload.* -import se.lu.nateko.cp.doi.* object DroughtUpload{ diff --git a/src/test/scala/se/lu/nateko/cp/meta/upload/drought/FluxMeta.scala b/src/test/scala/se/lu/nateko/cp/meta/upload/drought/FluxMeta.scala index 0deaddeac..93d188518 100644 --- a/src/test/scala/se/lu/nateko/cp/meta/upload/drought/FluxMeta.scala +++ b/src/test/scala/se/lu/nateko/cp/meta/upload/drought/FluxMeta.scala @@ -1,11 +1,12 @@ package se.lu.nateko.cp.meta.upload.drought import se.lu.nateko.cp.meta.core.crypto.Sha256Sum -import java.net.URI import se.lu.nateko.cp.meta.core.etcupload.StationId -import java.time.Instant import se.lu.nateko.cp.meta.upload.CpUploadClient + +import java.net.URI +import java.nio.file.{Files, Path} +import java.time.Instant import java.util.zip.ZipFile -import java.nio.file.{Path, Files} import scala.jdk.CollectionConverters.EnumerationHasAsScala diff --git a/src/test/scala/se/lu/nateko/cp/meta/upload/drought/FluxdataUpload.scala b/src/test/scala/se/lu/nateko/cp/meta/upload/drought/FluxdataUpload.scala index 4cac58440..f8dae9f6f 100644 --- a/src/test/scala/se/lu/nateko/cp/meta/upload/drought/FluxdataUpload.scala +++ b/src/test/scala/se/lu/nateko/cp/meta/upload/drought/FluxdataUpload.scala @@ -1,30 +1,18 @@ package se.lu.nateko.cp.meta.upload.drought -import scala.concurrent.Future -import se.lu.nateko.cp.meta.core.crypto.Sha256Sum -import java.net.URI -import java.nio.file.Path -import se.lu.nateko.cp.meta.core.data.TimeInterval -import akka.Done -import java.io.InputStreamReader -import com.opencsv.CSVReader -import java.nio.file.Paths -import scala.jdk.CollectionConverters.* -import se.lu.nateko.cp.meta.StaticCollectionDto -import se.lu.nateko.cp.meta.ObjectUploadDto -import se.lu.nateko.cp.meta.DataProductionDto -import se.lu.nateko.cp.meta.StationTimeSeriesDto -import se.lu.nateko.cp.meta.DataObjectDto -import se.lu.nateko.cp.meta.upload.* import se.lu.nateko.cp.doi.* +import se.lu.nateko.cp.meta.core.data.TimeInterval import se.lu.nateko.cp.meta.services.citation.CitationClient -import scala.concurrent.ExecutionContext -import java.nio.file.Files +import se.lu.nateko.cp.meta.upload.* import se.lu.nateko.cp.meta.upload.CpUploadClient.FileInfo -import java.util.zip.ZipFile +import se.lu.nateko.cp.meta.{DataObjectDto, DataProductionDto, ObjectUploadDto, ReferencesDto, StaticCollectionDto, StationTimeSeriesDto} + +import java.net.URI +import java.nio.file.{Files, Path, Paths} import java.time.Instant -import se.lu.nateko.cp.meta.core.data.References -import se.lu.nateko.cp.meta.ReferencesDto +import java.util.zip.ZipFile +import scala.concurrent.{ExecutionContext, Future} +import scala.jdk.CollectionConverters.* object FluxdataUpload{ diff --git a/uploadgui/src/main/scala/se/lu/nateko/cp/meta/upload/Backend.scala b/uploadgui/src/main/scala/se/lu/nateko/cp/meta/upload/Backend.scala index dd883ed1f..44c3cbb70 100644 --- a/uploadgui/src/main/scala/se/lu/nateko/cp/meta/upload/Backend.scala +++ b/uploadgui/src/main/scala/se/lu/nateko/cp/meta/upload/Backend.scala @@ -8,9 +8,7 @@ import scala.scalajs.js.URIUtils.encodeURIComponent import scala.scalajs.js.Thenable.Implicits.thenable2future import org.scalajs.dom.File import org.scalajs.dom.fetch -import org.scalajs.dom.XMLHttpRequest import org.scalajs.dom.RequestInit -import org.scalajs.dom.Headers import org.scalajs.dom.RequestCredentials import org.scalajs.dom.Response import org.scalajs.dom.HttpMethod @@ -20,7 +18,6 @@ import se.lu.nateko.cp.meta.{SubmitterProfile, UploadDto} import se.lu.nateko.cp.meta.core.data.EnvriConfig import se.lu.nateko.cp.doi.Doi import scala.scalajs.js.Dictionary -import se.lu.nateko.cp.meta.OntoConstants.FormatUris.* import scala.language.strictEquality object Backend { diff --git a/uploadgui/src/main/scala/se/lu/nateko/cp/meta/upload/UploadApp.scala b/uploadgui/src/main/scala/se/lu/nateko/cp/meta/upload/UploadApp.scala index 4765ffce9..c6b4d8f3f 100644 --- a/uploadgui/src/main/scala/se/lu/nateko/cp/meta/upload/UploadApp.scala +++ b/uploadgui/src/main/scala/se/lu/nateko/cp/meta/upload/UploadApp.scala @@ -1,16 +1,12 @@ package se.lu.nateko.cp.meta.upload import org.scalajs.dom -import org.scalajs.dom.document import org.scalajs.dom.html import se.lu.nateko.cp.meta.UploadDto import se.lu.nateko.cp.meta.core.data.EnvriConfig -import se.lu.nateko.cp.meta.upload.formcomponents.Button import se.lu.nateko.cp.meta.upload.formcomponents.HtmlElements import se.lu.nateko.cp.meta.upload.formcomponents.ProgressBar -import java.net.URI -import scala.concurrent.Future import scala.scalajs.concurrent.JSExecutionContext.Implicits.queue import scala.scalajs.js.URIUtils import scala.concurrent.Future diff --git a/uploadgui/src/main/scala/se/lu/nateko/cp/meta/upload/Utils.scala b/uploadgui/src/main/scala/se/lu/nateko/cp/meta/upload/Utils.scala index 218ce0718..65427a357 100644 --- a/uploadgui/src/main/scala/se/lu/nateko/cp/meta/upload/Utils.scala +++ b/uploadgui/src/main/scala/se/lu/nateko/cp/meta/upload/Utils.scala @@ -5,7 +5,6 @@ import scala.util.Failure import scala.util.Success import scala.util.Try import org.scalajs.dom.{document, html} -import org.scalajs.dom.ext.* import scala.scalajs.js import org.scalajs.dom import org.scalajs.dom.Element diff --git a/uploadgui/src/main/scala/se/lu/nateko/cp/meta/upload/formcomponents/FormComponents.scala b/uploadgui/src/main/scala/se/lu/nateko/cp/meta/upload/formcomponents/FormComponents.scala index fb5cd2e93..bc422e887 100644 --- a/uploadgui/src/main/scala/se/lu/nateko/cp/meta/upload/formcomponents/FormComponents.scala +++ b/uploadgui/src/main/scala/se/lu/nateko/cp/meta/upload/formcomponents/FormComponents.scala @@ -6,7 +6,6 @@ import scala.util.{ Success, Try, Failure } import org.scalajs.dom import org.scalajs.dom.html -import org.scalajs.dom.ext.* import se.lu.nateko.cp.meta.upload.Utils.* import se.lu.nateko.cp.meta.core.crypto.Sha256Sum diff --git a/uploadgui/src/main/scala/se/lu/nateko/cp/meta/upload/subforms/DataPanel.scala b/uploadgui/src/main/scala/se/lu/nateko/cp/meta/upload/subforms/DataPanel.scala index 62a822315..da646cf8c 100644 --- a/uploadgui/src/main/scala/se/lu/nateko/cp/meta/upload/subforms/DataPanel.scala +++ b/uploadgui/src/main/scala/se/lu/nateko/cp/meta/upload/subforms/DataPanel.scala @@ -11,7 +11,6 @@ import se.lu.nateko.cp.meta.SubmitterProfile import UploadApp.whenDone import java.net.URI import java.time.Instant -import org.scalajs.dom.html import eu.icoscp.envri.Envri diff --git a/uploadgui/src/main/scala/se/lu/nateko/cp/meta/upload/subforms/GeoCoverageSelector.scala b/uploadgui/src/main/scala/se/lu/nateko/cp/meta/upload/subforms/GeoCoverageSelector.scala index f6e930d8f..8f254b56e 100644 --- a/uploadgui/src/main/scala/se/lu/nateko/cp/meta/upload/subforms/GeoCoverageSelector.scala +++ b/uploadgui/src/main/scala/se/lu/nateko/cp/meta/upload/subforms/GeoCoverageSelector.scala @@ -14,7 +14,6 @@ import se.lu.nateko.cp.meta.upload.formcomponents.JsonInput import se.lu.nateko.cp.meta.upload.formcomponents.TextOptInput import java.net.URI -import scala.util.Failure import scala.util.Success import scala.util.Try import se.lu.nateko.cp.meta.GeoCoverage diff --git a/uploadgui/src/main/scala/se/lu/nateko/cp/meta/upload/subforms/PanelSubform.scala b/uploadgui/src/main/scala/se/lu/nateko/cp/meta/upload/subforms/PanelSubform.scala index 38abe702a..7f909b354 100644 --- a/uploadgui/src/main/scala/se/lu/nateko/cp/meta/upload/subforms/PanelSubform.scala +++ b/uploadgui/src/main/scala/se/lu/nateko/cp/meta/upload/subforms/PanelSubform.scala @@ -4,7 +4,6 @@ import se.lu.nateko.cp.meta.upload.formcomponents.HtmlElements import se.lu.nateko.cp.meta.upload.* import eu.icoscp.envri.Envri -import scala.scalajs.concurrent.JSExecutionContext.Implicits.queue import scala.concurrent.Future abstract class PanelSubform(selector: String)(using bus: PubSubBus) { diff --git a/uploadgui/src/main/scala/se/lu/nateko/cp/meta/upload/subforms/ProductionPanel.scala b/uploadgui/src/main/scala/se/lu/nateko/cp/meta/upload/subforms/ProductionPanel.scala index f369aa572..ad5f75466 100644 --- a/uploadgui/src/main/scala/se/lu/nateko/cp/meta/upload/subforms/ProductionPanel.scala +++ b/uploadgui/src/main/scala/se/lu/nateko/cp/meta/upload/subforms/ProductionPanel.scala @@ -1,13 +1,9 @@ package se.lu.nateko.cp.meta.upload.subforms - -import scala.scalajs.concurrent.JSExecutionContext.Implicits.queue - import scala.util.{Try, Success} import se.lu.nateko.cp.meta.upload.* import se.lu.nateko.cp.meta.{UploadDto, DataObjectDto, DataProductionDto} -import se.lu.nateko.cp.meta.upload.formcomponents.HtmlElements import formcomponents.* import Utils.*