.`
### Bulk Ingestion
-Depending on if the event stream has version creation enabled, multiple members can be ingested with a single POST request.
+Depending on if the event stream has version creation enabled, multiple members can be ingested with a single POST
+request.
Later this will also be possible without version creation.
-For now, a request will be rejected if multiple named nodes are found which are not referenced by any triple. (Without version creation enabled)
+For now, a request will be rejected if multiple named nodes are found which are not referenced by any triple. (Without
+version creation enabled)
## Duplicate Members
diff --git a/docs/how-to-run.md b/docs/how-to-run.md
index 8bb59ef91e..d9f4a75fb1 100644
--- a/docs/how-to-run.md
+++ b/docs/how-to-run.md
@@ -126,28 +126,16 @@ Here is an explanation provided for all the possibilities on how to tweak and co
*/30 * * * * * |
Fragment Compaction |
-
- ldes-server.compaction-cron |
- Defines how often the Compaction Service will check the fragments3 |
- No |
- 0 0 0 * * * |
-
ldes-server.compaction-duration |
Defines how long the redundant compacted fragments will remain on the server |
No |
PD7 |
+ Maintenance |
- ldes-server.deletion-cron |
- Defines how often the redundant compacted fragments will be checked for deletion3 |
- No |
- 0 0 0 * * * |
-
- Retention (Retention Policies) |
-
- ldes-server.retention-cron |
- Defines how often the Retention Service will check the members3 |
+ ldes-server.maintenance-cron |
+ Defines how often the maintenance job will run, which includes retention, compaction and deletion3 |
No |
0 0 0 * * * |
diff --git a/ldes-fragmentisers/ldes-fragmentisers-pagination/content/paginationAlgorithm.drawio b/ldes-fragmentisers/ldes-fragmentisers-pagination/content/paginationAlgorithm.drawio
deleted file mode 100644
index 5cd8a09e65..0000000000
--- a/ldes-fragmentisers/ldes-fragmentisers-pagination/content/paginationAlgorithm.drawio
+++ /dev/null
@@ -1 +0,0 @@
-7VtLd5s4FP41XraHp4OXceykp2fcyZksZrpUjGyrA4gIYZv++pFAMiDhR1sMpJ5NYl0kIX33fvflZGQ/hPsnAuLNAvswGFmGvx/Zs5Flea7HfnJBVggc2ykEa4L8QmSWghf0HQqhIaQp8mFSm0gxDiiK68IljiK4pDUZIATv6tNWOKi/NQZrqAleliDQpX8jn27ktYxS/gmi9Ua+2TTEkxDIyUKQbICPdxWRPR/ZDwRjWnwK9w8w4NhJXIp1j0eeHg5GYEQvWrDbIz/7jPxP2/Hz83OSbP8KP/AF+eFoJm8MfQaAGGJCN3iNIxDMS+mU4DTyId/WYKNyzh8Yx0xoMuE3SGkmtAlSiploQ8NAPGUnJtk/fP1HVw6/iu3ywWxfG2VipF9ZoJDglCzhiXtK0wFkDekpPMREDkLlDQLRJ4hDyA7EJhAYAIq2dSsBwtjWh3mlPtgHoZIfUI/YdwuCVLxpAcNXSPi6JD/FEsEtU4WqxLqKdhtE4UsMcoh2jKd1dRyFdQsJhfuTOIin1lhYuaD5nRjuSs6YkgibCl/kstaRs8a3YdjWhYbtDcquLc2uHxFJKHfQBKxDjoKw8CWBgHIDZ6bELEk4bMuIUsEDU9Nz17bvTNya7Zvjvo3/7rew/bM2PW7bpsXSZ4xyAxT6ta26b7NsRW8FScUqRXWHY/y8Nif9arOmy1K1rXuy8bv0ZKb9W3CtNe2Y1qDUM9YCzZ8xjOpxZpXyPR/1OLLB4WuadJM/eYqP8fQY4jWEEO9q+ZN3G17Hu9CurbtB2bWn2fW9z5OkUJYHDNmqkQ8sRbImfadIpl5arUCQQA0qdkNaxwMEaB2xz0uGB8PannIc0BIE9+JBiHy/4ANM0Hfwmm/FgY55ipDfxJ2O3Bnfi1EgKdjAt04owf/CBxxgtu8swhHfZYWCQBG1oRLHOKsSt0EjavLTnkZ6rti68jgyQp4Ppe6gXI48d4UxX+DuVMnWs9M5tOJk67H3usx0NAgpSW/H51hqJdXgc5xOfc6NZDntu5LmUtmx6nHemSiaK5ze1Uplec8KwZ4J3CKcJnVH9QqX7GVciMIwpTlf+vZXag91AP6q59ZDvbg1z9AD7hGtLGOjr5Un5SI++CFKfd76T1m2WLxN1y/zqTl7i98WH9wLo3jr7Ypm5rmuwjyr2yaV1XMfpCtPenFzclh9EEsvd/RGCGNGwlOFYbVCTLfvVoietd1WqWi7ikYaAlOnpaKlh/mbyqOPfiPRVx4tu2MVhcy/zPSIEAQoTuB5NwKSuPhjjhXa8/jQBmjjOwW0DlusjRmE7pKnyEeEXRzxIHiIDThqwydrQDXAebxZpOb1HfrkRux0l1z0PyVieWDDIfsVqT2KvDNayfpb7ZL+Esqu0pJzzQ4LgFNJ7gUwNwNagK2qYGAwH1Ll3mCWfaH3lDwrie3Zb/CP07j9WshQvJU3+ejWNzlSDTWUVca5rY60NO4JAVllmsgfjh9aiemydXL0ZMp8adWlHRYn+Nkqr9lQ3X4NtauGwCXGfbZD4FxIAvc6JDDVVlxrJDiMW6bAWGnYu8ZpCpyZfyUKvKuvqSQFzCoBDnS4OgUujQP/U6ClKCAT8+tSQK/2MphotBhw9f1rxZDSoHIb8sdrVd/N+tD/GiTCN6QOheXO1dTBhuX/axRsKv/pxZ7/Bw==
\ No newline at end of file
diff --git a/ldes-fragmentisers/ldes-fragmentisers-pagination/content/paginationAlgorithm.png b/ldes-fragmentisers/ldes-fragmentisers-pagination/content/paginationAlgorithm.png
deleted file mode 100644
index 7c01fa93fa..0000000000
Binary files a/ldes-fragmentisers/ldes-fragmentisers-pagination/content/paginationAlgorithm.png and /dev/null differ
diff --git a/ldes-fragmentisers/ldes-fragmentisers-reference/src/test/java/be/vlaanderen/informatievlaanderen/ldes/server/fragmentisers/reference/bucketising/ReferenceBucketiserTest.java b/ldes-fragmentisers/ldes-fragmentisers-reference/src/test/java/be/vlaanderen/informatievlaanderen/ldes/server/fragmentisers/reference/bucketising/ReferenceBucketiserTest.java
deleted file mode 100644
index 9ac87a25f5..0000000000
--- a/ldes-fragmentisers/ldes-fragmentisers-reference/src/test/java/be/vlaanderen/informatievlaanderen/ldes/server/fragmentisers/reference/bucketising/ReferenceBucketiserTest.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package be.vlaanderen.informatievlaanderen.ldes.server.fragmentisers.reference.bucketising;
-
-import be.vlaanderen.informatievlaanderen.ldes.server.fragmentisers.reference.config.ReferenceConfig;
-import org.apache.jena.rdf.model.Model;
-import org.apache.jena.riot.RDFParser;
-import org.apache.jena.vocabulary.RDF;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-
-import static be.vlaanderen.informatievlaanderen.ldes.server.domain.constants.ServerConstants.DEFAULT_BUCKET_STRING;
-import static org.assertj.core.api.Assertions.assertThat;
-
-class ReferenceBucketiserTest {
-
- private final ReferenceConfig config = new ReferenceConfig(RDF.type.getURI());
- private ReferenceBucketiser referenceBucketiser;
-
- private final String memberId = "https://data.vlaanderen.be/id/perceel/13374D0779-00D003/2022-11-29T11:37:27+01:00";
-
- @BeforeEach
- void setUp() {
- referenceBucketiser = new ReferenceBucketiser(config);
- }
-
- @Test
- void shouldReturnSetOfFoundResources() {
- Model model = RDFParser.source("member-with-two-types.ttl").toModel();
-
- assertThat(referenceBucketiser.createReferences(memberId, model))
- .hasSize(2)
- .contains("https://basisregisters.vlaanderen.be/implementatiemodel/gebouwenregister#Perceel")
- .contains("https://basisregisters.vlaanderen.be/implementatiemodel/gebouwenregister#Gebouw");
- }
-
- @Test
- void shouldReturnDefaultBucketString() {
- Model model = RDFParser.source("member-with-two-types.ttl").toModel();
-
- assertThat(referenceBucketiser.createReferences("faulty", model))
- .hasSize(1)
- .contains(DEFAULT_BUCKET_STRING);
- }
-
- @Test
- void when_MemberHasInvalidURI_Then_ReturnOnlyCorrectBucket() {
- Model model = RDFParser.source("member-with-two-types-faulty.ttl").toModel();
-
- assertThat(referenceBucketiser.createReferences(memberId, model))
- .hasSize(1)
- .contains("https://basisregisters.vlaanderen.be/implementatiemodel/gebouwenregister#Perceel");
- }
-
- @Test
- void shouldSkipResultsThatAreNotUris() {
- Model model = RDFParser.source("member-with-string-type.ttl").toModel();
-
- assertThat(referenceBucketiser.createReferences(memberId, model)).hasSize(1)
- .contains(DEFAULT_BUCKET_STRING);
- }
-
-}
\ No newline at end of file
diff --git a/ldes-server-admin/ldes-server-admin-common/pom.xml b/ldes-server-admin/ldes-server-admin-common/pom.xml
new file mode 100644
index 0000000000..5c19354984
--- /dev/null
+++ b/ldes-server-admin/ldes-server-admin-common/pom.xml
@@ -0,0 +1,70 @@
+
+
+ 4.0.0
+
+ be.vlaanderen.informatievlaanderen.vsds
+ ldes-server-admin
+ 3.5.0-SNAPSHOT
+
+
+ ldes-server-admin-common
+
+
+
+ be.vlaanderen.informatievlaanderen.vsds
+ ldes-server-domain
+
+
+
+ org.junit.jupiter
+ junit-jupiter
+ test
+
+
+ org.assertj
+ assertj-core
+ test
+
+
+ io.cucumber
+ cucumber-java
+
+
+ io.cucumber
+ cucumber-spring
+
+
+ io.cucumber
+ cucumber-junit-platform-engine
+
+
+ org.junit.platform
+ junit-platform-suite
+
+
+ org.awaitility
+ awaitility
+ test
+
+
+
+
+ org.jetbrains
+ annotations
+
+
+ com.google.guava
+ guava
+ ${google-guava.version}
+
+
+ org.mockito
+ mockito-junit-jupiter
+ test
+
+
+
+
+
\ No newline at end of file
diff --git a/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/dcat/dcatdataset/entities/DcatDataset.java b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/dcat/dcatdataset/entities/DcatDataset.java
new file mode 100644
index 0000000000..0b38f27c75
--- /dev/null
+++ b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/dcat/dcatdataset/entities/DcatDataset.java
@@ -0,0 +1,75 @@
+package be.vlaanderen.informatievlaanderen.ldes.server.admin.domain.dcat.dcatdataset.entities;
+
+import be.vlaanderen.informatievlaanderen.ldes.server.domain.constants.RdfConstants;
+import org.apache.jena.rdf.model.*;
+import org.apache.jena.util.ResourceUtils;
+
+import java.util.List;
+import java.util.Objects;
+
+public class DcatDataset {
+ public static final String DCAT_PREFIX = "http://www.w3.org/ns/dcat#";
+ public static final String DATASET_TYPE = DCAT_PREFIX + "Dataset";
+ public static final Property TREE_SPECIFICATION = ResourceFactory.createProperty("https://w3id.org/tree/specification");
+ public static final Property LDES_SPECIFICATION = ResourceFactory.createProperty("https://w3id.org/ldes/specification");
+
+ private final String collectionName;
+ private final Model model;
+
+ public DcatDataset(String collectionName, Model model) {
+ this.collectionName = collectionName;
+ this.model = model;
+ }
+
+ public DcatDataset(String collectionName) {
+ this(collectionName, ModelFactory.createDefaultModel());
+ }
+
+ public String getCollectionName() {
+ return collectionName;
+ }
+
+ public Model getModel() {
+ return model;
+ }
+
+ public Model getModelWithIdentity(String hostname) {
+ String datasetIriString = getDatasetIriString(hostname);
+ Model modelWithIdentity = ModelFactory.createDefaultModel();
+ modelWithIdentity.add(model);
+ modelWithIdentity.listStatements(null, RdfConstants.RDF_SYNTAX_TYPE, ResourceFactory.createResource(DATASET_TYPE)).nextOptional()
+ .ifPresent(statement -> ResourceUtils.renameResource(statement.getSubject(), datasetIriString));
+ modelWithIdentity.add(ResourceFactory.createResource(datasetIriString), RdfConstants.DC_TERMS_IDENTIFIER,
+ modelWithIdentity.createTypedLiteral(datasetIriString, RdfConstants.RDF_LITERAL));
+ modelWithIdentity.add(createConformsToStatements(ResourceFactory.createResource(datasetIriString)));
+ return modelWithIdentity;
+ }
+
+ public String getDatasetIriString(String hostName) {
+ return hostName + "/" + getCollectionName();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o)
+ return true;
+ if (o == null || getClass() != o.getClass())
+ return false;
+ DcatDataset that = (DcatDataset) o;
+ return Objects.equals(collectionName, that.getCollectionName());
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(collectionName);
+ }
+
+ private List createConformsToStatements(Resource datasetIri) {
+ return List.of(
+ ResourceFactory.createStatement(datasetIri, RdfConstants.DC_CONFORMS_TO, TREE_SPECIFICATION),
+ ResourceFactory.createStatement(datasetIri, RdfConstants.DC_CONFORMS_TO, LDES_SPECIFICATION),
+ ResourceFactory.createStatement(TREE_SPECIFICATION, RdfConstants.RDF_SYNTAX_TYPE, RdfConstants.DC_STANDARD),
+ ResourceFactory.createStatement(LDES_SPECIFICATION, RdfConstants.RDF_SYNTAX_TYPE, RdfConstants.DC_STANDARD)
+ );
+ }
+}
diff --git a/ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/dcat/dcatdataset/repository/DcatDatasetRepository.java b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/dcat/dcatdataset/repository/DcatDatasetRepository.java
similarity index 100%
rename from ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/dcat/dcatdataset/repository/DcatDatasetRepository.java
rename to ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/dcat/dcatdataset/repository/DcatDatasetRepository.java
diff --git a/ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/dcat/dcatdataset/services/DcatDatasetService.java b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/dcat/dcatdataset/services/DcatDatasetService.java
similarity index 100%
rename from ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/dcat/dcatdataset/services/DcatDatasetService.java
rename to ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/dcat/dcatdataset/services/DcatDatasetService.java
diff --git a/ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/dcat/dcatdataset/services/DcatDatasetServiceImpl.java b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/dcat/dcatdataset/services/DcatDatasetServiceImpl.java
similarity index 100%
rename from ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/dcat/dcatdataset/services/DcatDatasetServiceImpl.java
rename to ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/dcat/dcatdataset/services/DcatDatasetServiceImpl.java
diff --git a/ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/dcat/dcatserver/entities/DcatServer.java b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/dcat/dcatserver/entities/DcatServer.java
similarity index 69%
rename from ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/dcat/dcatserver/entities/DcatServer.java
rename to ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/dcat/dcatserver/entities/DcatServer.java
index 221d8e7dfd..a098c95ed2 100644
--- a/ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/dcat/dcatserver/entities/DcatServer.java
+++ b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/dcat/dcatserver/entities/DcatServer.java
@@ -1,24 +1,21 @@
package be.vlaanderen.informatievlaanderen.ldes.server.admin.domain.dcat.dcatserver.entities;
import be.vlaanderen.informatievlaanderen.ldes.server.admin.domain.dcat.dcatdataset.entities.DcatDataset;
+import be.vlaanderen.informatievlaanderen.ldes.server.domain.constants.RdfConstants;
import be.vlaanderen.informatievlaanderen.ldes.server.domain.model.DcatView;
import org.apache.jena.rdf.model.*;
+import org.apache.jena.util.ResourceUtils;
import org.apache.jena.vocabulary.RDF;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
-import static be.vlaanderen.informatievlaanderen.ldes.server.domain.constants.RdfConstants.DC_TERMS_IDENTIFIER;
-import static be.vlaanderen.informatievlaanderen.ldes.server.domain.constants.RdfConstants.RDF_LITERAL;
-import static org.apache.jena.rdf.model.ResourceFactory.*;
-import static org.apache.jena.util.ResourceUtils.renameResource;
-
public class DcatServer {
- public static final Property DCAT_CATALOG = createProperty("http://www.w3.org/ns/dcat#Catalog");
- public static final Property DCAT_SERVICE = createProperty("http://www.w3.org/ns/dcat#service");
- public static final Property DCAT_DATASET = createProperty("http://www.w3.org/ns/dcat#dataset");
+ public static final Property DCAT_CATALOG = ResourceFactory.createProperty("http://www.w3.org/ns/dcat#Catalog");
+ public static final Property DCAT_SERVICE = ResourceFactory.createProperty("http://www.w3.org/ns/dcat#service");
+ public static final Property DCAT_DATASET = ResourceFactory.createProperty("http://www.w3.org/ns/dcat#dataset");
private final String id;
private final Model dcat;
@@ -48,14 +45,14 @@ public List getStatementsWithBase(String hostName, List dca
private Statement createIdentifierStatement(String hostName) {
Resource subject = getServerResource(hostName);
- return createStatement(subject, DC_TERMS_IDENTIFIER, dcat.createTypedLiteral(id, RDF_LITERAL));
+ return ResourceFactory.createStatement(subject, RdfConstants.DC_TERMS_IDENTIFIER, dcat.createTypedLiteral(id, RdfConstants.RDF_LITERAL));
}
private List createCatalogStatements(String hostName) {
final Model dcatWithIdentity = ModelFactory.createDefaultModel();
dcatWithIdentity.add(getDcat());
dcatWithIdentity.listStatements(null, RDF.type, DCAT_CATALOG).nextOptional()
- .ifPresent(statement -> renameResource(statement.getSubject(), getServerResource(hostName).getURI()));
+ .ifPresent(statement -> ResourceUtils.renameResource(statement.getSubject(), getServerResource(hostName).getURI()));
return dcatWithIdentity.listStatements().toList();
}
@@ -63,7 +60,7 @@ private List createDcatServiceStatements(String hostName, List createStatement(serverResource, DCAT_SERVICE,
+ .map(dcatView -> ResourceFactory.createStatement(serverResource, DCAT_SERVICE,
dcatView.getViewDescriptionResource(hostName)))
.toList();
}
@@ -72,13 +69,13 @@ private List createDcatDataSetStatements(String hostName, List createStatement(serverResource, DCAT_DATASET,
- createResource(dataset.getDatasetIriString(hostName))))
+ .map(dataset -> ResourceFactory.createStatement(serverResource, DCAT_DATASET,
+ ResourceFactory.createResource(dataset.getDatasetIriString(hostName))))
.toList();
}
public Resource getServerResource(String hostName) {
- return createResource(hostName);
+ return ResourceFactory.createResource(hostName);
}
@Override
diff --git a/ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/dcat/dcatserver/repositories/DcatServerRepository.java b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/dcat/dcatserver/repository/DcatServerRepository.java
similarity index 93%
rename from ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/dcat/dcatserver/repositories/DcatServerRepository.java
rename to ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/dcat/dcatserver/repository/DcatServerRepository.java
index defd6c855b..60dbb75041 100644
--- a/ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/dcat/dcatserver/repositories/DcatServerRepository.java
+++ b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/dcat/dcatserver/repository/DcatServerRepository.java
@@ -1,4 +1,4 @@
-package be.vlaanderen.informatievlaanderen.ldes.server.admin.domain.dcat.dcatserver.repositories;
+package be.vlaanderen.informatievlaanderen.ldes.server.admin.domain.dcat.dcatserver.repository;
import be.vlaanderen.informatievlaanderen.ldes.server.admin.domain.dcat.dcatserver.entities.DcatServer;
diff --git a/ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/dcat/dcatserver/services/DcatServerService.java b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/dcat/dcatserver/services/DcatServerService.java
similarity index 100%
rename from ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/dcat/dcatserver/services/DcatServerService.java
rename to ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/dcat/dcatserver/services/DcatServerService.java
diff --git a/ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/dcat/dcatserver/services/DcatServerServiceImpl.java b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/dcat/dcatserver/services/DcatServerServiceImpl.java
similarity index 98%
rename from ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/dcat/dcatserver/services/DcatServerServiceImpl.java
rename to ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/dcat/dcatserver/services/DcatServerServiceImpl.java
index 67519200cc..be5ec10333 100644
--- a/ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/dcat/dcatserver/services/DcatServerServiceImpl.java
+++ b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/dcat/dcatserver/services/DcatServerServiceImpl.java
@@ -3,7 +3,7 @@
import be.vlaanderen.informatievlaanderen.ldes.server.admin.domain.dcat.dcatdataset.entities.DcatDataset;
import be.vlaanderen.informatievlaanderen.ldes.server.admin.domain.dcat.dcatdataset.services.DcatDatasetService;
import be.vlaanderen.informatievlaanderen.ldes.server.admin.domain.dcat.dcatserver.entities.DcatServer;
-import be.vlaanderen.informatievlaanderen.ldes.server.admin.domain.dcat.dcatserver.repositories.DcatServerRepository;
+import be.vlaanderen.informatievlaanderen.ldes.server.admin.domain.dcat.dcatserver.repository.DcatServerRepository;
import be.vlaanderen.informatievlaanderen.ldes.server.admin.domain.validation.DcatShaclValidator;
import be.vlaanderen.informatievlaanderen.ldes.server.admin.domain.validation.ModelValidator;
import be.vlaanderen.informatievlaanderen.ldes.server.admin.domain.view.service.DcatViewService;
diff --git a/ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/eventsource/repository/EventSourceRepository.java b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/eventsource/repository/EventSourceRepository.java
similarity index 100%
rename from ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/eventsource/repository/EventSourceRepository.java
rename to ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/eventsource/repository/EventSourceRepository.java
diff --git a/ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/eventsource/services/EventSourceService.java b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/eventsource/services/EventSourceService.java
similarity index 100%
rename from ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/eventsource/services/EventSourceService.java
rename to ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/eventsource/services/EventSourceService.java
diff --git a/ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/eventsource/services/EventSourceServiceImpl.java b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/eventsource/services/EventSourceServiceImpl.java
similarity index 100%
rename from ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/eventsource/services/EventSourceServiceImpl.java
rename to ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/eventsource/services/EventSourceServiceImpl.java
diff --git a/ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/eventstream/exceptions/InvalidSkolemisationDomainException.java b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/eventstream/exceptions/InvalidSkolemisationDomainException.java
similarity index 100%
rename from ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/eventstream/exceptions/InvalidSkolemisationDomainException.java
rename to ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/eventstream/exceptions/InvalidSkolemisationDomainException.java
diff --git a/ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/eventstream/exceptions/MissingStatementException.java b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/eventstream/exceptions/MissingStatementException.java
similarity index 100%
rename from ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/eventstream/exceptions/MissingStatementException.java
rename to ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/eventstream/exceptions/MissingStatementException.java
diff --git a/ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/eventstream/repository/EventStreamRepository.java b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/eventstream/repository/EventStreamRepository.java
similarity index 100%
rename from ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/eventstream/repository/EventStreamRepository.java
rename to ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/eventstream/repository/EventStreamRepository.java
diff --git a/ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/eventstream/services/EventStreamService.java b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/eventstream/services/EventStreamService.java
similarity index 100%
rename from ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/eventstream/services/EventStreamService.java
rename to ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/eventstream/services/EventStreamService.java
index d0d081a773..7b777ecdf1 100644
--- a/ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/eventstream/services/EventStreamService.java
+++ b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/eventstream/services/EventStreamService.java
@@ -1,7 +1,7 @@
package be.vlaanderen.informatievlaanderen.ldes.server.admin.domain.eventstream.services;
-import be.vlaanderen.informatievlaanderen.ldes.server.admin.spi.EventStreamTO;
import be.vlaanderen.informatievlaanderen.ldes.server.admin.spi.EventStreamServiceSpi;
+import be.vlaanderen.informatievlaanderen.ldes.server.admin.spi.EventStreamTO;
import org.apache.jena.rdf.model.Model;
import java.util.List;
diff --git a/ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/eventstream/services/EventStreamServiceImpl.java b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/eventstream/services/EventStreamServiceImpl.java
similarity index 100%
rename from ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/eventstream/services/EventStreamServiceImpl.java
rename to ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/eventstream/services/EventStreamServiceImpl.java
diff --git a/ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/shacl/entities/ShaclShape.java b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/shacl/entities/ShaclShape.java
similarity index 100%
rename from ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/shacl/entities/ShaclShape.java
rename to ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/shacl/entities/ShaclShape.java
diff --git a/ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/shacl/repository/ShaclShapeRepository.java b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/shacl/repository/ShaclShapeRepository.java
similarity index 100%
rename from ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/shacl/repository/ShaclShapeRepository.java
rename to ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/shacl/repository/ShaclShapeRepository.java
diff --git a/ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/shacl/services/ShaclShapeService.java b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/shacl/services/ShaclShapeService.java
similarity index 100%
rename from ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/shacl/services/ShaclShapeService.java
rename to ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/shacl/services/ShaclShapeService.java
diff --git a/ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/shacl/services/ShaclShapeServiceImpl.java b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/shacl/services/ShaclShapeServiceImpl.java
similarity index 100%
rename from ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/shacl/services/ShaclShapeServiceImpl.java
rename to ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/shacl/services/ShaclShapeServiceImpl.java
diff --git a/ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/DcatShaclValidator.java b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/DcatShaclValidator.java
similarity index 100%
rename from ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/DcatShaclValidator.java
rename to ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/DcatShaclValidator.java
diff --git a/ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/ModelValidator.java b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/ModelValidator.java
similarity index 100%
rename from ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/ModelValidator.java
rename to ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/ModelValidator.java
diff --git a/ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/ShaclValidator.java b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/ShaclValidator.java
similarity index 100%
rename from ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/ShaclValidator.java
rename to ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/ShaclValidator.java
diff --git a/ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/ValidatorsConfig.java b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/ValidatorsConfig.java
similarity index 100%
rename from ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/ValidatorsConfig.java
rename to ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/ValidatorsConfig.java
diff --git a/ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/dcat/DcatCatalogValidator.java b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/dcat/DcatCatalogValidator.java
similarity index 100%
rename from ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/dcat/DcatCatalogValidator.java
rename to ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/dcat/DcatCatalogValidator.java
diff --git a/ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/dcat/DcatDatasetValidator.java b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/dcat/DcatDatasetValidator.java
similarity index 100%
rename from ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/dcat/DcatDatasetValidator.java
rename to ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/dcat/DcatDatasetValidator.java
diff --git a/ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/dcat/DcatNodeValidator.java b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/dcat/DcatNodeValidator.java
similarity index 100%
rename from ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/dcat/DcatNodeValidator.java
rename to ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/dcat/DcatNodeValidator.java
diff --git a/ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/dcat/DcatValidator.java b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/dcat/DcatValidator.java
similarity index 100%
rename from ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/dcat/DcatValidator.java
rename to ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/dcat/DcatValidator.java
diff --git a/ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/dcat/DcatViewValidator.java b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/dcat/DcatViewValidator.java
similarity index 100%
rename from ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/dcat/DcatViewValidator.java
rename to ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/dcat/DcatViewValidator.java
diff --git a/ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/dcat/blanknodevalidators/DcatBlankNodeValidator.java b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/dcat/blanknodevalidators/DcatBlankNodeValidator.java
similarity index 100%
rename from ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/dcat/blanknodevalidators/DcatBlankNodeValidator.java
rename to ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/dcat/blanknodevalidators/DcatBlankNodeValidator.java
diff --git a/ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/dcat/cannotcontainvalidators/CannotContainCatalogValidator.java b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/dcat/cannotcontainvalidators/CannotContainCatalogValidator.java
similarity index 100%
rename from ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/dcat/cannotcontainvalidators/CannotContainCatalogValidator.java
rename to ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/dcat/cannotcontainvalidators/CannotContainCatalogValidator.java
diff --git a/ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/dcat/cannotcontainvalidators/CannotContainDatasetValidator.java b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/dcat/cannotcontainvalidators/CannotContainDatasetValidator.java
similarity index 100%
rename from ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/dcat/cannotcontainvalidators/CannotContainDatasetValidator.java
rename to ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/dcat/cannotcontainvalidators/CannotContainDatasetValidator.java
diff --git a/ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/dcat/cannotcontainvalidators/CannotContainRule.java b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/dcat/cannotcontainvalidators/CannotContainRule.java
similarity index 100%
rename from ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/dcat/cannotcontainvalidators/CannotContainRule.java
rename to ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/dcat/cannotcontainvalidators/CannotContainRule.java
diff --git a/ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/dcat/cannotcontainvalidators/CannotContainServiceValidator.java b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/dcat/cannotcontainvalidators/CannotContainServiceValidator.java
similarity index 100%
rename from ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/dcat/cannotcontainvalidators/CannotContainServiceValidator.java
rename to ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/validation/dcat/cannotcontainvalidators/CannotContainServiceValidator.java
diff --git a/ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/view/exception/DuplicateRetentionException.java b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/view/exception/DuplicateRetentionException.java
similarity index 100%
rename from ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/view/exception/DuplicateRetentionException.java
rename to ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/view/exception/DuplicateRetentionException.java
diff --git a/ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/view/exception/ModelToViewConverterException.java b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/view/exception/ModelToViewConverterException.java
similarity index 100%
rename from ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/view/exception/ModelToViewConverterException.java
rename to ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/view/exception/ModelToViewConverterException.java
diff --git a/ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/view/repository/DcatViewRepository.java b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/view/repository/DcatViewRepository.java
similarity index 100%
rename from ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/view/repository/DcatViewRepository.java
rename to ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/view/repository/DcatViewRepository.java
diff --git a/ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/view/repository/ViewRepository.java b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/view/repository/ViewRepository.java
similarity index 100%
rename from ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/view/repository/ViewRepository.java
rename to ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/view/repository/ViewRepository.java
diff --git a/ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/view/service/ConfigFilterPredicate.java b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/view/service/ConfigFilterPredicate.java
similarity index 100%
rename from ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/view/service/ConfigFilterPredicate.java
rename to ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/view/service/ConfigFilterPredicate.java
diff --git a/ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/view/service/DcatViewService.java b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/view/service/DcatViewService.java
similarity index 100%
rename from ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/view/service/DcatViewService.java
rename to ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/view/service/DcatViewService.java
diff --git a/ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/view/service/DcatViewServiceImpl.java b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/view/service/DcatViewServiceImpl.java
similarity index 100%
rename from ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/view/service/DcatViewServiceImpl.java
rename to ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/view/service/DcatViewServiceImpl.java
diff --git a/ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/view/service/FragmentationConfigCreationFunction.java b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/view/service/FragmentationConfigCreationFunction.java
similarity index 84%
rename from ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/view/service/FragmentationConfigCreationFunction.java
rename to ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/view/service/FragmentationConfigCreationFunction.java
index 93893ff244..989620d924 100644
--- a/ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/view/service/FragmentationConfigCreationFunction.java
+++ b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/view/service/FragmentationConfigCreationFunction.java
@@ -1,6 +1,7 @@
package be.vlaanderen.informatievlaanderen.ldes.server.admin.domain.view.service;
import be.vlaanderen.informatievlaanderen.ldes.server.admin.domain.view.exception.ModelToViewConverterException;
+import be.vlaanderen.informatievlaanderen.ldes.server.domain.constants.RdfConstants;
import be.vlaanderen.informatievlaanderen.ldes.server.domain.converter.RdfModelConverter;
import be.vlaanderen.informatievlaanderen.ldes.server.domain.model.FragmentationConfig;
import org.apache.jena.rdf.model.ModelFactory;
@@ -13,9 +14,6 @@
import java.util.function.Function;
import java.util.stream.Collectors;
-import static be.vlaanderen.informatievlaanderen.ldes.server.domain.constants.RdfConstants.FRAGMENTATION_TYPE;
-import static be.vlaanderen.informatievlaanderen.ldes.server.domain.constants.RdfConstants.RDF_SYNTAX_TYPE;
-
public class FragmentationConfigCreationFunction implements Function {
public static final String PAGINATION_FRAGMENTATION = "PaginationFragmentation";
@@ -28,7 +26,7 @@ public FragmentationConfig apply(RDFNode rdfNode) {
.listStatements(rdfNode.asResource(), null, (RDFNode) null)
.toList();
List fragmentationStatements = statements.stream()
- .filter(statement -> statement.getPredicate().equals(RDF_SYNTAX_TYPE)).toList();
+ .filter(statement -> statement.getPredicate().equals(RdfConstants.RDF_SYNTAX_TYPE)).toList();
validateFragmentationStatements(fragmentationStatements);
Map fragmentationPropertiesMap = extractFragmentationProperties(statements,
fragmentationStatements);
@@ -42,9 +40,9 @@ public FragmentationConfig apply(RDFNode rdfNode) {
private void validateFragmentationStatements(List fragmentationStatements) {
if (fragmentationStatements.size() != 1) {
throw new IllegalArgumentException(
- "Cannot Create Fragmentation Config. Expected exactly 1 " + FRAGMENTATION_TYPE
- + " statement.\n Found no or multiple statements in :\n"
- + RdfModelConverter.toString(ModelFactory.createDefaultModel().add(fragmentationStatements),
+ "Cannot Create Fragmentation Config. Expected exactly 1 " + RdfConstants.FRAGMENTATION_TYPE
+ + " statement.\n Found no or multiple statements in :\n"
+ + RdfModelConverter.toString(ModelFactory.createDefaultModel().add(fragmentationStatements),
Lang.TURTLE));
}
}
@@ -65,7 +63,7 @@ private Map extractFragmentationProperties(List state
private String computeFragmentationName(List statements) {
final String fragmentationName = statements.stream()
- .filter(statement -> statement.getPredicate().equals(RDF_SYNTAX_TYPE))
+ .filter(statement -> statement.getPredicate().equals(RdfConstants.RDF_SYNTAX_TYPE))
.findFirst()
.orElseThrow(() -> new ModelToViewConverterException("Unable to find fragmentation type"))
.getResource()
diff --git a/ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/view/service/ViewService.java b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/view/service/ViewService.java
similarity index 100%
rename from ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/view/service/ViewService.java
rename to ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/view/service/ViewService.java
diff --git a/ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/view/service/ViewServiceImpl.java b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/view/service/ViewServiceImpl.java
similarity index 100%
rename from ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/view/service/ViewServiceImpl.java
rename to ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/view/service/ViewServiceImpl.java
diff --git a/ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/view/service/ViewValidator.java b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/view/service/ViewValidator.java
similarity index 100%
rename from ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/view/service/ViewValidator.java
rename to ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/domain/view/service/ViewValidator.java
diff --git a/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/spi/EventStreamReader.java b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/spi/EventStreamReader.java
new file mode 100644
index 0000000000..ea35f30d23
--- /dev/null
+++ b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/spi/EventStreamReader.java
@@ -0,0 +1,115 @@
+package be.vlaanderen.informatievlaanderen.ldes.server.admin.spi;
+
+import be.vlaanderen.informatievlaanderen.ldes.server.admin.domain.eventstream.exceptions.MissingStatementException;
+import be.vlaanderen.informatievlaanderen.ldes.server.domain.model.ViewSpecification;
+import org.apache.jena.rdf.model.*;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Optional;
+
+import static be.vlaanderen.informatievlaanderen.ldes.server.domain.constants.RdfConstants.*;
+import static org.apache.jena.rdf.model.ModelFactory.createDefaultModel;
+import static org.apache.jena.rdf.model.ResourceFactory.createProperty;
+import static org.apache.jena.rdf.model.ResourceFactory.createResource;
+
+@Component
+public class EventStreamReader {
+ private final ViewSpecificationConverter viewSpecificationConverter;
+ private final RetentionModelExtractor retentionModelExtractor;
+
+ public EventStreamReader(ViewSpecificationConverter viewSpecificationConverter, RetentionModelExtractor retentionModelExtractor) {
+ this.viewSpecificationConverter = viewSpecificationConverter;
+ this.retentionModelExtractor = retentionModelExtractor;
+ }
+
+ public EventStreamTO read(Model model) {
+ final String collection = getIdentifier(model, createResource(EVENT_STREAM_TYPE)).map(Resource::getLocalName)
+ .orElseThrow(() -> new MissingStatementException("Not blank node with type " + EVENT_STREAM_TYPE));
+ return new EventStreamTO.Builder()
+ .withCollection(collection)
+ .withTimestampPath(getResource(model, LDES_TIMESTAMP_PATH).orElse(null))
+ .withVersionOfPath(getResource(model, LDES_VERSION_OF).orElse(null))
+ .withVersionDelimiter(getVersionDelimiter(model))
+ .withSkolemizationDomain(getResource(model, LDES_SKOLEMIZATION_DOMAIN).orElse(null))
+ .withViews(getViews(model, collection))
+ .withShacl(getShaclFromModel(model))
+ .withEventSourceRetentionPolicies(getEventSourceRetentionPolicies(model))
+ .build();
+ }
+
+ private Optional getIdentifier(Model model, Resource object) {
+ Optional stmtOptional = model.listStatements(null, RDF_SYNTAX_TYPE, object).nextOptional();
+ return stmtOptional.map(Statement::getSubject);
+ }
+
+ private Optional getResource(Model model, Property predicate) {
+ return model.listObjectsOfProperty(predicate)
+ .filterKeep(RDFNode::isResource)
+ .nextOptional()
+ .map(RDFNode::toString);
+ }
+
+ private String getVersionDelimiter(Model model) {
+ final boolean versionCreationEnabled = model.listStatements(null, LDES_CREATE_VERSIONS, (Resource) null)
+ .nextOptional()
+ .map(statement -> statement.getLiteral().getBoolean())
+ .orElse(false);
+
+ if(!versionCreationEnabled) {
+ return null;
+ }
+ return model.listObjectsOfProperty(LDES_VERSION_DELIMITER)
+ .filterKeep(RDFNode::isLiteral)
+ .nextOptional()
+ .map(node -> node.asLiteral().getString())
+ .orElse("/");
+ }
+
+ private List getViews(Model model, String collection) {
+ return model.listStatements(null, createProperty(TREE_VIEW_DESCRIPTION), (Resource) null).toList().stream()
+ .map(statement -> {
+ List statements = retrieveAllStatements(statement.getObject().asResource(), model);
+ statements.add(statement);
+ return statements;
+ })
+ .map(statements -> createDefaultModel().add(statements))
+ .map(viewModel -> viewSpecificationConverter.viewFromModel(viewModel, collection))
+ .toList();
+ }
+
+ private List getEventSourceRetentionPolicies(Model model) {
+ Optional eventSourceStatement = model.listStatements(null, LDES_EVENT_SOURCE, (RDFNode) null).nextOptional();
+ if (eventSourceStatement.isEmpty()) {
+ return List.of();
+ } else {
+ Model eventSourceModel = ModelFactory.createDefaultModel().add(retrieveAllStatements(eventSourceStatement.get().getResource(), model));
+ return retentionModelExtractor.extractRetentionStatements(eventSourceModel);
+ }
+ }
+
+ private Model getShaclFromModel(Model model) {
+ final Model shaclModel = ModelFactory.createDefaultModel();
+ model.listStatements(null, TREE_SHAPE, (Resource) null)
+ .nextOptional()
+ .ifPresent(statement -> shaclModel.add(retrieveAllStatements(statement.getResource(), model)));
+ return shaclModel;
+ }
+
+ private List retrieveAllStatements(Resource resource, Model model) {
+ StmtIterator iterator = model.listStatements(resource, null, (Resource) null);
+ List statements = new ArrayList<>();
+
+ while (iterator.hasNext()) {
+ Statement statement = iterator.nextStatement();
+ statements.add(statement);
+
+ if (statement.getObject().isResource()) {
+ statements.addAll(retrieveAllStatements(statement.getResource(), model));
+ }
+ }
+
+ return statements;
+ }
+}
diff --git a/ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/spi/EventStreamServiceSpi.java b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/spi/EventStreamServiceSpi.java
similarity index 100%
rename from ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/spi/EventStreamServiceSpi.java
rename to ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/spi/EventStreamServiceSpi.java
diff --git a/ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/spi/EventStreamTO.java b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/spi/EventStreamTO.java
similarity index 84%
rename from ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/spi/EventStreamTO.java
rename to ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/spi/EventStreamTO.java
index d06c3859e0..739364a162 100644
--- a/ldes-server-admin/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/spi/EventStreamTO.java
+++ b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/spi/EventStreamTO.java
@@ -3,6 +3,7 @@
import be.vlaanderen.informatievlaanderen.ldes.server.admin.domain.dcat.dcatdataset.entities.DcatDataset;
import be.vlaanderen.informatievlaanderen.ldes.server.admin.domain.eventstream.exceptions.InvalidSkolemisationDomainException;
import be.vlaanderen.informatievlaanderen.ldes.server.domain.model.EventStream;
+import be.vlaanderen.informatievlaanderen.ldes.server.domain.model.VersionCreationProperties;
import be.vlaanderen.informatievlaanderen.ldes.server.domain.model.ViewSpecification;
import org.apache.jena.rdf.model.Model;
@@ -16,7 +17,7 @@ public class EventStreamTO {
private final String collection;
private final String timestampPath;
private final String versionOfPath;
- private final boolean versionCreationEnabled;
+ private final VersionCreationProperties versionCreationProperties;
private final boolean closed;
private final String skolemizationDomain;
private final List views;
@@ -28,7 +29,7 @@ private EventStreamTO(Builder builder) {
collection = builder.collection;
timestampPath = builder.timestampPath;
versionOfPath = builder.versionOfPath;
- versionCreationEnabled = builder.versionCreationEnabled;
+ versionCreationProperties = builder.versionCreationProperties;
closed = builder.closed;
skolemizationDomain = builder.skolemizationDomain;
views = builder.views;
@@ -49,8 +50,12 @@ public String getVersionOfPath() {
return versionOfPath;
}
+ public String getVersionDelimiter() {
+ return versionCreationProperties.getVersionDelimiter();
+ }
+
public boolean isVersionCreationEnabled() {
- return versionCreationEnabled;
+ return versionCreationProperties.isVersionCreationEnabled();
}
public boolean isClosed() {
@@ -87,7 +92,7 @@ public boolean equals(Object o) {
return Objects.equals(collection, that.collection) && Objects.equals(timestampPath, that.timestampPath)
&& Objects.equals(versionOfPath, that.versionOfPath)
&& shacl.isIsomorphicWith(that.shacl)
- && versionCreationEnabled == that.versionCreationEnabled
+ && Objects.equals(versionCreationProperties, that.versionCreationProperties)
&& new HashSet<>(views).containsAll(that.views)
&& new HashSet<>(that.views).containsAll(views)
&& Objects.equals(dcatDataset, that.dcatDataset);
@@ -95,11 +100,11 @@ public boolean equals(Object o) {
@Override
public int hashCode() {
- return Objects.hash(collection, timestampPath, versionOfPath, versionCreationEnabled, views, shacl, dcatDataset);
+ return Objects.hash(collection, timestampPath, versionOfPath, versionCreationProperties, views, shacl, dcatDataset);
}
public EventStream extractEventStreamProperties() {
- return new EventStream(collection, timestampPath, versionOfPath, versionCreationEnabled, skolemizationDomain);
+ return new EventStream(collection, timestampPath, versionOfPath, versionCreationProperties, skolemizationDomain);
}
@@ -108,7 +113,7 @@ public static final class Builder {
private String collection;
private String timestampPath;
private String versionOfPath;
- private boolean versionCreationEnabled = false;
+ private VersionCreationProperties versionCreationProperties = VersionCreationProperties.disabled();
private boolean closed = false;
private String skolemizationDomain;
private List views = List.of();
@@ -120,7 +125,7 @@ public Builder withEventStream(EventStream eventStream) {
collection = eventStream.getCollection();
timestampPath = eventStream.getTimestampPath();
versionOfPath = eventStream.getVersionOfPath();
- versionCreationEnabled = eventStream.isVersionCreationEnabled();
+ versionCreationProperties = eventStream.getVersionCreationProperties();
closed = eventStream.isClosed();
skolemizationDomain = eventStream.getSkolemizationDomain().orElse(null);
return this;
@@ -141,8 +146,8 @@ public Builder withVersionOfPath(String val) {
return this;
}
- public Builder withVersionCreationEnabled(boolean val) {
- versionCreationEnabled = val;
+ public Builder withVersionDelimiter(String val) {
+ versionCreationProperties = VersionCreationProperties.ofNullableDelimiter(val);
return this;
}
diff --git a/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/spi/EventStreamWriter.java b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/spi/EventStreamWriter.java
new file mode 100644
index 0000000000..e3cc745ada
--- /dev/null
+++ b/ldes-server-admin/ldes-server-admin-common/src/main/java/be/vlaanderen/informatievlaanderen/ldes/server/admin/spi/EventStreamWriter.java
@@ -0,0 +1,134 @@
+package be.vlaanderen.informatievlaanderen.ldes.server.admin.spi;
+
+import be.vlaanderen.informatievlaanderen.ldes.server.domain.converter.PrefixAdder;
+import be.vlaanderen.informatievlaanderen.ldes.server.domain.model.ViewSpecification;
+import be.vlaanderen.informatievlaanderen.ldes.server.domain.rest.PrefixConstructor;
+import org.apache.jena.rdf.model.Model;
+import org.apache.jena.rdf.model.Resource;
+import org.apache.jena.rdf.model.Statement;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Optional;
+
+import static be.vlaanderen.informatievlaanderen.ldes.server.domain.constants.RdfConstants.*;
+import static be.vlaanderen.informatievlaanderen.ldes.server.domain.constants.RdfConstants.RDF_SYNTAX_TYPE;
+import static org.apache.commons.lang3.StringUtils.isNotBlank;
+import static org.apache.jena.rdf.model.ModelFactory.createDefaultModel;
+import static org.apache.jena.rdf.model.ResourceFactory.*;
+import static org.apache.jena.rdf.model.ResourceFactory.createResource;
+
+@Component
+public class EventStreamWriter {
+ private static final String DCAT_PREFIX = "http://www.w3.org/ns/dcat#";
+ private static final String DATASET_TYPE = DCAT_PREFIX + "Dataset";
+
+ private final ViewSpecificationConverter viewSpecificationConverter;
+ private final PrefixAdder prefixAdder;
+ private final PrefixConstructor prefixConstructor;
+
+ public EventStreamWriter(ViewSpecificationConverter viewSpecificationConverter, PrefixAdder prefixAdder, PrefixConstructor prefixConstructor) {
+ this.viewSpecificationConverter = viewSpecificationConverter;
+ this.prefixAdder = prefixAdder;
+ this.prefixConstructor = prefixConstructor;
+ }
+
+ public Model write(EventStreamTO eventStreamTO) {
+ String prefix = prefixConstructor.buildPrefix();
+ final Resource subject = getIRIFromCollectionName(eventStreamTO.getCollection(), prefix);
+ final Statement collectionNameStmt = createStatement(subject, RDF_SYNTAX_TYPE, createResource(EVENT_STREAM_TYPE));
+ final Statement dcatTypeStmt = createStatement(subject, RDF_SYNTAX_TYPE, createResource(DATASET_TYPE));
+ final Model dataset = eventStreamTO.getDcatDataset().getModelWithIdentity(prefix);
+ final List eventSourceStatements = getEventSourceStatements(eventStreamTO.getEventSourceRetentionPolicies(), subject);
+
+ Model eventStreamModel = createDefaultModel()
+ .add(collectionNameStmt)
+ .add(dcatTypeStmt)
+ .add(getVersionOfStatements(subject, eventStreamTO))
+ .add(getTimestampPathStatements(subject, eventStreamTO))
+ .add(getCreateVersionsStatements(subject, eventStreamTO))
+ .add(eventStreamTO.getShacl())
+ .add(getViewReferenceStatements(eventStreamTO.getViews(), subject, prefix))
+ .add(getViewStatements(eventStreamTO.getViews()))
+ .add(eventSourceStatements)
+ .add(dataset);
+
+ Statement shaclStatement = getShaclReferenceStatement(eventStreamTO.getShacl(), subject);
+
+ eventStreamModel.add(shaclStatement);
+
+ return prefixAdder.addPrefixesToModel(eventStreamModel);
+ }
+
+ private List getTimestampPathStatements(Resource subject, EventStreamTO eventStreamTO) {
+ if (isNotBlank(eventStreamTO.getVersionOfPath())) {
+ return List.of(createStatement(subject, LDES_TIMESTAMP_PATH,
+ createProperty(eventStreamTO.getTimestampPath())));
+ } else {
+ return List.of();
+ }
+ }
+
+ private List getVersionOfStatements(Resource subject, EventStreamTO eventStreamTO) {
+ if (isNotBlank(eventStreamTO.getVersionOfPath())) {
+ return List.of(createStatement(subject, LDES_VERSION_OF,
+ createProperty(eventStreamTO.getVersionOfPath())));
+ } else {
+ return List.of();
+ }
+ }
+
+ private List getCreateVersionsStatements(Resource subject, EventStreamTO eventStreamTO) {
+ return List.of(
+ createStatement(subject, LDES_CREATE_VERSIONS, createTypedLiteral(eventStreamTO.isVersionCreationEnabled()))
+ );
+ }
+
+ private List getViewReferenceStatements(List views, Resource subject, String prefix) {
+ return views.stream()
+ .map(ViewSpecification::getName)
+ .map(viewName -> createStatement(subject, createProperty(VIEW),
+ viewSpecificationConverter.getIRIFromViewName(viewName, prefix)))
+ .toList();
+ }
+
+ private List getViewStatements(List views) {
+ return views.stream()
+ .map(viewSpecificationConverter::modelFromView)
+ .flatMap(model -> model.listStatements().toList().stream())
+ .toList();
+ }
+
+ private Statement getShaclReferenceStatement(Model shacl, Resource subject) {
+ return getIdentifier(shacl, createResource(NODE_SHAPE_TYPE))
+ .map(resource -> createStatement(subject, TREE_SHAPE, resource))
+ .orElse(createStatement(subject, TREE_MEMBER, createResource()));
+ }
+
+ private List