Skip to content

Commit 0eb5ed2

Browse files
authored
Enables assetIds and idShort Query Parameters of getAllAAS Endpoint (#757)
* Preparation for implementation of Query Params * Adds filtering for IdShort * Adds test for Global Asset ID filtering * Adds tests for other test-cases * Adds MongoDB Implementation * Adapts other classes to new signature * Adapts other classes to new signature * Adds HTTP Tests * Fixes JavaDoc * Fixes NPe
1 parent 9bad3b0 commit 0eb5ed2

37 files changed

Lines changed: 283 additions & 62 deletions

File tree

basyx.aasenvironment/basyx.aasenvironment-client/src/test/java/org/eclipse/digitaltwin/basyx/aasenvironment/client/TestConnectedAasEnvironment.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -296,7 +296,7 @@ private static List<String> retrieveConceptDescriptionIds(Environment aasEnviron
296296
}
297297

298298
private void validateRepositoriesState() {
299-
assertTrue(getAasRepository().getAllAas(PaginationInfo.NO_LIMIT).getResult().containsAll(createDummyShells()));
299+
assertTrue(getAasRepository().getAllAas(null, null, PaginationInfo.NO_LIMIT).getResult().containsAll(createDummyShells()));
300300
assertTrue(getSubmodelRepository().getAllSubmodels(PaginationInfo.NO_LIMIT).getResult().containsAll(createDummySubmodels()));
301301
assertTrue(getConceptDescriptionRepository().getAllConceptDescriptions(PaginationInfo.NO_LIMIT).getResult().containsAll(createDummyConceptDescriptions()));
302302
}

basyx.aasenvironment/basyx.aasenvironment-core/src/test/java/org/eclipse/digitaltwin/basyx/aasenvironment/AasEnvironmentLoaderTest.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ protected void loadRepositories(List<String> pathsToLoad) throws IOException, De
9292
public void testWithResourceFile_AllElementsAreDeployed() throws InvalidFormatException, IOException, DeserializationException {
9393
loadRepositories(List.of(TEST_ENVIRONMENT_JSON));
9494

95-
Assert.assertEquals(2, aasRepository.getAllAas(PaginationInfo.NO_LIMIT).getResult().size());
95+
Assert.assertEquals(2, aasRepository.getAllAas(null, null, PaginationInfo.NO_LIMIT).getResult().size());
9696
Assert.assertEquals(2, submodelRepository.getAllSubmodels(PaginationInfo.NO_LIMIT).getResult().size());
9797
Assert.assertEquals(2, conceptDescriptionRepository.getAllConceptDescriptions(PaginationInfo.NO_LIMIT).getResult().size());
9898
}
@@ -108,7 +108,7 @@ public void testDeployedTwiceNoVersion_AllDeployedButNotOverriden() throws Inval
108108
Mockito.verify(submodelRepository, Mockito.times(2)).createSubmodel(Mockito.any());
109109
Mockito.verify(submodelRepository, Mockito.times(0)).updateSubmodel(Mockito.anyString(), Mockito.any());
110110

111-
Assert.assertEquals(2, aasRepository.getAllAas(PaginationInfo.NO_LIMIT).getResult().size());
111+
Assert.assertEquals(2, aasRepository.getAllAas(null, null, PaginationInfo.NO_LIMIT).getResult().size());
112112
Assert.assertEquals(2, submodelRepository.getAllSubmodels(PaginationInfo.NO_LIMIT).getResult().size());
113113
Assert.assertEquals(2, conceptDescriptionRepository.getAllConceptDescriptions(PaginationInfo.NO_LIMIT).getResult().size());
114114
}
@@ -124,7 +124,7 @@ public void testDeployedTwiceWithSameVersion_AllDeployedButNotOverriden() throws
124124
Mockito.verify(submodelRepository, Mockito.times(2)).createSubmodel(Mockito.any());
125125
Mockito.verify(submodelRepository, Mockito.times(0)).updateSubmodel(Mockito.anyString(), Mockito.any());
126126

127-
Assert.assertEquals(2, aasRepository.getAllAas(PaginationInfo.NO_LIMIT).getResult().size());
127+
Assert.assertEquals(2, aasRepository.getAllAas(null, null, PaginationInfo.NO_LIMIT).getResult().size());
128128
Assert.assertEquals(2, submodelRepository.getAllSubmodels(PaginationInfo.NO_LIMIT).getResult().size());
129129
Assert.assertEquals(2, conceptDescriptionRepository.getAllConceptDescriptions(PaginationInfo.NO_LIMIT).getResult().size());
130130
}
@@ -140,7 +140,7 @@ public void testDeployedTwiceNewRevision_ElementsAreOverriden() throws InvalidFo
140140
Mockito.verify(submodelRepository, Mockito.times(2)).createSubmodel(Mockito.any());
141141
Mockito.verify(submodelRepository, Mockito.times(1)).updateSubmodel(Mockito.anyString(), Mockito.any());
142142

143-
Assert.assertEquals(2, aasRepository.getAllAas(PaginationInfo.NO_LIMIT).getResult().size());
143+
Assert.assertEquals(2, aasRepository.getAllAas(null, null, PaginationInfo.NO_LIMIT).getResult().size());
144144
Assert.assertEquals(2, submodelRepository.getAllSubmodels(PaginationInfo.NO_LIMIT).getResult().size());
145145
Assert.assertEquals(2, conceptDescriptionRepository.getAllConceptDescriptions(PaginationInfo.NO_LIMIT).getResult().size());
146146
}
@@ -164,15 +164,15 @@ public void testWithResourceFile_NoExceptionsWhenReuploadAfterElementsAreRemoved
164164

165165
loadRepositoriesWithEnvironment(List.of(TEST_ENVIRONMENT_JSON), envLoader);
166166

167-
Assert.assertEquals(2, aasRepository.getAllAas(PaginationInfo.NO_LIMIT).getResult().size());
167+
Assert.assertEquals(2, aasRepository.getAllAas(null, null, PaginationInfo.NO_LIMIT).getResult().size());
168168
Assert.assertEquals(2, submodelRepository.getAllSubmodels(PaginationInfo.NO_LIMIT).getResult().size());
169169
Assert.assertEquals(2, conceptDescriptionRepository.getAllConceptDescriptions(PaginationInfo.NO_LIMIT).getResult().size());
170170

171171
deleteElementsFromRepos();
172172

173173
loadRepositoriesWithEnvironment(List.of(TEST_ENVIRONMENT_JSON), envLoader);
174174

175-
Assert.assertEquals(2, aasRepository.getAllAas(PaginationInfo.NO_LIMIT).getResult().size());
175+
Assert.assertEquals(2, aasRepository.getAllAas(null, null, PaginationInfo.NO_LIMIT).getResult().size());
176176
Assert.assertEquals(2, submodelRepository.getAllSubmodels(PaginationInfo.NO_LIMIT).getResult().size());
177177
Assert.assertEquals(2, conceptDescriptionRepository.getAllConceptDescriptions(PaginationInfo.NO_LIMIT).getResult().size());
178178
}
@@ -183,7 +183,7 @@ public void testWithResourceFile_ExceptionIsThrownWhenReuploadWithExistingElemen
183183

184184
loadRepositoriesWithEnvironment(List.of(TEST_ENVIRONMENT_JSON), envLoader);
185185

186-
Assert.assertEquals(2, aasRepository.getAllAas(PaginationInfo.NO_LIMIT).getResult().size());
186+
Assert.assertEquals(2, aasRepository.getAllAas(null, null, PaginationInfo.NO_LIMIT).getResult().size());
187187
Assert.assertEquals(2, submodelRepository.getAllSubmodels(PaginationInfo.NO_LIMIT).getResult().size());
188188
Assert.assertEquals(2, conceptDescriptionRepository.getAllConceptDescriptions(PaginationInfo.NO_LIMIT).getResult().size());
189189

@@ -200,11 +200,11 @@ private void loadRepositoriesWithEnvironment(List<String> pathsToLoad, AasEnviro
200200
}
201201

202202
private void deleteElementsFromRepos() {
203-
aasRepository.getAllAas(PaginationInfo.NO_LIMIT).getResult().stream().forEach(aas -> aasRepository.deleteAas(aas.getId()));
203+
aasRepository.getAllAas(null, null, PaginationInfo.NO_LIMIT).getResult().stream().forEach(aas -> aasRepository.deleteAas(aas.getId()));
204204
submodelRepository.getAllSubmodels(PaginationInfo.NO_LIMIT).getResult().stream().forEach(sm -> submodelRepository.deleteSubmodel(sm.getId()));
205205
conceptDescriptionRepository.getAllConceptDescriptions(PaginationInfo.NO_LIMIT).getResult().stream().forEach(cd -> conceptDescriptionRepository.deleteConceptDescription(cd.getId()));
206206

207-
Assert.assertEquals(0, aasRepository.getAllAas(PaginationInfo.NO_LIMIT).getResult().size());
207+
Assert.assertEquals(0, aasRepository.getAllAas(null, null, PaginationInfo.NO_LIMIT).getResult().size());
208208
Assert.assertEquals(0, submodelRepository.getAllSubmodels(PaginationInfo.NO_LIMIT).getResult().size());
209209
Assert.assertEquals(0, conceptDescriptionRepository.getAllConceptDescriptions(PaginationInfo.NO_LIMIT).getResult().size());
210210
}

basyx.aasenvironment/basyx.aasenvironment-core/src/test/java/org/eclipse/digitaltwin/basyx/aasenvironment/PreconfigurationLoaderTextualResourceTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ protected void loadRepositories(List<String> pathsToLoad) throws IOException, In
5353
@Test
5454
public void testWithEmptyResource_NoElementsAreDeployed() throws InvalidFormatException, IOException, DeserializationException {
5555
loadRepositories(List.of());
56-
Assert.assertTrue(aasRepository.getAllAas(PaginationInfo.NO_LIMIT).getResult().isEmpty());
56+
Assert.assertTrue(aasRepository.getAllAas(null, null, PaginationInfo.NO_LIMIT).getResult().isEmpty());
5757
Assert.assertTrue(submodelRepository.getAllSubmodels(PaginationInfo.NO_LIMIT).getResult().isEmpty());
5858
Assert.assertTrue(conceptDescriptionRepository.getAllConceptDescriptions(PaginationInfo.NO_LIMIT).getResult().isEmpty());
5959

basyx.aasenvironment/basyx.aasenvironment-core/src/test/java/org/eclipse/digitaltwin/basyx/aasenvironment/TestAASEnvironmentSerialization.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ private static List<String> retrieveConceptDescriptionIds(Environment aasEnviron
259259
}
260260

261261
private void validateRepositoriesState() {
262-
assertTrue(aasRepository.getAllAas(PaginationInfo.NO_LIMIT).getResult().containsAll(createDummyShells()));
262+
assertTrue(aasRepository.getAllAas(null, null, PaginationInfo.NO_LIMIT).getResult().containsAll(createDummyShells()));
263263
assertTrue(submodelRepository.getAllSubmodels(PaginationInfo.NO_LIMIT).getResult().containsAll(createDummySubmodels()));
264264
assertTrue(conceptDescriptionRepository.getAllConceptDescriptions(PaginationInfo.NO_LIMIT).getResult().containsAll(createDummyConceptDescriptions()));
265265
}

basyx.aasenvironment/basyx.aasenvironment-feature-authorization/src/test/java/org/eclipse/digitaltwin/basyx/aasenvironment/feature/authorization/TestAuthorizedAasEnvironmentSerialization.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ public static void tearDown() {
100100
public void reset() throws FileNotFoundException, IOException {
101101
configureSecurityContext();
102102

103-
Collection<AssetAdministrationShell> assetAdministrationShells = aasRepo.getAllAas(PaginationInfo.NO_LIMIT).getResult();
103+
Collection<AssetAdministrationShell> assetAdministrationShells = aasRepo.getAllAas(null, null, PaginationInfo.NO_LIMIT).getResult();
104104
Collection<Submodel> submodels = submodelRepo.getAllSubmodels(PaginationInfo.NO_LIMIT).getResult();
105105
Collection<ConceptDescription> conceptDescriptions = conceptDescriptionRepo.getAllConceptDescriptions(PaginationInfo.NO_LIMIT).getResult();
106106

basyx.aasenvironment/basyx.aasenvironment-feature-authorization/src/test/java/org/eclipse/digitaltwin/basyx/aasenvironment/feature/authorization/TestAuthorizedAasEnvironmentUpload.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ public void reset() throws FileNotFoundException, IOException {
9393

9494
configureSecurityContext();
9595

96-
Collection<AssetAdministrationShell> assetAdministrationShells = aasRepo.getAllAas(PaginationInfo.NO_LIMIT).getResult();
96+
Collection<AssetAdministrationShell> assetAdministrationShells = aasRepo.getAllAas(null, null, PaginationInfo.NO_LIMIT).getResult();
9797
Collection<Submodel> submodels = submodelRepo.getAllSubmodels(PaginationInfo.NO_LIMIT).getResult();
9898
Collection<ConceptDescription> conceptDescriptions = conceptDescriptionRepo.getAllConceptDescriptions(PaginationInfo.NO_LIMIT).getResult();
9999

basyx.aasenvironment/basyx.aasenvironment-http/src/test/java/org/eclipse/basyx/digitaltwin/aasenvironment/http/TestAasEnvironmentHTTP_IgnoreDuplicates.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ private void uploadInitialAASX() throws IOException {
113113
}
114114

115115
private void recordInitialCounts() {
116-
initialAasCount = aasRepo.getAllAas(PaginationInfo.NO_LIMIT).getResult().size();
116+
initialAasCount = aasRepo.getAllAas(null, null, PaginationInfo.NO_LIMIT).getResult().size();
117117
initialSmCount = submodelRepo.getAllSubmodels(PaginationInfo.NO_LIMIT).getResult().size();
118118
initialCdCount = conceptDescriptionRepo.getAllConceptDescriptions(PaginationInfo.NO_LIMIT).getResult().size();
119119
}
@@ -137,7 +137,7 @@ private void applyScenarioModifications() {
137137
private void deleteAas() {
138138
aasRepo.deleteAas(AAS_ID);
139139
assertThrows(ElementDoesNotExistException.class, () -> aasRepo.getAas(AAS_ID));
140-
assertEquals(initialAasCount - 1, aasRepo.getAllAas(PaginationInfo.NO_LIMIT).getResult().size());
140+
assertEquals(initialAasCount - 1, aasRepo.getAllAas(null, null, PaginationInfo.NO_LIMIT).getResult().size());
141141
}
142142

143143
private void deleteSubmodel() {
@@ -162,7 +162,7 @@ private void reuploadAASX() throws IOException {
162162
}
163163

164164
private void verifyFinalState() {
165-
assertEquals(initialAasCount, aasRepo.getAllAas(PaginationInfo.NO_LIMIT).getResult().size());
165+
assertEquals(initialAasCount, aasRepo.getAllAas(null, null, PaginationInfo.NO_LIMIT).getResult().size());
166166
assertEquals(initialSmCount, submodelRepo.getAllSubmodels(PaginationInfo.NO_LIMIT).getResult().size());
167167
assertEquals(initialCdCount, conceptDescriptionRepo.getAllConceptDescriptions(PaginationInfo.NO_LIMIT).getResult().size());
168168
}

basyx.aasenvironment/basyx.aasenvironment.component/src/test/java/org/eclipse/digitaltwin/basyx/aasenvironment/component/KafkaEventsInMemoryStorageIntegrationTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ public void testFeatureIsEnabled() {
143143

144144
@After
145145
public void cleanup() throws InterruptedException {
146-
for (AssetAdministrationShell aas : aasRepo.getAllAas(new PaginationInfo(null, null)).getResult()) {
146+
for (AssetAdministrationShell aas : aasRepo.getAllAas(null, null, new PaginationInfo(null, null)).getResult()) {
147147
aasRepo.deleteAas(aas.getId());
148148
AasEvent aasEvt = aasEventListener.next();
149149
Assert.assertEquals(AasEventType.AAS_DELETED, aasEvt.getType());

basyx.aasenvironment/basyx.aasenvironment.component/src/test/java/org/eclipse/digitaltwin/basyx/aasenvironment/component/TestEnvironmentWithRegistryIntegration.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ private static InputStream getIsFromClasspath(String fileName) throws IOExceptio
117117
}
118118

119119
private static void assertRepositoriesAreEmpty() {
120-
assertTrue(aasRepository.getAllAas(PaginationInfo.NO_LIMIT).getResult().isEmpty());
120+
assertTrue(aasRepository.getAllAas(null, null, PaginationInfo.NO_LIMIT).getResult().isEmpty());
121121
assertTrue(smRepository.getAllSubmodels(PaginationInfo.NO_LIMIT).getResult().isEmpty());
122122
}
123123

basyx.aasrepository/basyx.aasrepository-backend/src/main/java/org/eclipse/digitaltwin/basyx/aasrepository/backend/CrudAasRepository.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import org.eclipse.digitaltwin.aas4j.v3.model.AssetAdministrationShell;
2828
import org.eclipse.digitaltwin.aas4j.v3.model.AssetInformation;
2929
import org.eclipse.digitaltwin.aas4j.v3.model.Reference;
30+
import org.eclipse.digitaltwin.aas4j.v3.model.SpecificAssetId;
3031
import org.eclipse.digitaltwin.basyx.aasrepository.AasRepository;
3132
import org.eclipse.digitaltwin.basyx.aasservice.AasService;
3233
import org.eclipse.digitaltwin.basyx.aasservice.AasServiceFactory;
@@ -68,9 +69,9 @@ public CrudAasRepository(AasBackend aasBackend, AasServiceFactory aasServiceFact
6869
}
6970

7071
@Override
71-
public CursorResult<List<AssetAdministrationShell>> getAllAas(PaginationInfo pInfo) {
72+
public CursorResult<List<AssetAdministrationShell>> getAllAas(List<SpecificAssetId> assetIds, String idShort, PaginationInfo pInfo) {
7273

73-
Iterable<AssetAdministrationShell> iterable = aasBackend.findAll();
74+
Iterable<AssetAdministrationShell> iterable = aasBackend.getAllAas(assetIds, idShort);
7475
List<AssetAdministrationShell> allAas = StreamSupport.stream(iterable.spliterator(), false).toList();
7576

7677
TreeMap<String, AssetAdministrationShell> aasMap = allAas.stream().collect(Collectors.toMap(AssetAdministrationShell::getId, aas -> aas, (a, b) -> a, TreeMap::new));

0 commit comments

Comments
 (0)