diff --git a/basyx.aasdiscoveryservice/basyx.aasdiscoveryservice-http/src/main/java/org/eclipse/digitaltwin/basyx/aasdiscoveryservice/http/AasDiscoveryServiceDescriptionConfiguration.java b/basyx.aasdiscoveryservice/basyx.aasdiscoveryservice-http/src/main/java/org/eclipse/digitaltwin/basyx/aasdiscoveryservice/http/AasDiscoveryServiceDescriptionConfiguration.java index 6a33d8b2d..238144159 100644 --- a/basyx.aasdiscoveryservice/basyx.aasdiscoveryservice-http/src/main/java/org/eclipse/digitaltwin/basyx/aasdiscoveryservice/http/AasDiscoveryServiceDescriptionConfiguration.java +++ b/basyx.aasdiscoveryservice/basyx.aasdiscoveryservice-http/src/main/java/org/eclipse/digitaltwin/basyx/aasdiscoveryservice/http/AasDiscoveryServiceDescriptionConfiguration.java @@ -12,6 +12,6 @@ public class AasDiscoveryServiceDescriptionConfiguration { @Bean public ProfileDeclaration aasDiscoveryProfiles() { - return () -> new TreeSet<>(List.of(Profile.DISCOVERYSERVICESPECIFICATION_SSP_001)); + return () -> new TreeSet<>(List.of(Profile.DISCOVERYSERVICESPECIFICATION_SSP_001, Profile.BASYXSERVICESPECIFICATION_SSP_001)); } } \ No newline at end of file diff --git a/basyx.aasregistry/basyx.aasregistry-service-basetests/src/main/java/org/eclipse/digitaltwin/basyx/aasregistry/service/tests/integration/BaseIntegrationTest.java b/basyx.aasregistry/basyx.aasregistry-service-basetests/src/main/java/org/eclipse/digitaltwin/basyx/aasregistry/service/tests/integration/BaseIntegrationTest.java index 3c571ae36..f5503018c 100644 --- a/basyx.aasregistry/basyx.aasregistry-service-basetests/src/main/java/org/eclipse/digitaltwin/basyx/aasregistry/service/tests/integration/BaseIntegrationTest.java +++ b/basyx.aasregistry/basyx.aasregistry-service-basetests/src/main/java/org/eclipse/digitaltwin/basyx/aasregistry/service/tests/integration/BaseIntegrationTest.java @@ -170,8 +170,8 @@ public void whenGetDescription_thenDescriptionIsReturned() throws ApiException { ApiResponse entity = api.getDescriptionWithHttpInfo(); assertThat(entity.getStatusCode()).isEqualTo(OK); List profiles = entity.getData().getProfiles(); - assertThat(profiles).asList().hasSize(1); - assertThat(profiles).asList().containsExactlyInAnyOrder(ProfilesEnum.ASSETADMINISTRATIONSHELLREGISTRYSERVICESPECIFICATION_SSP_001); + assertThat(profiles).asList().hasSize(2); + assertThat(profiles).asList().containsExactlyInAnyOrder(ProfilesEnum.ASSETADMINISTRATIONSHELLREGISTRYSERVICESPECIFICATION_SSP_001, ProfilesEnum.BASYXSERVICESPECIFICATION_SSP_001); } @Test diff --git a/basyx.aasregistry/basyx.aasregistry-service/src/main/java/org/eclipse/digitaltwin/basyx/aasregistry/service/api/BasyxDescriptionApiDelegate.java b/basyx.aasregistry/basyx.aasregistry-service/src/main/java/org/eclipse/digitaltwin/basyx/aasregistry/service/api/BasyxDescriptionApiDelegate.java index d259e40ce..25f82f922 100644 --- a/basyx.aasregistry/basyx.aasregistry-service/src/main/java/org/eclipse/digitaltwin/basyx/aasregistry/service/api/BasyxDescriptionApiDelegate.java +++ b/basyx.aasregistry/basyx.aasregistry-service/src/main/java/org/eclipse/digitaltwin/basyx/aasregistry/service/api/BasyxDescriptionApiDelegate.java @@ -48,6 +48,9 @@ public void setValues(@Value("${description.profiles}") String[] profiles) { ProfilesEnum value = getProfile(eachProfile); profilesList.add(value); } + if (!profilesList.contains(ProfilesEnum.BASYXSERVICESPECIFICATION_SSP_001)) { + profilesList.add(ProfilesEnum.BASYXSERVICESPECIFICATION_SSP_001); + } description.setProfiles(profilesList); } diff --git a/basyx.aasregistry/basyx.aasregistry-service/src/test/java/org/eclipse/digitaltwin/basyx/aasregistry/service/tests/DescriptionProfilesTest.java b/basyx.aasregistry/basyx.aasregistry-service/src/test/java/org/eclipse/digitaltwin/basyx/aasregistry/service/tests/DescriptionProfilesTest.java index 2352c4cd1..480ad1c3b 100644 --- a/basyx.aasregistry/basyx.aasregistry-service/src/test/java/org/eclipse/digitaltwin/basyx/aasregistry/service/tests/DescriptionProfilesTest.java +++ b/basyx.aasregistry/basyx.aasregistry-service/src/test/java/org/eclipse/digitaltwin/basyx/aasregistry/service/tests/DescriptionProfilesTest.java @@ -55,7 +55,7 @@ @RunWith(SpringRunner.class) @WebMvcTest(DescriptionApiController.class) @DirtiesContext(classMode = ClassMode.AFTER_CLASS) -@TestPropertySource(properties = { "description.profiles=https://admin-shell.io/aas/API/3/0/AssetAdministrationShellRegistryServiceSpecification/SSP-001,https://admin-shell.io/aas/API/3/0/SubmodelRegistryServiceSpecification/SSP-001" }) +@TestPropertySource(properties = { "description.profiles=https://admin-shell.io/aas/API/3/0/AssetAdministrationShellRegistryServiceSpecification/SSP-001,https://admin-shell.io/aas/API/3/0/SubmodelRegistryServiceSpecification/SSP-001,https://basyx.org/aas/API/3/0/BaSyxServiceSpecification/SSP-001" }) public class DescriptionProfilesTest { @MockBean diff --git a/basyx.aasregistry/open-api/patch-base-extensions.yaml b/basyx.aasregistry/open-api/patch-base-extensions.yaml index a6ca0bb6f..3cbb2d151 100644 --- a/basyx.aasregistry/open-api/patch-base-extensions.yaml +++ b/basyx.aasregistry/open-api/patch-base-extensions.yaml @@ -188,7 +188,32 @@ value: date-time ## alter ServiceDescription - op: remove - path: /components/schemas/ServiceDescription/example + path: /components/schemas/ServiceDescription/example +- op: add + path: /components/schemas/ServiceDescription/properties/profiles/items/enum/- + value: https://basyx.org/aas/API/3/0/BaSyxServiceSpecification/SSP-001 +- op: add + path: /components/schemas/ServiceDescription/properties/profiles/items/x-enum-varnames + value: + - ASSETADMINISTRATIONSHELLSERVICESPECIFICATION_SSP_001 + - ASSETADMINISTRATIONSHELLSERVICESPECIFICATION_SSP_002 + - SUBMODELSERVICESPECIFICATION_SSP_001 + - SUBMODELSERVICESPECIFICATION_SSP_002 + - SUBMODELSERVICESPECIFICATION_SSP_003 + - AASXFILESERVERSERVICESPECIFICATION_SSP_001 + - ASSETADMINISTRATIONSHELLREGISTRYSERVICESPECIFICATION_SSP_001 + - ASSETADMINISTRATIONSHELLREGISTRYSERVICESPECIFICATION_SSP_002 + - SUBMODELREGISTRYSERVICESPECIFICATION_SSP_001 + - SUBMODELREGISTRYSERVICESPECIFICATION_SSP_002 + - DISCOVERYSERVICESPECIFICATION_SSP_001 + - ASSETADMINISTRATIONSHELLREPOSITORYSERVICESPECIFICATION_SSP_001 + - ASSETADMINISTRATIONSHELLREPOSITORYSERVICESPECIFICATION_SSP_002 + - SUBMODELREPOSITORYSERVICESPECIFICATION_SSP_001 + - SUBMODELREPOSITORYSERVICESPECIFICATION_SSP_002 + - SUBMODELREPOSITORYSERVICESPECIFICATION_SSP_003 + - SUBMODELREPOSITORYSERVICESPECIFICATION_SSP_004 + - CONCEPTDESCRIPTIONSERVICESPECIFICATION_SSP_001 + - BASYXSERVICESPECIFICATION_SSP_001 ## PagedResult_paging_metadata - op: remove path: /components/schemas/PagedResult_paging_metadata/properties/cursor/example diff --git a/basyx.aasrepository/basyx.aasrepository-http/src/main/java/org/eclipse/digitaltwin/basyx/aasrepository/http/AasRepositoryServiceDescriptionConfiguration.java b/basyx.aasrepository/basyx.aasrepository-http/src/main/java/org/eclipse/digitaltwin/basyx/aasrepository/http/AasRepositoryServiceDescriptionConfiguration.java index 7123e96a1..51013f56e 100644 --- a/basyx.aasrepository/basyx.aasrepository-http/src/main/java/org/eclipse/digitaltwin/basyx/aasrepository/http/AasRepositoryServiceDescriptionConfiguration.java +++ b/basyx.aasrepository/basyx.aasrepository-http/src/main/java/org/eclipse/digitaltwin/basyx/aasrepository/http/AasRepositoryServiceDescriptionConfiguration.java @@ -13,6 +13,6 @@ public class AasRepositoryServiceDescriptionConfiguration { @Bean public ProfileDeclaration aasRepositoryProfiles() { return () -> new TreeSet<>(List.of(Profile.ASSETADMINISTRATIONSHELLREPOSITORYSERVICESPECIFICATION_SSP_001, - Profile.ASSETADMINISTRATIONSHELLREPOSITORYSERVICESPECIFICATION_SSP_002)); + Profile.ASSETADMINISTRATIONSHELLREPOSITORYSERVICESPECIFICATION_SSP_002, Profile.BASYXSERVICESPECIFICATION_SSP_001)); } } diff --git a/basyx.aasxfileserver/basyx.aasxfileserver-http/src/main/java/org/eclipse/digitaltwin/basyx/aasxfileserver/http/AASXFileServerDescriptionConfiguration.java b/basyx.aasxfileserver/basyx.aasxfileserver-http/src/main/java/org/eclipse/digitaltwin/basyx/aasxfileserver/http/AASXFileServerDescriptionConfiguration.java index 1d4c88c95..0e7b18b2c 100644 --- a/basyx.aasxfileserver/basyx.aasxfileserver-http/src/main/java/org/eclipse/digitaltwin/basyx/aasxfileserver/http/AASXFileServerDescriptionConfiguration.java +++ b/basyx.aasxfileserver/basyx.aasxfileserver-http/src/main/java/org/eclipse/digitaltwin/basyx/aasxfileserver/http/AASXFileServerDescriptionConfiguration.java @@ -12,6 +12,6 @@ public class AASXFileServerDescriptionConfiguration { @Bean public ProfileDeclaration aasxFileServerProfiles() { - return () -> new TreeSet<>(List.of(Profile.AASXFILESERVERSERVICESPECIFICATION_SSP_001)); + return () -> new TreeSet<>(List.of(Profile.AASXFILESERVERSERVICESPECIFICATION_SSP_001, Profile.BASYXSERVICESPECIFICATION_SSP_001)); } } \ No newline at end of file diff --git a/basyx.common/basyx.http/src/main/java/org/eclipse/digitaltwin/basyx/http/description/Profile.java b/basyx.common/basyx.http/src/main/java/org/eclipse/digitaltwin/basyx/http/description/Profile.java index c7834f05c..3fd92354a 100644 --- a/basyx.common/basyx.http/src/main/java/org/eclipse/digitaltwin/basyx/http/description/Profile.java +++ b/basyx.common/basyx.http/src/main/java/org/eclipse/digitaltwin/basyx/http/description/Profile.java @@ -56,7 +56,11 @@ public enum Profile implements StandardizedLiteralEnum { "https://admin-shell.io/aas/API/3/0/SubmodelRepositoryServiceSpecification/SSP-004"), CONCEPTDESCRIPTIONSERVICESPECIFICATION_SSP_001( - "https://admin-shell.io/aas/API/3/0/ConceptDescriptionServiceSpecification/SSP-001"); + "https://admin-shell.io/aas/API/3/0/ConceptDescriptionServiceSpecification/SSP-001"), + + BASYXSERVICESPECIFICATION_SSP_001( + "https://basyx.org/aas/API/3/0/BaSyxServiceSpecification/SSP-001" + ); private String value; diff --git a/basyx.conceptdescriptionrepository/basyx.conceptdescriptionrepository-http/src/main/java/org/eclipse/digitaltwin/basyx/conceptdescriptionrepository/http/ConceptDescriptionRepositoryServiceDescriptionConfiguration.java b/basyx.conceptdescriptionrepository/basyx.conceptdescriptionrepository-http/src/main/java/org/eclipse/digitaltwin/basyx/conceptdescriptionrepository/http/ConceptDescriptionRepositoryServiceDescriptionConfiguration.java index 0bce537ef..41a98142a 100644 --- a/basyx.conceptdescriptionrepository/basyx.conceptdescriptionrepository-http/src/main/java/org/eclipse/digitaltwin/basyx/conceptdescriptionrepository/http/ConceptDescriptionRepositoryServiceDescriptionConfiguration.java +++ b/basyx.conceptdescriptionrepository/basyx.conceptdescriptionrepository-http/src/main/java/org/eclipse/digitaltwin/basyx/conceptdescriptionrepository/http/ConceptDescriptionRepositoryServiceDescriptionConfiguration.java @@ -12,6 +12,6 @@ public class ConceptDescriptionRepositoryServiceDescriptionConfiguration { @Bean public ProfileDeclaration cdRepositoryProfiles() { - return () -> new TreeSet<>(List.of(Profile.CONCEPTDESCRIPTIONSERVICESPECIFICATION_SSP_001)); + return () -> new TreeSet<>(List.of(Profile.CONCEPTDESCRIPTIONSERVICESPECIFICATION_SSP_001, Profile.BASYXSERVICESPECIFICATION_SSP_001)); } } diff --git a/basyx.submodelregistry/basyx.submodelregistry-service-basetests/src/main/java/org/eclipse/digitaltwin/basyx/submodelregistry/service/tests/integration/BaseIntegrationTest.java b/basyx.submodelregistry/basyx.submodelregistry-service-basetests/src/main/java/org/eclipse/digitaltwin/basyx/submodelregistry/service/tests/integration/BaseIntegrationTest.java index 195e2b78c..1fc1daa0f 100644 --- a/basyx.submodelregistry/basyx.submodelregistry-service-basetests/src/main/java/org/eclipse/digitaltwin/basyx/submodelregistry/service/tests/integration/BaseIntegrationTest.java +++ b/basyx.submodelregistry/basyx.submodelregistry-service-basetests/src/main/java/org/eclipse/digitaltwin/basyx/submodelregistry/service/tests/integration/BaseIntegrationTest.java @@ -153,8 +153,8 @@ public void whenGetDescription_thenDescriptionIsReturned() throws ApiException { ApiResponse entity = api.getDescriptionWithHttpInfo(); assertThat(entity.getStatusCode()).isEqualTo(OK); List profiles = entity.getData().getProfiles(); - assertThat(profiles).asList().hasSize(1); - assertThat(profiles).asList().containsExactlyInAnyOrder(ProfilesEnum.SUBMODELREGISTRYSERVICESPECIFICATION_SSP_001); + assertThat(profiles).asList().hasSize(2); + assertThat(profiles).asList().containsExactlyInAnyOrder(ProfilesEnum.SUBMODELREGISTRYSERVICESPECIFICATION_SSP_001, ProfilesEnum.BASYXSERVICESPECIFICATION_SSP_001); } @Test diff --git a/basyx.submodelregistry/basyx.submodelregistry-service/src/main/java/org/eclipse/digitaltwin/basyx/submodelregistry/service/api/BasyxDescriptionApiDelegate.java b/basyx.submodelregistry/basyx.submodelregistry-service/src/main/java/org/eclipse/digitaltwin/basyx/submodelregistry/service/api/BasyxDescriptionApiDelegate.java index d5fabdb98..8e17fdc08 100644 --- a/basyx.submodelregistry/basyx.submodelregistry-service/src/main/java/org/eclipse/digitaltwin/basyx/submodelregistry/service/api/BasyxDescriptionApiDelegate.java +++ b/basyx.submodelregistry/basyx.submodelregistry-service/src/main/java/org/eclipse/digitaltwin/basyx/submodelregistry/service/api/BasyxDescriptionApiDelegate.java @@ -48,6 +48,9 @@ public void setValues(@Value("${description.profiles}") String[] profiles) { ProfilesEnum value = getProfile(eachProfile); profilesList.add(value); } + if (!profilesList.contains(ProfilesEnum.BASYXSERVICESPECIFICATION_SSP_001)) { + profilesList.add(ProfilesEnum.BASYXSERVICESPECIFICATION_SSP_001); + } description.setProfiles(profilesList); } diff --git a/basyx.submodelregistry/basyx.submodelregistry-service/src/test/java/org/eclipse/digitaltwin/basyx/submodelregistry/service/tests/DescriptionProfilesTest.java b/basyx.submodelregistry/basyx.submodelregistry-service/src/test/java/org/eclipse/digitaltwin/basyx/submodelregistry/service/tests/DescriptionProfilesTest.java index 04f0c7c2b..446603e21 100644 --- a/basyx.submodelregistry/basyx.submodelregistry-service/src/test/java/org/eclipse/digitaltwin/basyx/submodelregistry/service/tests/DescriptionProfilesTest.java +++ b/basyx.submodelregistry/basyx.submodelregistry-service/src/test/java/org/eclipse/digitaltwin/basyx/submodelregistry/service/tests/DescriptionProfilesTest.java @@ -55,7 +55,7 @@ @RunWith(SpringRunner.class) @WebMvcTest(DescriptionApiController.class) @DirtiesContext(classMode = ClassMode.AFTER_CLASS) -@TestPropertySource(properties = { "description.profiles=https://admin-shell.io/aas/API/3/0/SubmodelRegistryServiceSpecification/SSP-001,https://admin-shell.io/aas/API/3/0/DiscoveryServiceSpecification/SSP-001" }) +@TestPropertySource(properties = { "description.profiles=https://admin-shell.io/aas/API/3/0/SubmodelRegistryServiceSpecification/SSP-001,https://admin-shell.io/aas/API/3/0/DiscoveryServiceSpecification/SSP-001,https://basyx.org/aas/API/3/0/BaSyxServiceSpecification/SSP-001" }) public class DescriptionProfilesTest { @MockBean diff --git a/basyx.submodelregistry/open-api/patch-base-extensions.yaml b/basyx.submodelregistry/open-api/patch-base-extensions.yaml index dab515fe5..0d3b37a53 100644 --- a/basyx.submodelregistry/open-api/patch-base-extensions.yaml +++ b/basyx.submodelregistry/open-api/patch-base-extensions.yaml @@ -243,3 +243,28 @@ path: /paths/~1description/get/tags value: - Submodel Registry +- op: add + path: /components/schemas/ServiceDescription/properties/profiles/items/enum/- + value: https://basyx.org/aas/API/3/0/BaSyxServiceSpecification/SSP-001 +- op: add + path: /components/schemas/ServiceDescription/properties/profiles/items/x-enum-varnames + value: + - ASSETADMINISTRATIONSHELLSERVICESPECIFICATION_SSP_001 + - ASSETADMINISTRATIONSHELLSERVICESPECIFICATION_SSP_002 + - SUBMODELSERVICESPECIFICATION_SSP_001 + - SUBMODELSERVICESPECIFICATION_SSP_002 + - SUBMODELSERVICESPECIFICATION_SSP_003 + - AASXFILESERVERSERVICESPECIFICATION_SSP_001 + - ASSETADMINISTRATIONSHELLREGISTRYSERVICESPECIFICATION_SSP_001 + - ASSETADMINISTRATIONSHELLREGISTRYSERVICESPECIFICATION_SSP_002 + - SUBMODELREGISTRYSERVICESPECIFICATION_SSP_001 + - SUBMODELREGISTRYSERVICESPECIFICATION_SSP_002 + - DISCOVERYSERVICESPECIFICATION_SSP_001 + - ASSETADMINISTRATIONSHELLREPOSITORYSERVICESPECIFICATION_SSP_001 + - ASSETADMINISTRATIONSHELLREPOSITORYSERVICESPECIFICATION_SSP_002 + - SUBMODELREPOSITORYSERVICESPECIFICATION_SSP_001 + - SUBMODELREPOSITORYSERVICESPECIFICATION_SSP_002 + - SUBMODELREPOSITORYSERVICESPECIFICATION_SSP_003 + - SUBMODELREPOSITORYSERVICESPECIFICATION_SSP_004 + - CONCEPTDESCRIPTIONSERVICESPECIFICATION_SSP_001 + - BASYXSERVICESPECIFICATION_SSP_001 diff --git a/basyx.submodelrepository/basyx.submodelrepository-http/src/main/java/org/eclipse/digitaltwin/basyx/submodelrepository/http/SubmodelRepositoryServiceDescriptionConfiguration.java b/basyx.submodelrepository/basyx.submodelrepository-http/src/main/java/org/eclipse/digitaltwin/basyx/submodelrepository/http/SubmodelRepositoryServiceDescriptionConfiguration.java index 7442ecb83..8b0bd04f6 100644 --- a/basyx.submodelrepository/basyx.submodelrepository-http/src/main/java/org/eclipse/digitaltwin/basyx/submodelrepository/http/SubmodelRepositoryServiceDescriptionConfiguration.java +++ b/basyx.submodelrepository/basyx.submodelrepository-http/src/main/java/org/eclipse/digitaltwin/basyx/submodelrepository/http/SubmodelRepositoryServiceDescriptionConfiguration.java @@ -14,6 +14,6 @@ public class SubmodelRepositoryServiceDescriptionConfiguration { public ProfileDeclaration smRepositoryProfiles() { return () -> new TreeSet<>(List.of(Profile.SUBMODELREPOSITORYSERVICESPECIFICATION_SSP_001, Profile.SUBMODELREPOSITORYSERVICESPECIFICATION_SSP_002, Profile.SUBMODELREPOSITORYSERVICESPECIFICATION_SSP_003, - Profile.SUBMODELREPOSITORYSERVICESPECIFICATION_SSP_004)); + Profile.SUBMODELREPOSITORYSERVICESPECIFICATION_SSP_004, Profile.BASYXSERVICESPECIFICATION_SSP_001)); } }