diff --git a/.github/release.yml b/.github/release.yml new file mode 100644 index 00000000..1f90e220 --- /dev/null +++ b/.github/release.yml @@ -0,0 +1,26 @@ +# SPDX-FileCopyrightText: 2021 Alliander N.V. +# +# SPDX-License-Identifier: Apache-2.0 + +changelog: + exclude: + labels: + - wontfix + - duplicate + - invalid + categories: + - title: New Features + labels: + - enhancement + - title: Bugfixes + labels: + - bug + - title: Tooling changes + labels: + - tooling + - title: Dependency updates + labels: + - dependencies + - title: Other Changes + labels: + - "*" diff --git a/.github/workflows/automate-projects.yml b/.github/workflows/automate-projects.yml index d1692879..6a91c3b6 100644 --- a/.github/workflows/automate-projects.yml +++ b/.github/workflows/automate-projects.yml @@ -4,11 +4,13 @@ name: Add issues and pull request to project boards -on: [ issues, pull_request ] +on: [ issues, pull_request, pull_request_target ] jobs: github-actions-automate-projects: runs-on: ubuntu-latest + + if: ${{ (github.event_name != 'pull_request_target' && github.actor != 'dependabot[bot]') || (github.actor == 'dependabot[bot]' && github.event_name == 'pull_request_target') }} steps: - name: add-new-issues-to-repository-based-project-column uses: docker://takanabe/github-actions-automate-projects:v0.0.1 @@ -19,7 +21,7 @@ jobs: GITHUB_PROJECT_COLUMN_NAME: To do - name: add-new-pull-request-to-repository-based-project-column uses: docker://takanabe/github-actions-automate-projects:v0.0.1 - if: github.event_name == 'pull_request' && github.event.action == 'opened' + if: (github.event_name == 'pull_request' || github.event_name == 'pull_request_target') && github.event.action == 'opened' env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_PROJECT_URL: https://github.com/com-pas/compas-scl-data-service/projects/1 @@ -33,7 +35,7 @@ jobs: GITHUB_PROJECT_COLUMN_NAME: To do - name: add-new-pull-request-to-organization-based-project-column uses: docker://takanabe/github-actions-automate-projects:v0.0.1 - if: github.event_name == 'pull_request' && github.event.action == 'opened' + if: (github.event_name == 'pull_request' || github.event_name == 'pull_request_target') && github.event.action == 'opened' env: GITHUB_TOKEN: ${{ secrets.ORG_GITHUB_ACTION_SECRET }} GITHUB_PROJECT_URL: https://github.com/orgs/com-pas/projects/2 diff --git a/.github/workflows/build-project.yml b/.github/workflows/build-project.yml index a4380cd9..0a7b0ed2 100644 --- a/.github/workflows/build-project.yml +++ b/.github/workflows/build-project.yml @@ -38,7 +38,7 @@ jobs: restore-keys: ${{ runner.os }}-m2 - name: Set up JDK 1.11 - uses: actions/setup-java@v2.4.0 + uses: actions/setup-java@v2.5.0 with: distribution: 'zulu' java-version: '11' diff --git a/.github/workflows/release-project.yml b/.github/workflows/release-project.yml index 563f0722..345ccd00 100644 --- a/.github/workflows/release-project.yml +++ b/.github/workflows/release-project.yml @@ -43,7 +43,7 @@ jobs: # Extra the tagname form the git reference, value of GITHUB_REF will be something like refs/tags/. run: echo "##[set-output name=tagname;]$(echo ${GITHUB_REF##*/})" - name: Set up JDK 1.11 - uses: actions/setup-java@v2.4.0 + uses: actions/setup-java@v2.5.0 with: distribution: 'zulu' java-version: '11' diff --git a/.github/workflows/sonarcloud-analysis.yml b/.github/workflows/sonarcloud-analysis.yml index af316f67..ab42eb39 100644 --- a/.github/workflows/sonarcloud-analysis.yml +++ b/.github/workflows/sonarcloud-analysis.yml @@ -12,6 +12,10 @@ on: branches: - 'main' - 'develop' + pull_request_target: + branches: + - 'main' + - 'develop' jobs: sonar-check: @@ -19,6 +23,7 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 15 + if: ${{ (github.event_name != 'pull_request_target' && github.actor != 'dependabot[bot]') || (github.actor == 'dependabot[bot]' && github.event_name == 'pull_request_target') }} steps: - name: Checkout uses: actions/checkout@v2 @@ -26,7 +31,7 @@ jobs: fetch-depth: 0 - name: Set up JDK 11 - uses: actions/setup-java@v2.4.0 + uses: actions/setup-java@v2.5.0 with: distribution: 'zulu' java-version: '11' @@ -58,4 +63,5 @@ jobs: -Dsonar.projectKey=com-pas_compas-scl-data-service \ -Dsonar.organization=com-pas \ -Dsonar.host.url=https://sonarcloud.io \ + -Dsonar.pullrequest.key=${{ github.event.pull_request.number }} \ clean verify org.sonarsource.scanner.maven:sonar-maven-plugin:sonar diff --git a/README.md b/README.md index 1c7abfe7..9db9c7d9 100644 --- a/README.md +++ b/README.md @@ -83,4 +83,8 @@ configured as needed. - SED_DELETE - SED_READ - SED_UPDATE +- STD_CREATE +- STD_DELETE +- STD_READ +- STD_UPDATE diff --git a/app/pom.xml b/app/pom.xml index a4db47d2..f47ea107 100644 --- a/app/pom.xml +++ b/app/pom.xml @@ -44,6 +44,10 @@ SPDX-License-Identifier: Apache-2.0 org.lfenergy.compas.core commons + + org.lfenergy.compas.core + scl-extension + org.lfenergy.compas.core jaxrs-commons diff --git a/app/src/main/java/org/lfenergy/compas/scl/data/rest/v1/CompasCommonResource.java b/app/src/main/java/org/lfenergy/compas/scl/data/rest/v1/CompasCommonResource.java index 2b998ef0..e26f86f4 100644 --- a/app/src/main/java/org/lfenergy/compas/scl/data/rest/v1/CompasCommonResource.java +++ b/app/src/main/java/org/lfenergy/compas/scl/data/rest/v1/CompasCommonResource.java @@ -5,11 +5,11 @@ import io.quarkus.security.Authenticated; import org.eclipse.microprofile.jwt.JsonWebToken; -import org.lfenergy.compas.scl.data.model.SclType; import org.lfenergy.compas.scl.data.rest.UserInfoProperties; import org.lfenergy.compas.scl.data.rest.v1.model.Type; import org.lfenergy.compas.scl.data.rest.v1.model.TypeListResponse; import org.lfenergy.compas.scl.data.rest.v1.model.UserInfoResponse; +import org.lfenergy.compas.scl.extensions.model.SclFileType; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -49,10 +49,10 @@ public TypeListResponse list(@HeaderParam("Authorization") String authHeader) { var response = new TypeListResponse(); response.setTypes( - Arrays.stream(SclType.values()) + Arrays.stream(SclFileType.values()) // Filter on the type the user has read rights. - .filter(sclType -> roles.contains(sclType.name() + "_" + READ_ROLE)) - .map(sclType -> new Type(sclType.name(), sclType.getDescription())) + .filter(sclFileType -> roles.contains(sclFileType.name() + "_" + READ_ROLE)) + .map(sclFileType -> new Type(sclFileType.name(), sclFileType.getDescription())) .sorted(Comparator.comparing(Type::getDescription)) .collect(Collectors.toList())); return response; diff --git a/app/src/main/java/org/lfenergy/compas/scl/data/rest/v1/CompasSclDataResource.java b/app/src/main/java/org/lfenergy/compas/scl/data/rest/v1/CompasSclDataResource.java index 234c8547..1cf3c31e 100644 --- a/app/src/main/java/org/lfenergy/compas/scl/data/rest/v1/CompasSclDataResource.java +++ b/app/src/main/java/org/lfenergy/compas/scl/data/rest/v1/CompasSclDataResource.java @@ -5,11 +5,11 @@ import io.quarkus.security.Authenticated; import org.eclipse.microprofile.jwt.JsonWebToken; -import org.lfenergy.compas.scl.data.model.SclType; import org.lfenergy.compas.scl.data.model.Version; import org.lfenergy.compas.scl.data.rest.UserInfoProperties; import org.lfenergy.compas.scl.data.rest.v1.model.*; import org.lfenergy.compas.scl.data.service.CompasSclDataService; +import org.lfenergy.compas.scl.extensions.model.SclFileType; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -44,7 +44,7 @@ public CompasSclDataResource(CompasSclDataService compasSclDataService) { @POST @Consumes(MediaType.APPLICATION_XML) @Produces(MediaType.APPLICATION_XML) - public CreateResponse create(@PathParam(TYPE_PATH_PARAM) SclType type, + public CreateResponse create(@PathParam(TYPE_PATH_PARAM) SclFileType type, @Valid CreateRequest request) { String who = jsonWebToken.getClaim(userInfoProperties.who()); LOGGER.trace("Username used for Who {}", who); @@ -58,7 +58,7 @@ public CreateResponse create(@PathParam(TYPE_PATH_PARAM) SclType type, @GET @Path("/list") @Produces(MediaType.APPLICATION_XML) - public ListResponse list(@PathParam(TYPE_PATH_PARAM) SclType type) { + public ListResponse list(@PathParam(TYPE_PATH_PARAM) SclFileType type) { var response = new ListResponse(); response.setItems(compasSclDataService.list(type)); return response; @@ -67,7 +67,7 @@ public ListResponse list(@PathParam(TYPE_PATH_PARAM) SclType type) { @GET @Path("/{" + ID_PATH_PARAM + "}/versions") @Produces(MediaType.APPLICATION_XML) - public VersionsResponse listVersionsByUUID(@PathParam(TYPE_PATH_PARAM) SclType type, + public VersionsResponse listVersionsByUUID(@PathParam(TYPE_PATH_PARAM) SclFileType type, @PathParam(ID_PATH_PARAM) UUID id) { var response = new VersionsResponse(); response.setItems(compasSclDataService.listVersionsByUUID(type, id)); @@ -77,7 +77,7 @@ public VersionsResponse listVersionsByUUID(@PathParam(TYPE_PATH_PARAM) SclType t @GET @Path("/{" + ID_PATH_PARAM + "}") @Produces(MediaType.APPLICATION_XML) - public GetResponse findByUUID(@PathParam(TYPE_PATH_PARAM) SclType type, + public GetResponse findByUUID(@PathParam(TYPE_PATH_PARAM) SclFileType type, @PathParam(ID_PATH_PARAM) UUID id) { var response = new GetResponse(); response.setSclData(compasSclDataService.findByUUID(type, id)); @@ -87,7 +87,7 @@ public GetResponse findByUUID(@PathParam(TYPE_PATH_PARAM) SclType type, @GET @Path("/{" + ID_PATH_PARAM + "}/{" + VERSION_PATH_PARAM + "}") @Produces(MediaType.APPLICATION_XML) - public GetResponse findByUUIDAndVersion(@PathParam(TYPE_PATH_PARAM) SclType type, + public GetResponse findByUUIDAndVersion(@PathParam(TYPE_PATH_PARAM) SclFileType type, @PathParam(ID_PATH_PARAM) UUID id, @PathParam(VERSION_PATH_PARAM) Version version) { var response = new GetResponse(); @@ -99,7 +99,7 @@ public GetResponse findByUUIDAndVersion(@PathParam(TYPE_PATH_PARAM) SclType type @Path("/{" + ID_PATH_PARAM + "}") @Consumes(MediaType.APPLICATION_XML) @Produces(MediaType.APPLICATION_XML) - public UpdateResponse update(@PathParam(TYPE_PATH_PARAM) SclType type, + public UpdateResponse update(@PathParam(TYPE_PATH_PARAM) SclFileType type, @PathParam(ID_PATH_PARAM) UUID id, @Valid UpdateRequest request) { String who = jsonWebToken.getClaim(userInfoProperties.who()); @@ -114,7 +114,7 @@ public UpdateResponse update(@PathParam(TYPE_PATH_PARAM) SclType type, @DELETE @Path("/{" + ID_PATH_PARAM + "}") @Produces(MediaType.APPLICATION_XML) - public void deleteAll(@PathParam(TYPE_PATH_PARAM) SclType type, + public void deleteAll(@PathParam(TYPE_PATH_PARAM) SclFileType type, @PathParam(ID_PATH_PARAM) UUID id) { compasSclDataService.delete(type, id); } @@ -122,7 +122,7 @@ public void deleteAll(@PathParam(TYPE_PATH_PARAM) SclType type, @DELETE @Path("/{" + ID_PATH_PARAM + "}/{" + VERSION_PATH_PARAM + "}") @Produces(MediaType.APPLICATION_XML) - public void deleteVersion(@PathParam(TYPE_PATH_PARAM) SclType type, + public void deleteVersion(@PathParam(TYPE_PATH_PARAM) SclFileType type, @PathParam(ID_PATH_PARAM) UUID id, @PathParam(VERSION_PATH_PARAM) Version version) { compasSclDataService.delete(type, id, version); diff --git a/app/src/main/resources/application.properties b/app/src/main/resources/application.properties index 7af0bc7a..0592d89c 100644 --- a/app/src/main/resources/application.properties +++ b/app/src/main/resources/application.properties @@ -157,3 +157,20 @@ quarkus.http.auth.policy.ISD_DELETE.roles-allowed=ISD_DELETE quarkus.http.auth.permission.ISD_DELETE_DELETE.paths=/compas-scl-data-service/scl/v1/ISD/* quarkus.http.auth.permission.ISD_DELETE_DELETE.policy=ISD_DELETE quarkus.http.auth.permission.ISD_DELETE_DELETE.methods=DELETE + +quarkus.http.auth.policy.STD_READ.roles-allowed=STD_READ +quarkus.http.auth.permission.STD_READ_GET.paths=/compas-scl-data-service/scl/v1/STD/* +quarkus.http.auth.permission.STD_READ_GET.policy=STD_READ +quarkus.http.auth.permission.STD_READ_GET.methods=GET +quarkus.http.auth.policy.STD_CREATE.roles-allowed=STD_CREATE +quarkus.http.auth.permission.STD_CREATE_POST.paths=/compas-scl-data-service/scl/v1/STD +quarkus.http.auth.permission.STD_CREATE_POST.policy=STD_CREATE +quarkus.http.auth.permission.STD_CREATE_POST.methods=POST +quarkus.http.auth.policy.STD_UPDATE.roles-allowed=STD_UPDATE +quarkus.http.auth.permission.STD_UPDATE_PUT.paths=/compas-scl-data-service/scl/v1/STD/* +quarkus.http.auth.permission.STD_UPDATE_PUT.policy=STD_UPDATE +quarkus.http.auth.permission.STD_UPDATE_PUT.methods=PUT +quarkus.http.auth.policy.STD_DELETE.roles-allowed=STD_DELETE +quarkus.http.auth.permission.STD_DELETE_DELETE.paths=/compas-scl-data-service/scl/v1/STD/* +quarkus.http.auth.permission.STD_DELETE_DELETE.policy=STD_DELETE +quarkus.http.auth.permission.STD_DELETE_DELETE.methods=DELETE diff --git a/app/src/test/java/org/lfenergy/compas/scl/data/rest/mock/CompasSclDataRepositoryMock.java b/app/src/test/java/org/lfenergy/compas/scl/data/rest/mock/CompasSclDataRepositoryMock.java index 3fbe240d..37eaf555 100644 --- a/app/src/test/java/org/lfenergy/compas/scl/data/rest/mock/CompasSclDataRepositoryMock.java +++ b/app/src/test/java/org/lfenergy/compas/scl/data/rest/mock/CompasSclDataRepositoryMock.java @@ -6,9 +6,9 @@ import io.quarkus.test.Mock; import org.lfenergy.compas.scl.data.model.Item; import org.lfenergy.compas.scl.data.model.SclMetaInfo; -import org.lfenergy.compas.scl.data.model.SclType; import org.lfenergy.compas.scl.data.model.Version; import org.lfenergy.compas.scl.data.repository.CompasSclDataRepository; +import org.lfenergy.compas.scl.extensions.model.SclFileType; import javax.enterprise.context.ApplicationScoped; import java.util.List; @@ -18,42 +18,42 @@ @ApplicationScoped public class CompasSclDataRepositoryMock implements CompasSclDataRepository { @Override - public List list(SclType type) { + public List list(SclFileType type) { throw new IllegalStateException("Mock method using Mockito. Only needed to startup."); } @Override - public List listVersionsByUUID(SclType type, UUID id) { + public List listVersionsByUUID(SclFileType type, UUID id) { throw new IllegalStateException("Mock method using Mockito. Only needed to startup."); } @Override - public String findByUUID(SclType type, UUID id) { + public String findByUUID(SclFileType type, UUID id) { throw new IllegalStateException("Mock method using Mockito. Only needed to startup."); } @Override - public SclMetaInfo findMetaInfoByUUID(SclType type, UUID id) { + public SclMetaInfo findMetaInfoByUUID(SclFileType type, UUID id) { throw new IllegalStateException("Mock method using Mockito. Only needed to startup."); } @Override - public String findByUUID(SclType type, UUID id, Version version) { + public String findByUUID(SclFileType type, UUID id, Version version) { throw new IllegalStateException("Mock method using Mockito. Only needed to startup."); } @Override - public void create(SclType type, UUID id, String name, String scl, Version version, String who) { + public void create(SclFileType type, UUID id, String name, String scl, Version version, String who) { throw new IllegalStateException("Mock method using Mockito. Only needed to startup."); } @Override - public void delete(SclType type, UUID id) { + public void delete(SclFileType type, UUID id) { throw new IllegalStateException("Mock method using Mockito. Only needed to startup."); } @Override - public void delete(SclType type, UUID id, Version version) { + public void delete(SclFileType type, UUID id, Version version) { throw new IllegalStateException("Mock method using Mockito. Only needed to startup."); } } diff --git a/app/src/test/java/org/lfenergy/compas/scl/data/rest/v1/CompasCommonResourceTest.java b/app/src/test/java/org/lfenergy/compas/scl/data/rest/v1/CompasCommonResourceTest.java index a409fae2..1d919a47 100644 --- a/app/src/test/java/org/lfenergy/compas/scl/data/rest/v1/CompasCommonResourceTest.java +++ b/app/src/test/java/org/lfenergy/compas/scl/data/rest/v1/CompasCommonResourceTest.java @@ -30,10 +30,10 @@ void list_WhenCalledWithMultipleReadRights_ThenMultipleItemResponseRetrieved() { var xmlPath = response.xmlPath(); // User has read rights for 2 types, so these types are returned. - var sclTypes = xmlPath.getList("TypeListResponse.Type.Code"); - assertEquals(2, sclTypes.size()); - assertEquals("IID", sclTypes.get(0)); - assertEquals("SCD", sclTypes.get(1)); + var sclFileTypes = xmlPath.getList("TypeListResponse.Type.Code"); + assertEquals(2, sclFileTypes.size()); + assertEquals("IID", sclFileTypes.get(0)); + assertEquals("SCD", sclFileTypes.get(1)); } @Test @@ -48,9 +48,9 @@ void list_WhenCalledWithOneReadRights_ThenOneItemResponseRetrieved() { var xmlPath = response.xmlPath(); // User has read rights for one type, so this type is returned. - var sclTypes = xmlPath.getList("TypeListResponse.Type.Code"); - assertEquals(1, sclTypes.size()); - assertEquals("SCD", sclTypes.get(0)); + var sclFileTypes = xmlPath.getList("TypeListResponse.Type.Code"); + assertEquals(1, sclFileTypes.size()); + assertEquals("SCD", sclFileTypes.get(0)); } @Test @@ -65,8 +65,8 @@ void list_WhenCalledWithNoReadRights_ThenNoItemResponseRetrieved() { var xmlPath = response.xmlPath(); // User has read rights for no types, so empty list is returned. - var sclTypes = xmlPath.getList("TypeListResponse.Type.Code"); - assertEquals(0, sclTypes.size()); + var sclFileTypes = xmlPath.getList("TypeListResponse.Type.Code"); + assertEquals(0, sclFileTypes.size()); } @Test diff --git a/app/src/test/java/org/lfenergy/compas/scl/data/rest/v1/CompasSclDataResourceAsEditorTest.java b/app/src/test/java/org/lfenergy/compas/scl/data/rest/v1/CompasSclDataResourceAsEditorTest.java index 735bf1cd..063a2543 100644 --- a/app/src/test/java/org/lfenergy/compas/scl/data/rest/v1/CompasSclDataResourceAsEditorTest.java +++ b/app/src/test/java/org/lfenergy/compas/scl/data/rest/v1/CompasSclDataResourceAsEditorTest.java @@ -13,11 +13,11 @@ import org.junit.jupiter.api.Test; import org.lfenergy.compas.scl.data.model.ChangeSetType; import org.lfenergy.compas.scl.data.model.Item; -import org.lfenergy.compas.scl.data.model.SclType; import org.lfenergy.compas.scl.data.model.Version; import org.lfenergy.compas.scl.data.rest.v1.model.CreateRequest; import org.lfenergy.compas.scl.data.rest.v1.model.UpdateRequest; import org.lfenergy.compas.scl.data.service.CompasSclDataService; +import org.lfenergy.compas.scl.extensions.model.SclFileType; import java.io.IOException; import java.util.Collections; @@ -45,7 +45,7 @@ class CompasSclDataResourceAsEditorTest { @Test void list_WhenCalled_ThenItemResponseRetrieved() { - var type = SclType.SCD; + var type = SclFileType.SCD; var uuid = UUID.randomUUID(); var name = "name"; var version = "1.0.0"; @@ -70,7 +70,7 @@ void list_WhenCalled_ThenItemResponseRetrieved() { @Test void listVersionsByUUID_WhenCalled_ThenItemResponseRetrieved() { - var type = SclType.SCD; + var type = SclFileType.SCD; var uuid = UUID.randomUUID(); var name = "Name"; var version = "1.0.0"; @@ -96,7 +96,7 @@ void listVersionsByUUID_WhenCalled_ThenItemResponseRetrieved() { @Test void findByUUID_WhenCalled_ThenSCLResponseRetrieved() throws IOException { - var type = SclType.SCD; + var type = SclFileType.SCD; var uuid = UUID.randomUUID(); var scl = readSCL(); @@ -119,7 +119,7 @@ void findByUUID_WhenCalled_ThenSCLResponseRetrieved() throws IOException { @Test void findByUUIDAndVersion_WhenCalled_ThenSCLResponseRetrieved() throws IOException { - var type = SclType.SCD; + var type = SclFileType.SCD; var uuid = UUID.randomUUID(); var scl = readSCL(); var version = new Version(1, 2, 3); @@ -144,7 +144,7 @@ void findByUUIDAndVersion_WhenCalled_ThenSCLResponseRetrieved() throws IOExcepti @Test void create_WhenCalled_ThenServiceCalledAndUUIDRetrieved() throws IOException { - var type = SclType.SCD; + var type = SclFileType.SCD; var name = "StationName"; var comment = "Some comments"; var scl = readSCL(); @@ -173,7 +173,7 @@ void create_WhenCalled_ThenServiceCalledAndUUIDRetrieved() throws IOException { @Test void update_WhenCalled_ThenServiceCalledAndNewUUIDRetrieved() throws IOException { var uuid = UUID.randomUUID(); - var type = SclType.SCD; + var type = SclFileType.SCD; var changeSetType = ChangeSetType.MAJOR; var comment = "Some comments"; var scl = readSCL(); @@ -203,7 +203,7 @@ void update_WhenCalled_ThenServiceCalledAndNewUUIDRetrieved() throws IOException @Test void deleteAll_WhenCalled_ThenServiceCalled() { var uuid = UUID.randomUUID(); - var type = SclType.SCD; + var type = SclFileType.SCD; doNothing().when(compasSclDataService).delete(type, uuid); @@ -220,7 +220,7 @@ void deleteAll_WhenCalled_ThenServiceCalled() { @Test void deleteVersion_WhenCalled_ThenServiceCalled() { var uuid = UUID.randomUUID(); - var type = SclType.SCD; + var type = SclFileType.SCD; var version = new Version(1, 2, 3); doNothing().when(compasSclDataService).delete(type, uuid, version); diff --git a/app/src/test/java/org/lfenergy/compas/scl/data/rest/v1/CompasSclDataResourceAsReaderTest.java b/app/src/test/java/org/lfenergy/compas/scl/data/rest/v1/CompasSclDataResourceAsReaderTest.java index b26a858c..7cabbc40 100644 --- a/app/src/test/java/org/lfenergy/compas/scl/data/rest/v1/CompasSclDataResourceAsReaderTest.java +++ b/app/src/test/java/org/lfenergy/compas/scl/data/rest/v1/CompasSclDataResourceAsReaderTest.java @@ -11,11 +11,11 @@ import org.junit.jupiter.api.Test; import org.lfenergy.compas.scl.data.model.ChangeSetType; import org.lfenergy.compas.scl.data.model.Item; -import org.lfenergy.compas.scl.data.model.SclType; import org.lfenergy.compas.scl.data.model.Version; import org.lfenergy.compas.scl.data.rest.v1.model.CreateRequest; import org.lfenergy.compas.scl.data.rest.v1.model.UpdateRequest; import org.lfenergy.compas.scl.data.service.CompasSclDataService; +import org.lfenergy.compas.scl.extensions.model.SclFileType; import java.io.IOException; import java.util.Collections; @@ -37,7 +37,7 @@ class CompasSclDataResourceAsReaderTest { @Test void list_WhenCalled_ThenItemResponseRetrieved() { - var type = SclType.SCD; + var type = SclFileType.SCD; var uuid = UUID.randomUUID(); var name = "name"; var version = "1.0.0"; @@ -62,7 +62,7 @@ void list_WhenCalled_ThenItemResponseRetrieved() { @Test void listVersionsByUUID_WhenCalled_ThenItemResponseRetrieved() { - var type = SclType.SCD; + var type = SclFileType.SCD; var uuid = UUID.randomUUID(); var name = "Name"; var version = "1.0.0"; @@ -88,7 +88,7 @@ void listVersionsByUUID_WhenCalled_ThenItemResponseRetrieved() { @Test void findByUUID_WhenCalled_ThenSCLResponseRetrieved() throws IOException { - var type = SclType.SCD; + var type = SclFileType.SCD; var uuid = UUID.randomUUID(); var scl = readSCL(); @@ -111,7 +111,7 @@ void findByUUID_WhenCalled_ThenSCLResponseRetrieved() throws IOException { @Test void findByUUIDAndVersion_WhenCalled_ThenSCLResponseRetrieved() throws IOException { - var type = SclType.SCD; + var type = SclFileType.SCD; var uuid = UUID.randomUUID(); var scl = readSCL(); var version = new Version(1, 2, 3); @@ -136,7 +136,7 @@ void findByUUIDAndVersion_WhenCalled_ThenSCLResponseRetrieved() throws IOExcepti @Test void create_WhenCalled_ThenServiceCalledAndUUIDRetrieved() throws IOException { - var type = SclType.SCD; + var type = SclFileType.SCD; var name = "StationName"; var comment = "Some comments"; var scl = readSCL(); @@ -160,7 +160,7 @@ void create_WhenCalled_ThenServiceCalledAndUUIDRetrieved() throws IOException { @Test void update_WhenCalled_ThenServiceCalledAndNewUUIDRetrieved() throws IOException { var uuid = UUID.randomUUID(); - var type = SclType.SCD; + var type = SclFileType.SCD; var changeSetType = ChangeSetType.MAJOR; var comment = "Some comments"; var scl = readSCL(); @@ -185,7 +185,7 @@ void update_WhenCalled_ThenServiceCalledAndNewUUIDRetrieved() throws IOException @Test void deleteAll_WhenCalled_ThenServiceCalled() { var uuid = UUID.randomUUID(); - var type = SclType.SCD; + var type = SclFileType.SCD; doNothing().when(compasSclDataService).delete(type, uuid); @@ -202,7 +202,7 @@ void deleteAll_WhenCalled_ThenServiceCalled() { @Test void deleteVersion_WhenCalled_ThenServiceCalled() { var uuid = UUID.randomUUID(); - var type = SclType.SCD; + var type = SclFileType.SCD; var version = new Version(1, 2, 3); doNothing().when(compasSclDataService).delete(type, uuid, version); diff --git a/pom.xml b/pom.xml index f581d01a..952745a7 100644 --- a/pom.xml +++ b/pom.xml @@ -20,16 +20,16 @@ SPDX-License-Identifier: Apache-2.0 UTF-8 UTF-8 - 3.8.1 + 3.9.0 3.0.0-M5 3.2.0 - 0.6.0 + 0.7.0 - 2.4.2.Final + 2.6.2.Final 2.3.5 3.0 - 1.7.32 + 1.7.33 0.9.1 @@ -93,6 +93,11 @@ SPDX-License-Identifier: Apache-2.0 commons ${compas.core.version} + + org.lfenergy.compas.core + scl-extension + ${compas.core.version} + org.lfenergy.compas.core jaxrs-commons @@ -160,7 +165,7 @@ SPDX-License-Identifier: Apache-2.0 org.jboss.jandex jandex-maven-plugin - 1.2.1 + 1.2.2 make-index @@ -174,7 +179,7 @@ SPDX-License-Identifier: Apache-2.0 org.apache.maven.plugins maven-jar-plugin - 3.2.0 + 3.2.2 diff --git a/repository-basex/src/main/java/org/lfenergy/compas/scl/data/basex/repository/CompasSclDataBaseXRepository.java b/repository-basex/src/main/java/org/lfenergy/compas/scl/data/basex/repository/CompasSclDataBaseXRepository.java index 35b9f203..dd19373f 100644 --- a/repository-basex/src/main/java/org/lfenergy/compas/scl/data/basex/repository/CompasSclDataBaseXRepository.java +++ b/repository-basex/src/main/java/org/lfenergy/compas/scl/data/basex/repository/CompasSclDataBaseXRepository.java @@ -10,10 +10,10 @@ import org.lfenergy.compas.scl.data.exception.CompasSclDataServiceException; import org.lfenergy.compas.scl.data.model.Item; import org.lfenergy.compas.scl.data.model.SclMetaInfo; -import org.lfenergy.compas.scl.data.model.SclType; import org.lfenergy.compas.scl.data.model.Version; import org.lfenergy.compas.scl.data.repository.CompasSclDataRepository; import org.lfenergy.compas.scl.data.util.SclDataModelMarshaller; +import org.lfenergy.compas.scl.extensions.model.SclFileType; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -77,7 +77,7 @@ public CompasSclDataBaseXRepository(BaseXClientFactory baseXClientFactory, this.sclDataMarshaller = sclDataMarshaller; // At startup create all needed databases. - Arrays.stream(SclType.values()).forEach(type -> + Arrays.stream(SclFileType.values()).forEach(type -> executeCommand(client -> { client.executeXQuery( format(DECLARE_DB_VARIABLE, type) + @@ -88,7 +88,7 @@ public CompasSclDataBaseXRepository(BaseXClientFactory baseXClientFactory, } @Override - public List list(SclType type) { + public List list(SclFileType type) { return executeQuery(type, DECLARE_SCL_NS_URI + DECLARE_COMPAS_NAMESPACE + DECLARE_LATEST_VERSION_FUNC + @@ -105,7 +105,7 @@ public List list(SclType type) { } @Override - public List listVersionsByUUID(SclType type, UUID id) { + public List listVersionsByUUID(SclFileType type, UUID id) { return executeQuery(type, DECLARE_SCL_NS_URI + DECLARE_COMPAS_NAMESPACE + format(DECLARE_DB_VARIABLE, type) + @@ -124,7 +124,7 @@ public List listVersionsByUUID(SclType type, UUID id) { } @Override - public String findByUUID(SclType type, UUID id) { + public String findByUUID(SclFileType type, UUID id) { // This find method always searches for the latest version and returns this. var result = executeQuery(type, DECLARE_SCL_NS_URI + DECLARE_LATEST_VERSION_FUNC + @@ -140,7 +140,7 @@ public String findByUUID(SclType type, UUID id) { } @Override - public String findByUUID(SclType type, UUID id, Version version) { + public String findByUUID(SclFileType type, UUID id, Version version) { // This find method searches for a specific version. var result = executeQuery(type, format(DECLARE_DB_VARIABLE, type) + format(DECLARE_PATH_VARIABLE, createDocumentPath(id, version)) + @@ -154,7 +154,7 @@ public String findByUUID(SclType type, UUID id, Version version) { } @Override - public SclMetaInfo findMetaInfoByUUID(SclType type, UUID id) { + public SclMetaInfo findMetaInfoByUUID(SclFileType type, UUID id) { // This find method always searches for the latest version. // Extracts the needed information from the document and returns this. var metaInfo = executeQuery(type, DECLARE_SCL_NS_URI + @@ -180,7 +180,7 @@ public SclMetaInfo findMetaInfoByUUID(SclType type, UUID id) { } @Override - public void create(SclType type, UUID id, String name, String scl, Version version, String who) { + public void create(SclFileType type, UUID id, String name, String scl, Version version, String who) { // Who is ignored in the BaseX implementation. var inputStream = new ReaderInputStream(new StringReader(scl), StandardCharsets.UTF_8); executeCommand(client -> { @@ -192,7 +192,7 @@ public void create(SclType type, UUID id, String name, String scl, Version versi } @Override - public void delete(SclType type, UUID id) { + public void delete(SclFileType type, UUID id) { executeCommand(client -> { client.executeXQuery("db:delete('" + type + "', '" + id + "')"); return true; @@ -200,7 +200,7 @@ public void delete(SclType type, UUID id) { } @Override - public void delete(SclType type, UUID id, Version version) { + public void delete(SclFileType type, UUID id, Version version) { executeCommand(client -> { client.executeXQuery("db:delete('" + type + "', '" + createDocumentPath(id, version) + "')"); return true; @@ -214,12 +214,12 @@ private String createDocumentPath(UUID uuid, Version version) { + "/" + version.getPatchVersion(); } - private List executeQuery(SclType type, String query) { + private List executeQuery(SclFileType type, String query) { // When the Document (as String) is just returned without mapping. return executeQuery(type, query, xmlString -> xmlString); } - private List executeQuery(SclType type, String query, ResultRowMapper mapper) { + private List executeQuery(SclFileType type, String query, ResultRowMapper mapper) { return executeCommand(client -> { try { var response = new ArrayList(); @@ -240,7 +240,7 @@ private List executeQuery(SclType type, String query, ResultRowMapper }); } - private void openDatabase(BaseXClient client, SclType type) throws IOException { + private void openDatabase(BaseXClient client, SclFileType type) throws IOException { client.execute("OPEN " + type); } diff --git a/repository-basex/src/test/java/org/lfenergy/compas/scl/data/basex/repository/CompasSclDataBaseXRepositoryTest.java b/repository-basex/src/test/java/org/lfenergy/compas/scl/data/basex/repository/CompasSclDataBaseXRepositoryTest.java index 4d4a783e..3c4341f7 100644 --- a/repository-basex/src/test/java/org/lfenergy/compas/scl/data/basex/repository/CompasSclDataBaseXRepositoryTest.java +++ b/repository-basex/src/test/java/org/lfenergy/compas/scl/data/basex/repository/CompasSclDataBaseXRepositoryTest.java @@ -8,10 +8,10 @@ import org.junit.jupiter.api.extension.ExtendWith; import org.lfenergy.compas.scl.data.basex.client.BaseXClientFactory; import org.lfenergy.compas.scl.data.basex.client.BaseXServerJUnitExtension; -import org.lfenergy.compas.scl.data.model.SclType; import org.lfenergy.compas.scl.data.repository.AbstractCompasSclDataRepository; import org.lfenergy.compas.scl.data.repository.CompasSclDataRepository; import org.lfenergy.compas.scl.data.util.SclDataModelMarshaller; +import org.lfenergy.compas.scl.extensions.model.SclFileType; import org.mockito.junit.jupiter.MockitoExtension; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -39,7 +39,7 @@ static void beforeAll() { // To make it possible to re-run the test over and over (in your IDE), // Create all the database, because this will cause to old ones to be removed. - Arrays.stream(SclType.values()) + Arrays.stream(SclFileType.values()) .forEach(type -> { try { factory.createClient().executeXQuery("db:create('" + type + "')"); diff --git a/repository-postgresql/src/main/java/org/lfenergy/compas/scl/data/repository/postgresql/CompasSclDataPostgreSQLRepository.java b/repository-postgresql/src/main/java/org/lfenergy/compas/scl/data/repository/postgresql/CompasSclDataPostgreSQLRepository.java index 476fe45c..9d6b31cb 100644 --- a/repository-postgresql/src/main/java/org/lfenergy/compas/scl/data/repository/postgresql/CompasSclDataPostgreSQLRepository.java +++ b/repository-postgresql/src/main/java/org/lfenergy/compas/scl/data/repository/postgresql/CompasSclDataPostgreSQLRepository.java @@ -8,9 +8,9 @@ import org.lfenergy.compas.scl.data.exception.CompasSclDataServiceException; import org.lfenergy.compas.scl.data.model.Item; import org.lfenergy.compas.scl.data.model.SclMetaInfo; -import org.lfenergy.compas.scl.data.model.SclType; import org.lfenergy.compas.scl.data.model.Version; import org.lfenergy.compas.scl.data.repository.CompasSclDataRepository; +import org.lfenergy.compas.scl.extensions.model.SclFileType; import javax.sql.DataSource; import java.sql.ResultSet; @@ -48,7 +48,7 @@ public CompasSclDataPostgreSQLRepository(DataSource dataSource) { } @Override - public List list(SclType type) { + public List list(SclFileType type) { var sql = SELECT_METADATA_CLAUSE + FROM_CLAUSE + WHERE_CLAUSE + FILTER_ON_TYPE @@ -94,7 +94,7 @@ public List list(SclType type) { } @Override - public List listVersionsByUUID(SclType type, UUID id) { + public List listVersionsByUUID(SclFileType type, UUID id) { var sql = SELECT_METADATA_CLAUSE + FROM_CLAUSE + WHERE_CLAUSE + FILTER_ON_ID @@ -121,7 +121,7 @@ public List listVersionsByUUID(SclType type, UUID id) { } @Override - public String findByUUID(SclType type, UUID id) { + public String findByUUID(SclFileType type, UUID id) { // Use the find meta info to retrieve info about the latest version. var metaInfo = findMetaInfoByUUID(type, id); // Next return the data using the meta info. @@ -129,7 +129,7 @@ public String findByUUID(SclType type, UUID id) { } @Override - public String findByUUID(SclType type, UUID id, Version version) { + public String findByUUID(SclFileType type, UUID id, Version version) { var sql = SELECT_DATA_CLAUSE + FROM_CLAUSE + WHERE_CLAUSE + FILTER_ON_ID @@ -157,7 +157,7 @@ public String findByUUID(SclType type, UUID id, Version version) { } @Override - public SclMetaInfo findMetaInfoByUUID(SclType type, UUID id) { + public SclMetaInfo findMetaInfoByUUID(SclFileType type, UUID id) { var sql = SELECT_METADATA_CLAUSE + FROM_CLAUSE + WHERE_CLAUSE + FILTER_ON_ID @@ -185,7 +185,7 @@ public SclMetaInfo findMetaInfoByUUID(SclType type, UUID id) { } @Override - public void create(SclType type, UUID id, String name, String scl, Version version, String who) { + public void create(SclFileType type, UUID id, String name, String scl, Version version, String who) { var sql = "insert into scl_file(id, major_version, minor_version, patch_version, type, name, created_by, scl_data)" + " values (?, ?, ?, ?, ?, ?, ?, ?)"; @@ -206,7 +206,7 @@ public void create(SclType type, UUID id, String name, String scl, Version versi } @Override - public void delete(SclType type, UUID id) { + public void delete(SclFileType type, UUID id) { var sql = DELETE_FROM_CLAUSE + WHERE_CLAUSE + FILTER_ON_ID + AND_CLAUSE + FILTER_ON_TYPE; @@ -222,7 +222,7 @@ public void delete(SclType type, UUID id) { } @Override - public void delete(SclType type, UUID id, Version version) { + public void delete(SclFileType type, UUID id, Version version) { var sql = DELETE_FROM_CLAUSE + WHERE_CLAUSE + FILTER_ON_ID + AND_CLAUSE + FILTER_ON_TYPE diff --git a/repository/pom.xml b/repository/pom.xml index 54c36dbc..e9fa8d26 100644 --- a/repository/pom.xml +++ b/repository/pom.xml @@ -22,6 +22,10 @@ SPDX-License-Identifier: Apache-2.0 org.lfenergy.compas.core commons + + org.lfenergy.compas.core + scl-extension + jakarta.xml.bind diff --git a/repository/src/main/java/org/lfenergy/compas/scl/data/model/SclType.java b/repository/src/main/java/org/lfenergy/compas/scl/data/model/SclType.java deleted file mode 100644 index 0e5fa727..00000000 --- a/repository/src/main/java/org/lfenergy/compas/scl/data/model/SclType.java +++ /dev/null @@ -1,28 +0,0 @@ -// SPDX-FileCopyrightText: 2021 Alliander N.V. -// -// SPDX-License-Identifier: Apache-2.0 - -package org.lfenergy.compas.scl.data.model; - -import org.eclipse.microprofile.openapi.annotations.media.Schema; - -@Schema(description = "Type of SCL stored. Used for filtering later.") -public enum SclType { - SSD("Substation Specification Description"), - IID("IED Instance Description"), - ICD("IED Capability Description"), - SCD("Substation Configuration Description"), - CID("Configured IED Description"), - SED("System Exchange Description"), - ISD("IED Specification Description"); - - private final String description; - - SclType(String description) { - this.description = description; - } - - public String getDescription() { - return description; - } -} diff --git a/repository/src/main/java/org/lfenergy/compas/scl/data/repository/CompasSclDataRepository.java b/repository/src/main/java/org/lfenergy/compas/scl/data/repository/CompasSclDataRepository.java index 75912b0e..b1ffa9b6 100644 --- a/repository/src/main/java/org/lfenergy/compas/scl/data/repository/CompasSclDataRepository.java +++ b/repository/src/main/java/org/lfenergy/compas/scl/data/repository/CompasSclDataRepository.java @@ -5,8 +5,8 @@ import org.lfenergy.compas.scl.data.model.Item; import org.lfenergy.compas.scl.data.model.SclMetaInfo; -import org.lfenergy.compas.scl.data.model.SclType; import org.lfenergy.compas.scl.data.model.Version; +import org.lfenergy.compas.scl.extensions.model.SclFileType; import javax.transaction.Transactional; import java.util.List; @@ -27,7 +27,7 @@ public interface CompasSclDataRepository { * @return The list of entries found for the passed type. */ @Transactional(SUPPORTS) - List list(SclType type); + List list(SclFileType type); /** * List all versions for a specific SCL Entry for a type of SCL. @@ -37,7 +37,7 @@ public interface CompasSclDataRepository { * @return The list of versions found for that specific sCl Entry. */ @Transactional(SUPPORTS) - List listVersionsByUUID(SclType type, UUID id); + List listVersionsByUUID(SclFileType type, UUID id); /** * Return the latest version of a specific SCL Entry. @@ -47,7 +47,7 @@ public interface CompasSclDataRepository { * @return The SCL XML File Content that is search for. */ @Transactional(SUPPORTS) - String findByUUID(SclType type, UUID id); + String findByUUID(SclFileType type, UUID id); /** * Return the meta info of the latest version of a specific SCL Entry. @@ -57,7 +57,7 @@ public interface CompasSclDataRepository { * @return The Meta Info of SCL Entry that is search for. */ @Transactional(SUPPORTS) - SclMetaInfo findMetaInfoByUUID(SclType type, UUID id); + SclMetaInfo findMetaInfoByUUID(SclFileType type, UUID id); /** * Return the specific version of a specific SCL Entry. @@ -68,7 +68,7 @@ public interface CompasSclDataRepository { * @return The SCL XML File Content that is search for. */ @Transactional(SUPPORTS) - String findByUUID(SclType type, UUID id, Version version); + String findByUUID(SclFileType type, UUID id, Version version); /** * Create a new entry for the passed UUID with the version number passed. @@ -77,15 +77,15 @@ public interface CompasSclDataRepository { * When a entry is updated the service layer will increase the version and always create a new entry * in the repository. * - * @param type The type of SCL to store it in. - * @param id The ID of the new entry to be created. - * @param name The name of the SCL to be stored. - * @param scl The SCL XML File content to store. - * @param version The version of the new entry to be created. - * @param who The user that created the new entry. + * @param type The type of SCL to store it in. + * @param id The ID of the new entry to be created. + * @param name The name of the SCL to be stored. + * @param scl The SCL XML File content to store. + * @param version The version of the new entry to be created. + * @param who The user that created the new entry. */ @Transactional(REQUIRED) - void create(SclType type, UUID id, String name, String scl, Version version, String who); + void create(SclFileType type, UUID id, String name, String scl, Version version, String who); /** * Delete all versions for a specific SCL File using it's ID. @@ -94,7 +94,7 @@ public interface CompasSclDataRepository { * @param id The ID of the SCL File to delete. */ @Transactional(REQUIRED) - void delete(SclType type, UUID id); + void delete(SclFileType type, UUID id); /** * Delete passed versions for a specific SCL File using it's ID. @@ -104,5 +104,5 @@ public interface CompasSclDataRepository { * @param version The version of that SCL File to delete. */ @Transactional(REQUIRED) - void delete(SclType type, UUID id, Version version); + void delete(SclFileType type, UUID id, Version version); } diff --git a/repository/src/test/java/org/lfenergy/compas/scl/data/model/SclTypeTest.java b/repository/src/test/java/org/lfenergy/compas/scl/data/model/SclTypeTest.java deleted file mode 100644 index a5f7dcc1..00000000 --- a/repository/src/test/java/org/lfenergy/compas/scl/data/model/SclTypeTest.java +++ /dev/null @@ -1,22 +0,0 @@ -// SPDX-FileCopyrightText: 2021 Alliander N.V. -// -// SPDX-License-Identifier: Apache-2.0 -package org.lfenergy.compas.scl.data.model; - -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertNotNull; - -class SclTypeTest extends AbstractEnumTest { - @Override - protected Class> getEnumClass() { - return SclType.class; - } - - @Test - void getDescription_WhenCalledForEveryType_ThenEveryTypeHasADescription() { - for (var type : SclType.values()) { - assertNotNull(type.getDescription()); - } - } -} diff --git a/repository/src/test/java/org/lfenergy/compas/scl/data/repository/AbstractCompasSclDataRepository.java b/repository/src/test/java/org/lfenergy/compas/scl/data/repository/AbstractCompasSclDataRepository.java index 76cea54c..325a8a21 100644 --- a/repository/src/test/java/org/lfenergy/compas/scl/data/repository/AbstractCompasSclDataRepository.java +++ b/repository/src/test/java/org/lfenergy/compas/scl/data/repository/AbstractCompasSclDataRepository.java @@ -8,9 +8,9 @@ import org.lfenergy.compas.scl.data.exception.CompasNoDataFoundException; import org.lfenergy.compas.scl.data.exception.CompasSclDataServiceException; import org.lfenergy.compas.scl.data.model.ChangeSetType; -import org.lfenergy.compas.scl.data.model.SclType; import org.lfenergy.compas.scl.data.model.Version; import org.lfenergy.compas.scl.data.util.SclElementProcessor; +import org.lfenergy.compas.scl.extensions.model.SclFileType; import java.util.UUID; @@ -20,16 +20,16 @@ import static org.lfenergy.compas.scl.data.exception.CompasSclDataServiceErrorCode.NO_DATA_FOUND_ERROR_CODE; public abstract class AbstractCompasSclDataRepository { - protected static final SclType TYPE = SclType.SCD; + protected static final SclFileType TYPE = SclFileType.SCD; protected static final String NAME_1 = "SCL-NAME1"; protected static final String NAME_2 = "SCL-NAME2"; protected static final String WHO = "User 1"; // Use different types, so tests don't conflict with each other. - protected static final SclType LIST1_TYPE = SclType.CID; - protected static final SclType LIST2_TYPE = SclType.ICD; - protected static final SclType LIST3_TYPE = SclType.IID; - protected static final SclType LIST4_TYPE = SclType.ISD; + protected static final SclFileType LIST1_TYPE = SclFileType.CID; + protected static final SclFileType LIST2_TYPE = SclFileType.ICD; + protected static final SclFileType LIST3_TYPE = SclFileType.IID; + protected static final SclFileType LIST4_TYPE = SclFileType.ISD; protected final ElementConverter converter = new ElementConverter(); protected final SclElementProcessor processor = new SclElementProcessor(); diff --git a/service/pom.xml b/service/pom.xml index 23a22598..dec5ff7b 100644 --- a/service/pom.xml +++ b/service/pom.xml @@ -23,6 +23,11 @@ SPDX-License-Identifier: Apache-2.0 repository + + org.lfenergy.compas.core + scl-extension + + org.mockito diff --git a/service/src/main/java/org/lfenergy/compas/scl/data/service/CompasSclDataService.java b/service/src/main/java/org/lfenergy/compas/scl/data/service/CompasSclDataService.java index ec7ad80e..d7329143 100644 --- a/service/src/main/java/org/lfenergy/compas/scl/data/service/CompasSclDataService.java +++ b/service/src/main/java/org/lfenergy/compas/scl/data/service/CompasSclDataService.java @@ -5,8 +5,8 @@ import org.lfenergy.compas.scl.data.model.ChangeSetType; import org.lfenergy.compas.scl.data.model.Item; -import org.lfenergy.compas.scl.data.model.SclType; import org.lfenergy.compas.scl.data.model.Version; +import org.lfenergy.compas.scl.extensions.model.SclFileType; import javax.transaction.Transactional; import java.util.List; @@ -17,26 +17,26 @@ public interface CompasSclDataService { @Transactional(SUPPORTS) - List list(SclType type); + List list(SclFileType type); @Transactional(SUPPORTS) - List listVersionsByUUID(SclType type, UUID id); + List listVersionsByUUID(SclFileType type, UUID id); @Transactional(SUPPORTS) - String findByUUID(SclType type, UUID id); + String findByUUID(SclFileType type, UUID id); @Transactional(SUPPORTS) - String findByUUID(SclType type, UUID id, Version version); + String findByUUID(SclFileType type, UUID id, Version version); @Transactional(REQUIRED) - String create(SclType type, String name, String who, String comment, String sclData); + String create(SclFileType type, String name, String who, String comment, String sclData); @Transactional(REQUIRED) - String update(SclType type, UUID id, ChangeSetType changeSetType, String who, String comment, String sclData); + String update(SclFileType type, UUID id, ChangeSetType changeSetType, String who, String comment, String sclData); @Transactional(REQUIRED) - void delete(SclType type, UUID id); + void delete(SclFileType type, UUID id); @Transactional(REQUIRED) - void delete(SclType type, UUID id, Version version); + void delete(SclFileType type, UUID id, Version version); } diff --git a/service/src/main/java/org/lfenergy/compas/scl/data/service/impl/CompasSclDataServiceImpl.java b/service/src/main/java/org/lfenergy/compas/scl/data/service/impl/CompasSclDataServiceImpl.java index 53eaad2a..d1ed3dcf 100644 --- a/service/src/main/java/org/lfenergy/compas/scl/data/service/impl/CompasSclDataServiceImpl.java +++ b/service/src/main/java/org/lfenergy/compas/scl/data/service/impl/CompasSclDataServiceImpl.java @@ -9,11 +9,11 @@ import org.lfenergy.compas.scl.data.exception.CompasNoDataFoundException; import org.lfenergy.compas.scl.data.model.ChangeSetType; import org.lfenergy.compas.scl.data.model.Item; -import org.lfenergy.compas.scl.data.model.SclType; import org.lfenergy.compas.scl.data.model.Version; import org.lfenergy.compas.scl.data.repository.CompasSclDataRepository; import org.lfenergy.compas.scl.data.service.CompasSclDataService; import org.lfenergy.compas.scl.data.util.SclElementProcessor; +import org.lfenergy.compas.scl.extensions.model.SclFileType; import org.w3c.dom.Element; import javax.transaction.Transactional; @@ -53,7 +53,7 @@ public CompasSclDataServiceImpl(CompasSclDataRepository repository, ElementConve */ @Override @Transactional(SUPPORTS) - public List list(SclType type) { + public List list(SclFileType type) { return repository.list(type); } @@ -66,7 +66,7 @@ public List list(SclType type) { */ @Override @Transactional(SUPPORTS) - public List listVersionsByUUID(SclType type, UUID id) { + public List listVersionsByUUID(SclFileType type, UUID id) { var items = repository.listVersionsByUUID(type, id); if (items.isEmpty()) { var message = String.format("No versions found for type '%s' with ID '%s'", type, id); @@ -84,7 +84,7 @@ public List listVersionsByUUID(SclType type, UUID id) { */ @Override @Transactional(SUPPORTS) - public String findByUUID(SclType type, UUID id) { + public String findByUUID(SclFileType type, UUID id) { return repository.findByUUID(type, id); } @@ -98,7 +98,7 @@ public String findByUUID(SclType type, UUID id) { */ @Override @Transactional(SUPPORTS) - public String findByUUID(SclType type, UUID id, Version version) { + public String findByUUID(SclFileType type, UUID id, Version version) { return repository.findByUUID(type, id, version); } @@ -114,7 +114,7 @@ public String findByUUID(SclType type, UUID id, Version version) { */ @Override @Transactional(REQUIRED) - public String create(SclType type, String name, String who, String comment, String sclData) { + public String create(SclFileType type, String name, String who, String comment, String sclData) { var scl = converter.convertToElement(new BufferedInputStream(new ByteArrayInputStream(sclData.getBytes(StandardCharsets.UTF_8))), SCL_ELEMENT_NAME, SCL_NS_URI); if (scl == null) { throw new CompasException(NO_SCL_ELEMENT_FOUND_ERROR_CODE, "No valid SCL found in the passed SCL Data."); @@ -151,7 +151,7 @@ public String create(SclType type, String name, String who, String comment, Stri */ @Override @Transactional(REQUIRED) - public String update(SclType type, UUID id, ChangeSetType changeSetType, String who, String comment, String sclData) { + public String update(SclFileType type, UUID id, ChangeSetType changeSetType, String who, String comment, String sclData) { var scl = converter.convertToElement(new BufferedInputStream(new ByteArrayInputStream(sclData.getBytes(StandardCharsets.UTF_8))), SCL_ELEMENT_NAME, SCL_NS_URI); if (scl == null) { throw new CompasException(NO_SCL_ELEMENT_FOUND_ERROR_CODE, "No valid SCL found in the passed SCL Data."); @@ -182,7 +182,7 @@ public String update(SclType type, UUID id, ChangeSetType changeSetType, String */ @Override @Transactional(REQUIRED) - public void delete(SclType type, UUID id) { + public void delete(SclFileType type, UUID id) { repository.delete(type, id); } @@ -195,7 +195,7 @@ public void delete(SclType type, UUID id) { */ @Override @Transactional(REQUIRED) - public void delete(SclType type, UUID id, Version version) { + public void delete(SclFileType type, UUID id, Version version) { repository.delete(type, id, version); } @@ -223,7 +223,7 @@ private Element createOrUpdateHeader(Element scl, UUID id, Version version) { * @param name The name to add. * @param fileType The file type to add. */ - private void setSclCompasPrivateElement(Element scl, Optional name, SclType fileType) { + private void setSclCompasPrivateElement(Element scl, Optional name, SclFileType fileType) { var compasPrivate = sclElementProcessor.getCompasPrivate(scl) .orElseGet(() -> sclElementProcessor.addCompasPrivate(scl)); diff --git a/service/src/test/java/org/lfenergy/compas/scl/data/service/impl/CompasSclDataServiceImplTest.java b/service/src/test/java/org/lfenergy/compas/scl/data/service/impl/CompasSclDataServiceImplTest.java index 90794331..98259f3b 100644 --- a/service/src/test/java/org/lfenergy/compas/scl/data/service/impl/CompasSclDataServiceImplTest.java +++ b/service/src/test/java/org/lfenergy/compas/scl/data/service/impl/CompasSclDataServiceImplTest.java @@ -12,10 +12,14 @@ import org.lfenergy.compas.core.commons.ElementConverter; import org.lfenergy.compas.core.commons.exception.CompasException; import org.lfenergy.compas.scl.data.exception.CompasNoDataFoundException; -import org.lfenergy.compas.scl.data.model.*; +import org.lfenergy.compas.scl.data.model.ChangeSetType; +import org.lfenergy.compas.scl.data.model.Item; +import org.lfenergy.compas.scl.data.model.SclMetaInfo; +import org.lfenergy.compas.scl.data.model.Version; import org.lfenergy.compas.scl.data.repository.CompasSclDataRepository; import org.lfenergy.compas.scl.data.service.CompasSclDataService; import org.lfenergy.compas.scl.data.util.SclElementProcessor; +import org.lfenergy.compas.scl.extensions.model.SclFileType; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; @@ -33,7 +37,7 @@ @ExtendWith(MockitoExtension.class) class CompasSclDataServiceImplTest { private static final Version INITIAL_VERSION = new Version("1.0.0"); - private static final SclType SCL_TYPE = SclType.SCD; + private static final SclFileType SCL_TYPE = SclFileType.SCD; @Mock private CompasSclDataRepository compasSclDataRepository;