diff --git a/hawkbit-ddi/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DdiConfirmationBaseTest.java b/hawkbit-ddi/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DdiConfirmationBaseTest.java index 9e789df84..571e85e6e 100644 --- a/hawkbit-ddi/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DdiConfirmationBaseTest.java +++ b/hawkbit-ddi/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DdiConfirmationBaseTest.java @@ -122,7 +122,7 @@ class DdiConfirmationBaseTest extends AbstractDDiApiIntegrationTest { .isLessThanOrEqualTo(System.currentTimeMillis()); assertThat(actionStatusRepository.count()).isEqualTo(2); - final DistributionSet findDistributionSetByAction = distributionSetManagement.getByAction(action.getId()).get(); + final DistributionSet findDistributionSetByAction = distributionSetManagement.findByAction(action.getId()).get(); getAndVerifyConfirmationBasePayload( DEFAULT_CONTROLLER_ID, MediaType.APPLICATION_JSON, ds, artifact, diff --git a/hawkbit-ddi/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DdiDeploymentBaseTest.java b/hawkbit-ddi/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DdiDeploymentBaseTest.java index 8feb57677..fdd0383f1 100644 --- a/hawkbit-ddi/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DdiDeploymentBaseTest.java +++ b/hawkbit-ddi/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DdiDeploymentBaseTest.java @@ -181,7 +181,7 @@ class DdiDeploymentBaseTest extends AbstractDDiApiIntegrationTest { .isLessThanOrEqualTo(System.currentTimeMillis()); assertThat(countActionStatusAll()).isEqualTo(2); - final DistributionSet findDistributionSetByAction = distributionSetManagement.getByAction(action.getId()).get(); + final DistributionSet findDistributionSetByAction = distributionSetManagement.findByAction(action.getId()).get(); getAndVerifyDeploymentBasePayload(DEFAULT_CONTROLLER_ID, MediaType.APPLICATION_JSON, ds, artifact, artifactSignature, action.getId(), findDistributionSetByAction.findFirstModuleByType(osType).get().getId(), "forced", "forced"); @@ -244,9 +244,9 @@ class DdiDeploymentBaseTest extends AbstractDDiApiIntegrationTest { final Artifact artifactSignature = testdataFactory.createArtifact(nextBytes(ARTIFACT_SIZE), getOsModule(ds), "test1.signature", ARTIFACT_SIZE); - softwareModuleManagement.createMetaData(entityFactory.softwareModuleMetadata().create(getOsModule(ds)) + softwareModuleManagement.updateMetaData(entityFactory.softwareModuleMetadata().create(getOsModule(ds)) .key(visibleMetadataOsKey).value(visibleMetadataOsValue).targetVisible(true)); - softwareModuleManagement.createMetaData(entityFactory.softwareModuleMetadata().create(getOsModule(ds)) + softwareModuleManagement.updateMetaData(entityFactory.softwareModuleMetadata().create(getOsModule(ds)) .key("metaDataNotVisible").value("withValue").targetVisible(false)); final Target savedTarget = createTargetAndAssertNoActiveActions(); @@ -279,7 +279,7 @@ class DdiDeploymentBaseTest extends AbstractDDiApiIntegrationTest { .isLessThanOrEqualTo(System.currentTimeMillis()); assertThat(countActionStatusAll()).isEqualTo(2); - final DistributionSet findDistributionSetByAction = distributionSetManagement.getByAction(action.getId()).get(); + final DistributionSet findDistributionSetByAction = distributionSetManagement.findByAction(action.getId()).get(); getAndVerifyDeploymentBasePayload(DEFAULT_CONTROLLER_ID, MediaType.APPLICATION_JSON, ds, visibleMetadataOsKey, visibleMetadataOsValue, artifact, artifactSignature, action.getId(), "attempt", "attempt", @@ -334,7 +334,7 @@ class DdiDeploymentBaseTest extends AbstractDDiApiIntegrationTest { .isLessThanOrEqualTo(System.currentTimeMillis()); assertThat(countActionStatusAll()).isEqualTo(2); - final DistributionSet findDistributionSetByAction = distributionSetManagement.getByAction(action.getId()).get(); + final DistributionSet findDistributionSetByAction = distributionSetManagement.findByAction(action.getId()).get(); getAndVerifyDeploymentBasePayload(DEFAULT_CONTROLLER_ID, MediaType.APPLICATION_JSON, ds, artifact, artifactSignature, action.getId(), findDistributionSetByAction.findFirstModuleByType(osType).get().getId(), "forced", "forced"); @@ -361,9 +361,9 @@ class DdiDeploymentBaseTest extends AbstractDDiApiIntegrationTest { final Artifact artifactSignature = testdataFactory.createArtifact( nextBytes(ARTIFACT_SIZE), getOsModule(ds), "test1.signature", ARTIFACT_SIZE); - softwareModuleManagement.createMetaData(entityFactory.softwareModuleMetadata().create(getOsModule(ds)) + softwareModuleManagement.updateMetaData(entityFactory.softwareModuleMetadata().create(getOsModule(ds)) .key("metaDataVisible").value("withValue").targetVisible(true)); - softwareModuleManagement.createMetaData(entityFactory.softwareModuleMetadata().create(getOsModule(ds)) + softwareModuleManagement.updateMetaData(entityFactory.softwareModuleMetadata().create(getOsModule(ds)) .key("metaDataNotVisible").value("withValue").targetVisible(false)); final Target savedTarget = createTargetAndAssertNoActiveActions(); @@ -399,7 +399,7 @@ class DdiDeploymentBaseTest extends AbstractDDiApiIntegrationTest { .isLessThanOrEqualTo(System.currentTimeMillis()); assertThat(countActionStatusAll()).isEqualTo(2); - final DistributionSet findDistributionSetByAction = distributionSetManagement.getByAction(action.getId()).get(); + final DistributionSet findDistributionSetByAction = distributionSetManagement.findByAction(action.getId()).get(); getAndVerifyDeploymentBasePayload(DEFAULT_CONTROLLER_ID, MediaType.APPLICATION_JSON, ds, "metaDataVisible", "withValue", artifact, artifactSignature, action.getId(), "forced", "skip", getOsModule(findDistributionSetByAction)); @@ -794,7 +794,7 @@ class DdiDeploymentBaseTest extends AbstractDDiApiIntegrationTest { } private Page findActionStatusAll(final Pageable pageable) { - return JpaManagementHelper.findAllWithCountBySpec(actionStatusRepository, pageable, null); + return JpaManagementHelper.findAllWithCountBySpec(actionStatusRepository, null, pageable); } private static class ActionStatusCondition extends Condition { diff --git a/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtDistributionSetResource.java b/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtDistributionSetResource.java index 7ab72fb11..850b5d30e 100644 --- a/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtDistributionSetResource.java +++ b/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtDistributionSetResource.java @@ -119,7 +119,7 @@ public class MgmtDistributionSetResource implements MgmtDistributionSetRestApi { final Slice findDsPage; final long countModulesAll; if (rsqlParam != null) { - findDsPage = distributionSetManagement.findByRsql(pageable, rsqlParam); + findDsPage = distributionSetManagement.findByRsql(rsqlParam, pageable); countModulesAll = ((Page) findDsPage).getTotalElements(); } else { findDsPage = distributionSetManagement.findAll(pageable); @@ -150,7 +150,7 @@ public class MgmtDistributionSetResource implements MgmtDistributionSetRestApi { //check if there is already deleted DS Type for (MgmtDistributionSetRequestBodyPost ds : sets) { - final Optional opt = distributionSetTypeManagement.getByKey(ds.getType()); + final Optional opt = distributionSetTypeManagement.findByKey(ds.getType()); opt.ifPresent(dsType -> { if (dsType.isDeleted()) { final String text = "Cannot create Distribution Set from type with key {0}. Distribution Set Type already deleted!"; @@ -288,10 +288,10 @@ public class MgmtDistributionSetResource implements MgmtDistributionSetRestApi { final Page metaDataPage; if (rsqlParam != null) { - metaDataPage = distributionSetManagement.findMetaDataByDistributionSetIdAndRsql(pageable, distributionSetId, - rsqlParam); + metaDataPage = distributionSetManagement.findMetaDataByDistributionSetIdAndRsql(distributionSetId, rsqlParam, pageable + ); } else { - metaDataPage = distributionSetManagement.findMetaDataByDistributionSetId(pageable, distributionSetId); + metaDataPage = distributionSetManagement.findMetaDataByDistributionSetId(distributionSetId, pageable); } return ResponseEntity @@ -302,7 +302,7 @@ public class MgmtDistributionSetResource implements MgmtDistributionSetRestApi { public ResponseEntity getMetadataValue(final Long distributionSetId, final String metadataKey) { // check if distribution set exists otherwise throw exception immediately final DistributionSetMetadata findOne = distributionSetManagement - .getMetaDataByDistributionSetId(distributionSetId, metadataKey) + .findMetaDataByDistributionSetId(distributionSetId, metadataKey) .orElseThrow(() -> new EntityNotFoundException(DistributionSetMetadata.class, distributionSetId, metadataKey)); return ResponseEntity.ok(MgmtDistributionSetMapper.toResponseDsMetadata(findOne)); } @@ -326,7 +326,7 @@ public class MgmtDistributionSetResource implements MgmtDistributionSetRestApi { @Override public ResponseEntity> createMetadata(final Long distributionSetId, final List metadataRest) { // check if distribution set exists otherwise throw exception immediately - final List created = distributionSetManagement.createMetaData(distributionSetId, + final List created = distributionSetManagement.putMetaData(distributionSetId, MgmtDistributionSetMapper.fromRequestDsMetadata(metadataRest, entityFactory)); return new ResponseEntity<>(MgmtDistributionSetMapper.toResponseDsMetadata(created), HttpStatus.CREATED); @@ -357,7 +357,7 @@ public class MgmtDistributionSetResource implements MgmtDistributionSetRestApi { final int sanitizedLimitParam = PagingUtility.sanitizePageLimitParam(pagingLimitParam); final Sort sorting = PagingUtility.sanitizeSoftwareModuleSortParam(sortParam); final Pageable pageable = new OffsetBasedPageRequest(sanitizedOffsetParam, sanitizedLimitParam, sorting); - final Page softwaremodules = softwareModuleManagement.findByAssignedTo(pageable, distributionSetId); + final Page softwaremodules = softwareModuleManagement.findByAssignedTo(distributionSetId, pageable); return ResponseEntity.ok(new PagedList<>(MgmtSoftwareModuleMapper.toResponse( softwaremodules.getContent()), softwaremodules.getTotalElements())); } diff --git a/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtDistributionSetTagResource.java b/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtDistributionSetTagResource.java index ab29d7861..b84891ec6 100644 --- a/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtDistributionSetTagResource.java +++ b/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtDistributionSetTagResource.java @@ -70,7 +70,7 @@ public class MgmtDistributionSetTagResource implements MgmtDistributionSetTagRes distributionSetTags = distributionSetTagManagement.findAll(pageable); count = distributionSetTagManagement.count(); } else { - final Page page = distributionSetTagManagement.findByRsql(pageable, rsqlParam); + final Page page = distributionSetTagManagement.findByRsql(rsqlParam, pageable); distributionSetTags = page; count = page.getTotalElements(); } @@ -137,9 +137,9 @@ public class MgmtDistributionSetTagResource implements MgmtDistributionSetTagRes final Pageable pageable = new OffsetBasedPageRequest(sanitizedOffsetParam, sanitizedLimitParam, sorting); Page findDistrAll; if (rsqlParam == null) { - findDistrAll = distributionSetManagement.findByTag(pageable, distributionsetTagId); + findDistrAll = distributionSetManagement.findByTag(distributionsetTagId, pageable); } else { - findDistrAll = distributionSetManagement.findByRsqlAndTag(pageable, rsqlParam, distributionsetTagId); + findDistrAll = distributionSetManagement.findByRsqlAndTag(rsqlParam, distributionsetTagId, pageable); } final List rest = MgmtDistributionSetMapper.toResponseFromDsList(findDistrAll.getContent()); diff --git a/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtDistributionSetTypeResource.java b/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtDistributionSetTypeResource.java index e92318a4e..ecbe651f2 100644 --- a/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtDistributionSetTypeResource.java +++ b/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtDistributionSetTypeResource.java @@ -65,7 +65,7 @@ public class MgmtDistributionSetTypeResource implements MgmtDistributionSetTypeR final Slice findModuleTypessAll; long countModulesAll; if (rsqlParam != null) { - findModuleTypessAll = distributionSetTypeManagement.findByRsql(pageable, rsqlParam); + findModuleTypessAll = distributionSetTypeManagement.findByRsql(rsqlParam, pageable); countModulesAll = ((Page) findModuleTypessAll).getTotalElements(); } else { findModuleTypessAll = distributionSetTypeManagement.findAll(pageable); diff --git a/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtSoftwareModuleResource.java b/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtSoftwareModuleResource.java index b9f35ee1a..fbcc692b4 100644 --- a/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtSoftwareModuleResource.java +++ b/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtSoftwareModuleResource.java @@ -165,7 +165,7 @@ public class MgmtSoftwareModuleResource implements MgmtSoftwareModuleRestApi { final Slice findModulesAll; final long countModulesAll; if (rsqlParam != null) { - findModulesAll = softwareModuleManagement.findByRsql(pageable, rsqlParam); + findModulesAll = softwareModuleManagement.findByRsql(rsqlParam, pageable); countModulesAll = ((Page) findModulesAll).getTotalElements(); } else { findModulesAll = softwareModuleManagement.findAll(pageable); @@ -191,7 +191,7 @@ public class MgmtSoftwareModuleResource implements MgmtSoftwareModuleRestApi { log.debug("creating {} softwareModules", softwareModules.size()); for (final MgmtSoftwareModuleRequestBodyPost sm : softwareModules) { - final Optional opt = softwareModuleTypeManagement.getByKey(sm.getType()); + final Optional opt = softwareModuleTypeManagement.findByKey(sm.getType()); opt.ifPresent(smType -> { if (smType.isDeleted()) { final String text = "Cannot create Software Module from type with key {0}. Software Module Type already deleted!"; @@ -245,7 +245,7 @@ public class MgmtSoftwareModuleResource implements MgmtSoftwareModuleRestApi { final Page metaDataPage; if (rsqlParam != null) { - metaDataPage = softwareModuleManagement.findMetaDataByRsql(pageable, softwareModuleId, rsqlParam); + metaDataPage = softwareModuleManagement.findMetaDataByRsql(softwareModuleId, rsqlParam, pageable); } else { metaDataPage = softwareModuleManagement.findMetaDataBySoftwareModuleId(pageable, softwareModuleId); } @@ -257,7 +257,7 @@ public class MgmtSoftwareModuleResource implements MgmtSoftwareModuleRestApi { @Override public ResponseEntity getMetadataValue(final Long softwareModuleId, final String metadataKey) { final SoftwareModuleMetadata findOne = softwareModuleManagement - .getMetaDataBySoftwareModuleId(softwareModuleId, metadataKey).orElseThrow( + .findMetaDataBySoftwareModuleId(softwareModuleId, metadataKey).orElseThrow( () -> new EntityNotFoundException(SoftwareModuleMetadata.class, softwareModuleId, metadataKey)); return ResponseEntity.ok(MgmtSoftwareModuleMapper.toResponseSwMetadata(findOne)); @@ -282,7 +282,7 @@ public class MgmtSoftwareModuleResource implements MgmtSoftwareModuleRestApi { @Override public ResponseEntity> createMetadata( final Long softwareModuleId, final List metadataRest) { - final List created = softwareModuleManagement.createMetaData( + final List created = softwareModuleManagement.putMetaData( MgmtSoftwareModuleMapper.fromRequestSwMetadata(entityFactory, softwareModuleId, metadataRest)); return ResponseEntity.status(HttpStatus.CREATED).body(MgmtSoftwareModuleMapper.toResponseSwMetadata(created)); diff --git a/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtSoftwareModuleTypeResource.java b/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtSoftwareModuleTypeResource.java index 16069e8a5..fa80aa946 100644 --- a/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtSoftwareModuleTypeResource.java +++ b/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtSoftwareModuleTypeResource.java @@ -56,7 +56,7 @@ public class MgmtSoftwareModuleTypeResource implements MgmtSoftwareModuleTypeRes final Slice findModuleTypessAll; final long countModulesAll; if (rsqlParam != null) { - findModuleTypessAll = softwareModuleTypeManagement.findByRsql(pageable, rsqlParam); + findModuleTypessAll = softwareModuleTypeManagement.findByRsql(rsqlParam, pageable); countModulesAll = ((Page) findModuleTypessAll).getTotalElements(); } else { findModuleTypessAll = softwareModuleTypeManagement.findAll(pageable); diff --git a/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtDistributionSetResourceTest.java b/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtDistributionSetResourceTest.java index 69d532420..b439838b2 100644 --- a/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtDistributionSetResourceTest.java +++ b/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtDistributionSetResourceTest.java @@ -357,7 +357,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr distributionSetTypeManagement.delete(type.getId()); // check if the ds type is marked as deleted - final Optional opt = distributionSetTypeManagement.getByKey(type.getKey()); + final Optional opt = distributionSetTypeManagement.findByKey(type.getKey()); if (opt.isEmpty()) { throw new AssertionError("The Optional object of distribution set type should not be empty!"); } @@ -883,13 +883,13 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr final MvcResult mvcResult = executeMgmtTargetPost(one, two, three); one = distributionSetManagement - .getWithDetails(distributionSetManagement.findByRsql(PAGE, "name==one").getContent().get(0).getId()) + .getWithDetails(distributionSetManagement.findByRsql("name==one", PAGE).getContent().get(0).getId()) .get(); two = distributionSetManagement - .getWithDetails(distributionSetManagement.findByRsql(PAGE, "name==two").getContent().get(0).getId()) + .getWithDetails(distributionSetManagement.findByRsql("name==two", PAGE).getContent().get(0).getId()) .get(); three = distributionSetManagement - .getWithDetails(distributionSetManagement.findByRsql(PAGE, "name==three").getContent().get(0).getId()) + .getWithDetails(distributionSetManagement.findByRsql("name==three", PAGE).getContent().get(0).getId()) .get(); assertThat( @@ -1122,9 +1122,9 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr .andExpect(jsonPath("[1]value", equalTo(knownValue2))); final DistributionSetMetadata metaKey1 = distributionSetManagement - .getMetaDataByDistributionSetId(testDS.getId(), knownKey1).get(); + .findMetaDataByDistributionSetId(testDS.getId(), knownKey1).get(); final DistributionSetMetadata metaKey2 = distributionSetManagement - .getMetaDataByDistributionSetId(testDS.getId(), knownKey2).get(); + .findMetaDataByDistributionSetId(testDS.getId(), knownKey2).get(); assertThat(metaKey1.getValue()).isEqualTo(knownValue1); assertThat(metaKey2.getValue()).isEqualTo(knownValue2); @@ -1145,7 +1145,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr // verify that the number of meta data entries has not changed // (we cannot use the PAGE constant here as it tries to sort by ID) assertThat(distributionSetManagement - .findMetaDataByDistributionSetId(PageRequest.of(0, Integer.MAX_VALUE), testDS.getId()) + .findMetaDataByDistributionSetId(testDS.getId(), PageRequest.of(0, Integer.MAX_VALUE)) .getTotalElements()).isEqualTo(metaData1.length()); } @@ -1173,7 +1173,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr .andExpect(jsonPath("value", equalTo(updateValue))); final DistributionSetMetadata assertDS = distributionSetManagement - .getMetaDataByDistributionSetId(testDS.getId(), knownKey).get(); + .findMetaDataByDistributionSetId(testDS.getId(), knownKey).get(); assertThat(assertDS.getValue()).isEqualTo(updateValue); } @@ -1192,7 +1192,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr .andDo(MockMvcResultPrinter.print()) .andExpect(status().isOk()); - assertThat(distributionSetManagement.getMetaDataByDistributionSetId(testDS.getId(), knownKey)).isNotPresent(); + assertThat(distributionSetManagement.findMetaDataByDistributionSetId(testDS.getId(), knownKey)).isNotPresent(); } @Test @@ -1213,7 +1213,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr .andDo(MockMvcResultPrinter.print()) .andExpect(status().isNotFound()); - assertThat(distributionSetManagement.getMetaDataByDistributionSetId(testDS.getId(), knownKey)).isPresent(); + assertThat(distributionSetManagement.findMetaDataByDistributionSetId(testDS.getId(), knownKey)).isPresent(); } @Test @@ -1240,7 +1240,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr final String knownValuePrefix = "knownValue"; final DistributionSet testDS = testdataFactory.createDistributionSet("one"); for (int index = 0; index < totalMetadata; index++) { - distributionSetManagement.createMetaData(testDS.getId(), + distributionSetManagement.putMetaData(testDS.getId(), List.of(entityFactory.generateDsMetadata(knownKeyPrefix + index, knownValuePrefix + index))); } diff --git a/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtDistributionSetTagResourceTest.java b/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtDistributionSetTagResourceTest.java index 76e74cc8d..09bde1f41 100644 --- a/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtDistributionSetTagResourceTest.java +++ b/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtDistributionSetTagResourceTest.java @@ -194,11 +194,11 @@ public class MgmtDistributionSetTagResourceTest extends AbstractManagementApiInt .andExpect(status().isCreated()) .andExpect(content().contentType(MediaType.APPLICATION_JSON_VALUE)); - final Tag createdOne = distributionSetTagManagement.findByRsql(PAGE, "name==thetest1").getContent().get(0); + final Tag createdOne = distributionSetTagManagement.findByRsql("name==thetest1", PAGE).getContent().get(0); assertThat(createdOne.getName()).isEqualTo(tagOne.getName()); assertThat(createdOne.getDescription()).isEqualTo(tagOne.getDescription()); assertThat(createdOne.getColour()).isEqualTo(tagOne.getColour()); - final Tag createdTwo = distributionSetTagManagement.findByRsql(PAGE, "name==thetest2").getContent().get(0); + final Tag createdTwo = distributionSetTagManagement.findByRsql("name==thetest2", PAGE).getContent().get(0); assertThat(createdTwo.getName()).isEqualTo(tagTwo.getName()); assertThat(createdTwo.getDescription()).isEqualTo(tagTwo.getDescription()); assertThat(createdTwo.getColour()).isEqualTo(tagTwo.getColour()); @@ -227,7 +227,7 @@ public class MgmtDistributionSetTagResourceTest extends AbstractManagementApiInt .andExpect(status().isOk()) .andExpect(content().contentType(MediaType.APPLICATION_JSON_VALUE)); - final Tag updated = distributionSetTagManagement.findByRsql(PAGE, "name==updatedName").getContent().get(0); + final Tag updated = distributionSetTagManagement.findByRsql("name==updatedName", PAGE).getContent().get(0); assertThat(updated.getName()).isEqualTo(update.getName()); assertThat(updated.getDescription()).isEqualTo(update.getDescription()); assertThat(updated.getColour()).isEqualTo(update.getColour()); @@ -333,7 +333,7 @@ public class MgmtDistributionSetTagResourceTest extends AbstractManagementApiInt // 2 DistributionSetUpdateEvent ResultActions result = toggle(tag, sets); - List updated = distributionSetManagement.findByTag(PAGE, tag.getId()).getContent(); + List updated = distributionSetManagement.findByTag(tag.getId(), PAGE).getContent(); assertThat(updated.stream().map(DistributionSet::getId).collect(Collectors.toList())) .containsAll(sets.stream().map(DistributionSet::getId).collect(Collectors.toList())); @@ -349,7 +349,7 @@ public class MgmtDistributionSetTagResourceTest extends AbstractManagementApiInt result.andExpect(applyBaseEntityMatcherOnArrayResult(updated.get(0), "unassignedDistributionSets")) .andExpect(applyBaseEntityMatcherOnArrayResult(updated.get(1), "unassignedDistributionSets")); - assertThat(distributionSetManagement.findByTag(PAGE, tag.getId())).isEmpty(); + assertThat(distributionSetManagement.findByTag(tag.getId(), PAGE)).isEmpty(); } @Test @@ -367,7 +367,7 @@ public class MgmtDistributionSetTagResourceTest extends AbstractManagementApiInt .andDo(MockMvcResultPrinter.print()) .andExpect(status().isOk()); - final List updated = distributionSetManagement.findByTag(PAGE, tag.getId()).getContent(); + final List updated = distributionSetManagement.findByTag(tag.getId(), PAGE).getContent(); assertThat(updated.stream().map(DistributionSet::getId).collect(Collectors.toList())) .containsOnly(set.getId()); } @@ -389,7 +389,7 @@ public class MgmtDistributionSetTagResourceTest extends AbstractManagementApiInt .andDo(MockMvcResultPrinter.print()) .andExpect(status().isOk()); - final List updated = distributionSetManagement.findByTag(PAGE, tag.getId()).getContent(); + final List updated = distributionSetManagement.findByTag(tag.getId(), PAGE).getContent(); assertThat(updated.stream().map(DistributionSet::getId).collect(Collectors.toList())) .containsAll(sets.stream().map(DistributionSet::getId).collect(Collectors.toList())); } @@ -414,7 +414,7 @@ public class MgmtDistributionSetTagResourceTest extends AbstractManagementApiInt .andDo(MockMvcResultPrinter.print()) .andExpect(status().isOk()); - final List updated = distributionSetManagement.findByTag(PAGE, tag.getId()).getContent(); + final List updated = distributionSetManagement.findByTag(tag.getId(), PAGE).getContent(); assertThat(updated.stream().map(DistributionSet::getId).collect(Collectors.toList())) .containsOnly(assigned.getId()); } @@ -440,7 +440,7 @@ public class MgmtDistributionSetTagResourceTest extends AbstractManagementApiInt .andDo(MockMvcResultPrinter.print()) .andExpect(status().isOk()); - final List updated = distributionSetManagement.findByTag(PAGE, tag.getId()).getContent(); + final List updated = distributionSetManagement.findByTag(tag.getId(), PAGE).getContent(); assertThat(updated.stream().map(DistributionSet::getId).collect(Collectors.toList())) .containsOnly(assigned.getId()); } @@ -505,7 +505,7 @@ public class MgmtDistributionSetTagResourceTest extends AbstractManagementApiInt .andExpect(status().isOk()) .andExpect(content().contentType(MediaType.APPLICATION_JSON_VALUE)); - final List updated = distributionSetManagement.findByTag(PAGE, tag.getId()).getContent(); + final List updated = distributionSetManagement.findByTag(tag.getId(), PAGE).getContent(); assertThat(updated.stream().map(DistributionSet::getId).collect(Collectors.toList())) .containsAll(sets.stream().map(DistributionSet::getId).collect(Collectors.toList())); diff --git a/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtDistributionSetTypeResourceTest.java b/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtDistributionSetTypeResourceTest.java index a152027dc..98f39878a 100644 --- a/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtDistributionSetTypeResourceTest.java +++ b/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtDistributionSetTypeResourceTest.java @@ -675,9 +675,9 @@ class MgmtDistributionSetTypeResourceTest extends AbstractManagementApiIntegrati @Step private void verifyCreatedDistributionSetTypes(final MvcResult mvcResult) throws UnsupportedEncodingException { - final DistributionSetType created1 = distributionSetTypeManagement.getByKey("testKey1").get(); - final DistributionSetType created2 = distributionSetTypeManagement.getByKey("testKey2").get(); - final DistributionSetType created3 = distributionSetTypeManagement.getByKey("testKey3").get(); + final DistributionSetType created1 = distributionSetTypeManagement.findByKey("testKey1").get(); + final DistributionSetType created2 = distributionSetTypeManagement.findByKey("testKey2").get(); + final DistributionSetType created3 = distributionSetTypeManagement.findByKey("testKey3").get(); assertThat(created1.getMandatoryModuleTypes()).containsOnly(osType); assertThat(created1.getOptionalModuleTypes()).containsOnly(runtimeType); diff --git a/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtSoftwareModuleResourceTest.java b/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtSoftwareModuleResourceTest.java index ec99ffe54..e072ae4eb 100644 --- a/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtSoftwareModuleResourceTest.java +++ b/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtSoftwareModuleResourceTest.java @@ -117,7 +117,7 @@ class MgmtSoftwareModuleResourceTest extends AbstractManagementApiIntegrationTes softwareModuleTypeManagement.delete(sm.getType().getId()); //check if it is marked as deleted - final Optional opt = softwareModuleTypeManagement.getByKey(SM_TYPE); + final Optional opt = softwareModuleTypeManagement.findByKey(SM_TYPE); if (opt.isEmpty()) { throw new AssertionError("The Optional object of software module type should not be empty!"); } @@ -164,7 +164,7 @@ class MgmtSoftwareModuleResourceTest extends AbstractManagementApiIntegrationTes final SoftwareModule module = testdataFactory.createDistributionSet("one").findFirstModuleByType(osType).get(); for (int index = 0; index < totalMetadata; index++) { - softwareModuleManagement.createMetaData(entityFactory.softwareModuleMetadata().create(module.getId()) + softwareModuleManagement.updateMetaData(entityFactory.softwareModuleMetadata().create(module.getId()) .key(knownKeyPrefix + index).value(knownValuePrefix + index)); } @@ -184,7 +184,7 @@ class MgmtSoftwareModuleResourceTest extends AbstractManagementApiIntegrationTes final SoftwareModule module = testdataFactory.createDistributionSet("one").findFirstModuleByType(osType).get(); for (int index = 0; index < totalMetadata; index++) { - softwareModuleManagement.createMetaData(entityFactory.softwareModuleMetadata().create(module.getId()) + softwareModuleManagement.updateMetaData(entityFactory.softwareModuleMetadata().create(module.getId()) .key(knownKeyPrefix + index).value(knownValuePrefix + index)); } @@ -204,7 +204,7 @@ class MgmtSoftwareModuleResourceTest extends AbstractManagementApiIntegrationTes final String knownKey = "knownKey"; final String knownValue = "knownValue"; final SoftwareModule module = testdataFactory.createDistributionSet("one").findFirstModuleByType(osType).get(); - softwareModuleManagement.createMetaData( + softwareModuleManagement.updateMetaData( entityFactory.softwareModuleMetadata().create(module.getId()).key(knownKey).value(knownValue)); mvc.perform( @@ -1265,9 +1265,9 @@ class MgmtSoftwareModuleResourceTest extends AbstractManagementApiIntegrationTes .andExpect(jsonPath("[1].createdAt", not(equalTo(0)))) .andReturn(); - final SoftwareModule osCreated = softwareModuleManagement.getByNameAndVersionAndType("name1", "version1", + final SoftwareModule osCreated = softwareModuleManagement.findByNameAndVersionAndType("name1", "version1", osType.getId()).get(); - final SoftwareModule appCreated = softwareModuleManagement.getByNameAndVersionAndType("name3", "version3", + final SoftwareModule appCreated = softwareModuleManagement.findByNameAndVersionAndType("name3", "version3", appType.getId()).get(); assertThat(JsonPath.compile("[0]._links.self.href") @@ -1281,13 +1281,13 @@ class MgmtSoftwareModuleResourceTest extends AbstractManagementApiIntegrationTes .isEqualTo("http://localhost/rest/v1/softwaremodules/" + appCreated.getId()); assertThat(softwareModuleManagement.findAll(PAGE)).as("Wrong softwaremodule size").hasSize(2); - assertThat(softwareModuleManagement.findByType(PAGE, osType.getId()).getContent().get(0).getName()).as( + assertThat(softwareModuleManagement.findByType(osType.getId(), PAGE).getContent().get(0).getName()).as( "Softwaremoudle name is wrong").isEqualTo(os.getName()); - assertThat(softwareModuleManagement.findByType(PAGE, osType.getId()).getContent().get(0).getCreatedBy()).as( + assertThat(softwareModuleManagement.findByType(osType.getId(), PAGE).getContent().get(0).getCreatedBy()).as( "Softwaremoudle created by is wrong").isEqualTo("uploadTester"); - assertThat(softwareModuleManagement.findByType(PAGE, osType.getId()).getContent().get(0).getCreatedAt()).as( + assertThat(softwareModuleManagement.findByType(osType.getId(), PAGE).getContent().get(0).getCreatedAt()).as( "Softwaremoudle created at is wrong").isGreaterThanOrEqualTo(current); - assertThat(softwareModuleManagement.findByType(PAGE, appType.getId()).getContent().get(0).getName()).as( + assertThat(softwareModuleManagement.findByType(appType.getId(), PAGE).getContent().get(0).getName()).as( "Softwaremoudle name is wrong").isEqualTo(ah.getName()); } @@ -1376,9 +1376,9 @@ class MgmtSoftwareModuleResourceTest extends AbstractManagementApiIntegrationTes .andExpect(jsonPath("[1].value", equalTo(knownValue2))) .andExpect(jsonPath("[1].targetVisible", equalTo(true))); - assertThat(softwareModuleManagement.getMetaDataBySoftwareModuleId(sm.getId(), knownKey1)) + assertThat(softwareModuleManagement.findMetaDataBySoftwareModuleId(sm.getId(), knownKey1)) .as("Metadata key is wrong").get().extracting(SoftwareModuleMetadata::getValue).isEqualTo(knownValue1); - assertThat(softwareModuleManagement.getMetaDataBySoftwareModuleId(sm.getId(), knownKey2)) + assertThat(softwareModuleManagement.findMetaDataBySoftwareModuleId(sm.getId(), knownKey2)) .as("Metadata key is wrong").get().extracting(SoftwareModuleMetadata::getValue).isEqualTo(knownValue2); // verify quota enforcement @@ -1411,7 +1411,7 @@ class MgmtSoftwareModuleResourceTest extends AbstractManagementApiIntegrationTes final String updateValue = "valueForUpdate"; final SoftwareModule sm = testdataFactory.createSoftwareModuleOs(); - softwareModuleManagement.createMetaData( + softwareModuleManagement.updateMetaData( entityFactory.softwareModuleMetadata().create(sm.getId()).key(knownKey).value(knownValue)); final JSONObject jsonObject = new JSONObject().put("key", knownKey) @@ -1426,7 +1426,7 @@ class MgmtSoftwareModuleResourceTest extends AbstractManagementApiIntegrationTes .andExpect(jsonPath("key", equalTo(knownKey))) .andExpect(jsonPath("value", equalTo(updateValue))); - final SoftwareModuleMetadata assertDS = softwareModuleManagement.getMetaDataBySoftwareModuleId(sm.getId(), + final SoftwareModuleMetadata assertDS = softwareModuleManagement.findMetaDataBySoftwareModuleId(sm.getId(), knownKey).get(); assertThat(assertDS.getValue()).as("Metadata is wrong").isEqualTo(updateValue); assertThat(assertDS.isTargetVisible()).as("target visible is wrong").isTrue(); @@ -1440,14 +1440,14 @@ class MgmtSoftwareModuleResourceTest extends AbstractManagementApiIntegrationTes final String knownValue = "knownValue"; final SoftwareModule sm = testdataFactory.createSoftwareModuleOs(); - softwareModuleManagement.createMetaData( + softwareModuleManagement.updateMetaData( entityFactory.softwareModuleMetadata().create(sm.getId()).key(knownKey).value(knownValue)); mvc.perform(delete("/rest/v1/softwaremodules/{swId}/metadata/{key}", sm.getId(), knownKey)) .andDo(MockMvcResultPrinter.print()) .andExpect(status().isOk()); - assertThat(softwareModuleManagement.getMetaDataBySoftwareModuleId(sm.getId(), knownKey)).isNotPresent(); + assertThat(softwareModuleManagement.findMetaDataBySoftwareModuleId(sm.getId(), knownKey)).isNotPresent(); } @Test @@ -1458,7 +1458,7 @@ class MgmtSoftwareModuleResourceTest extends AbstractManagementApiIntegrationTes final String knownValue = "knownValue"; final SoftwareModule sm = testdataFactory.createSoftwareModuleOs(); - softwareModuleManagement.createMetaData( + softwareModuleManagement.updateMetaData( entityFactory.softwareModuleMetadata().create(sm.getId()).key(knownKey).value(knownValue)); mvc.perform(delete("/rest/v1/softwaremodules/{swId}/metadata/XXX", sm.getId(), knownKey)) @@ -1469,7 +1469,7 @@ class MgmtSoftwareModuleResourceTest extends AbstractManagementApiIntegrationTes .andDo(MockMvcResultPrinter.print()) .andExpect(status().isNotFound()); - assertThat(softwareModuleManagement.getMetaDataBySoftwareModuleId(sm.getId(), knownKey)).isPresent(); + assertThat(softwareModuleManagement.findMetaDataBySoftwareModuleId(sm.getId(), knownKey)).isPresent(); } @Test @@ -1489,7 +1489,7 @@ class MgmtSoftwareModuleResourceTest extends AbstractManagementApiIntegrationTes final SoftwareModule sm = testdataFactory.createSoftwareModuleOs(); for (int index = 0; index < totalMetadata; index++) { - softwareModuleManagement.createMetaData(entityFactory.softwareModuleMetadata() + softwareModuleManagement.updateMetaData(entityFactory.softwareModuleMetadata() .create(sm.getId()) .key(knownKeyPrefix + index) .value(knownValuePrefix + index)); diff --git a/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtSoftwareModuleTypeResourceTest.java b/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtSoftwareModuleTypeResourceTest.java index 49021019d..c16e96a74 100644 --- a/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtSoftwareModuleTypeResourceTest.java +++ b/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtSoftwareModuleTypeResourceTest.java @@ -210,9 +210,9 @@ public class MgmtSoftwareModuleTypeResourceTest extends AbstractManagementApiInt .andExpect(jsonPath("[2].maxAssignments", equalTo(3))) .andReturn(); - final SoftwareModuleType created1 = softwareModuleTypeManagement.getByKey("test1").get(); - final SoftwareModuleType created2 = softwareModuleTypeManagement.getByKey("test2").get(); - final SoftwareModuleType created3 = softwareModuleTypeManagement.getByKey("test3").get(); + final SoftwareModuleType created1 = softwareModuleTypeManagement.findByKey("test1").get(); + final SoftwareModuleType created2 = softwareModuleTypeManagement.findByKey("test2").get(); + final SoftwareModuleType created3 = softwareModuleTypeManagement.findByKey("test3").get(); assertThat( JsonPath.compile("[0]_links.self.href").read(mvcResult.getResponse().getContentAsString()).toString()) diff --git a/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTargetTypeResourceTest.java b/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTargetTypeResourceTest.java index 3b5999b68..7c19d5777 100644 --- a/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTargetTypeResourceTest.java +++ b/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTargetTypeResourceTest.java @@ -390,7 +390,7 @@ class MgmtTargetTypeResourceTest extends AbstractManagementApiIntegrationTest { void deletingDsTypeRemovesAssignmentFromTargetType() throws Exception { TargetType testType = createTestTargetTypeInDB("TestTypeRemoveDs", Collections.singletonList(standardDsType)); assertThat(testType.getCompatibleDistributionSetTypes()).hasSize(1); - assertThat(distributionSetTypeManagement.getByKey(standardDsType.getKey())).isNotEmpty(); + assertThat(distributionSetTypeManagement.findByKey(standardDsType.getKey())).isNotEmpty(); mvc.perform(delete(MgmtRestConstants.DISTRIBUTIONSETTYPE_V1_REQUEST_MAPPING + "/" + standardDsType.getId())) .andDo(MockMvcResultPrinter.print()) @@ -400,7 +400,7 @@ class MgmtTargetTypeResourceTest extends AbstractManagementApiIntegrationTest { assertThat(testType.getLastModifiedBy()).isEqualTo(TEST_USER); assertThat(testType.getOptLockRevision()).isEqualTo(2); assertThat(testType.getCompatibleDistributionSetTypes()).isEmpty(); - assertThat(distributionSetTypeManagement.getByKey(standardDsType.getKey())).isEmpty(); + assertThat(distributionSetTypeManagement.findByKey(standardDsType.getKey())).isEmpty(); } @Test diff --git a/hawkbit-mgmt/hawkbit-mgmt-starter/src/main/java/org/eclipse/hawkbit/autoconfigure/mgmt/MgmtSecurityConfiguration.java b/hawkbit-mgmt/hawkbit-mgmt-starter/src/main/java/org/eclipse/hawkbit/autoconfigure/mgmt/MgmtSecurityConfiguration.java index 8a5b2dc1f..a99e4ff8d 100644 --- a/hawkbit-mgmt/hawkbit-mgmt-starter/src/main/java/org/eclipse/hawkbit/autoconfigure/mgmt/MgmtSecurityConfiguration.java +++ b/hawkbit-mgmt/hawkbit-mgmt-starter/src/main/java/org/eclipse/hawkbit/autoconfigure/mgmt/MgmtSecurityConfiguration.java @@ -80,8 +80,7 @@ public class MgmtSecurityConfiguration { @Qualifier("hawkbitOAuth2ResourceServerCustomizer") final Customizer> oauth2ResourceServerCustomizer, // called just before build of the SecurityFilterChain. // could be used for instance to set authentication provider - // Note: implementation of the customizer shall always take in account what is the already set by the - // hawkBit + // Note: implementation of the customizer shall always take in account what is the already set by the hawkBit @Autowired(required = false) @Qualifier("hawkbitHttpSecurityCustomizer") final Customizer httpSecurityCustomizer, final SystemManagement systemManagement, diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/DistributionSetManagement.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/DistributionSetManagement.java index 18bf411d2..399119f11 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/DistributionSetManagement.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/DistributionSetManagement.java @@ -36,8 +36,6 @@ import org.eclipse.hawkbit.repository.model.DistributionSetTagAssignmentResult; import org.eclipse.hawkbit.repository.model.MetaData; import org.eclipse.hawkbit.repository.model.SoftwareModule; import org.eclipse.hawkbit.repository.model.Statistic; -import org.eclipse.hawkbit.repository.model.Tag; -import org.eclipse.hawkbit.repository.model.Target; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Slice; @@ -46,8 +44,35 @@ import org.springframework.security.access.prepost.PreAuthorize; /** * Management service for {@link DistributionSet}s. */ -public interface DistributionSetManagement - extends RepositoryManagement { +public interface DistributionSetManagement extends RepositoryManagement { + + /** + * Find {@link DistributionSet} based on given ID including (lazy loaded) details, e.g. {@link DistributionSet#getModules()}.
+ * For performance reasons it is recommended to use {@link #get(long)} if the details are not required. + * + * @param id to look for. + * @return {@link DistributionSet} + */ + @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) + Optional getWithDetails(long id); + + /** + * Find distribution set by id and throw an exception if it is (soft) deleted. + * + * @param id id of {@link DistributionSet} + * @return the found valid {@link DistributionSet} + * @throws EntityNotFoundException if distribution set with given ID does not exist + */ + @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) + DistributionSet getOrElseThrowException(long id); + + /** + * Sets the specified {@link DistributionSet} as invalidated. + * + * @param distributionSet the ID of the {@link DistributionSet} to be set to invalid + */ + @PreAuthorize(SpringEvalExpressions.HAS_AUTH_UPDATE_REPOSITORY) + void invalidate(DistributionSet distributionSet); /** * Assigns {@link SoftwareModule} to existing {@link DistributionSet}. @@ -56,25 +81,34 @@ public interface DistributionSetManagement * @param moduleIds to get assigned * @return the updated {@link DistributionSet}. * @throws EntityNotFoundException if (at least one) given module does not exist - * @throws EntityReadOnlyException if use tries to change the {@link DistributionSet} s while - * the DS is already in use. + * @throws EntityReadOnlyException if tries to change the {@link DistributionSet} s while the DS is already in use. * @throws UnsupportedSoftwareModuleForThisDistributionSetException if {@link SoftwareModule#getType()} is not supported by this * {@link DistributionSet#getType()}. - * @throws AssignmentQuotaExceededException if the maximum number of {@link SoftwareModule}s is exceeded - * for the addressed {@link DistributionSet}. + * @throws AssignmentQuotaExceededException if the maximum number of {@link SoftwareModule}s is exceeded for the addressed + * {@link DistributionSet}. */ @PreAuthorize(SpringEvalExpressions.HAS_AUTH_UPDATE_REPOSITORY) DistributionSet assignSoftwareModules(long id, @NotEmpty Collection moduleIds); /** - * Assign a {@link DistributionSetTag} assignment to given - * {@link DistributionSet}s. + * Unassigns a {@link SoftwareModule} form an existing {@link DistributionSet}. + * + * @param id to get unassigned form + * @param moduleId to be unassigned + * @return the updated {@link DistributionSet}. + * @throws EntityNotFoundException if given module or DS does not exist + * @throws EntityReadOnlyException if use tries to change the {@link DistributionSet} s while the DS is already in use. + */ + @PreAuthorize(SpringEvalExpressions.HAS_AUTH_UPDATE_REPOSITORY) + DistributionSet unassignSoftwareModule(long id, long moduleId); + + /** + * Assign a {@link DistributionSetTag} assignment to given {@link DistributionSet}s. * * @param ids to assign for * @param tagId to assign * @return list of assigned ds - * @throws EntityNotFoundException if tag with given ID does not exist or (at least one) of the - * distribution sets. + * @throws EntityNotFoundException if tag with given ID does not exist or (at least one) of the distribution sets. */ @PreAuthorize(SpringEvalExpressions.HAS_AUTH_UPDATE_REPOSITORY) List assignTag(@NotEmpty Collection ids, long tagId); @@ -91,34 +125,42 @@ public interface DistributionSetManagement List unassignTag(@NotEmpty Collection ids, long tagId); /** - * Creates a list of distribution set meta data entries. + * Creates a list of distribution set meta-data entries. * - * @param id if the {@link DistributionSet} the metadata has to be created - * for - * @param metadata the meta data entries to create or update - * @return the updated or created distribution set meta data entries + * @param id if the {@link DistributionSet} the metadata has to be created for + * @param metadata the meta-data entries to create or update + * @return the updated or created distribution set meta-data entries * @throws EntityNotFoundException if given set does not exist - * @throws EntityAlreadyExistsException in case one of the meta data entry already exists for the - * specific key - * @throws AssignmentQuotaExceededException if the maximum number of {@link MetaData} entries is exceeded - * for the addressed {@link DistributionSet} + * @throws EntityAlreadyExistsException in case one of the meta-data entry already exists for the specific key + * @throws AssignmentQuotaExceededException if the maximum number of {@link MetaData} entries is exceeded for the addressed + * {@link DistributionSet} */ @PreAuthorize(SpringEvalExpressions.HAS_AUTH_UPDATE_REPOSITORY) - List createMetaData(long id, @NotEmpty Collection metadata); + List putMetaData(long id, @NotEmpty Collection metadata); /** - * Deletes a distribution set meta data entry. + * Updates a distribution set meta-data value if corresponding entry exists. * - * @param id where meta data has to be deleted - * @param key of the meta data element + * @param id {@link DistributionSet} of the meta-data entry to be updated + * @param metadata meta-data entry to be updated + * @return the updated meta-data entry + * @throws EntityNotFoundException in case the meta-data entry does not exist and cannot be updated + */ + @PreAuthorize(SpringEvalExpressions.HAS_AUTH_UPDATE_REPOSITORY) + DistributionSetMetadata updateMetaData(long id, @NotNull MetaData metadata); + + /** + * Deletes a distribution set meta-data entry. + * + * @param id where meta-data has to be deleted + * @param key of the meta-data element * @throws EntityNotFoundException if given set does not exist */ @PreAuthorize(SpringEvalExpressions.HAS_AUTH_UPDATE_REPOSITORY) void deleteMetaData(long id, @NotEmpty String key); /** - * Locks a distribution set. From then on its functional properties could not be changed and - * it could be assigned to targets + * Locks a distribution set. From then on its functional properties could not be changed, and it could be assigned to targets * * @param id the distribution set id * @throws EntityNotFoundException if distribution set with given ID does not exist @@ -128,8 +170,8 @@ public interface DistributionSetManagement /** * Unlocks a distribution set.
- * Use it with extreme care! In general once distribution set is locked - * it shall not be unlocked. Note that it could have been assigned / deployed to targets. + * Use it with extreme care! In general once distribution set is locked it shall not be unlocked. Note that it could have been assigned / + * deployed to targets. * * @param id the distribution set id * @throws EntityNotFoundException if distribution set with given ID does not exist @@ -138,41 +180,18 @@ public interface DistributionSetManagement void unlock(final long id); /** - * Retrieves the distribution set for a given action. + * Find distribution set by id and throw an exception if it is deleted or invalidated. * - * @param actionId the action associated with the distribution set - * @return the distribution set which is associated with the action - * @throws EntityNotFoundException if action with given ID does not exist + * @param id id of {@link DistributionSet} + * @return the found valid {@link DistributionSet} + * @throws EntityNotFoundException if distribution set with given ID does not exist + * @throws InvalidDistributionSetException if distribution set with given ID is invalidated */ @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) - Optional getByAction(long actionId); + DistributionSet getValid(long id); /** - * Find {@link DistributionSet} based on given ID including (lazy loaded) - * details, e.g. {@link DistributionSet#getModules()}. - * - * Note: for performance reasons it is recommended to use {@link #get(Long)} - * if details are not necessary. - * - * @param id to look for. - * @return {@link DistributionSet} - */ - @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) - Optional getWithDetails(long id); - - /** - * Find distribution set by name and version. - * - * @param distributionName name of {@link DistributionSet}; case insensitive - * @param version version of {@link DistributionSet} - * @return the page with the found {@link DistributionSet} - */ - @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) - Optional getByNameAndVersion(@NotEmpty String distributionName, @NotEmpty String version); - - /** - * Find distribution set by id and throw an exception if it is deleted, - * incomplete or invalidated. + * Find distribution set by id and throw an exception if it is deleted, incomplete or invalidated. * * @param id id of {@link DistributionSet} * @return the found valid {@link DistributionSet} @@ -184,73 +203,57 @@ public interface DistributionSetManagement DistributionSet getValidAndComplete(long id); /** - * Find distribution set by id and throw an exception if it is deleted or - * invalidated. + * Retrieves the distribution set for a given action. * - * @param id id of {@link DistributionSet} - * @return the found valid {@link DistributionSet} - * @throws EntityNotFoundException if distribution set with given ID does not exist - * @throws InvalidDistributionSetException if distribution set with given ID is invalidated + * @param actionId the action associated with the distribution set + * @return the distribution set which is associated with the action + * @throws EntityNotFoundException if action with given ID does not exist */ @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) - DistributionSet getValid(long id); + Optional findByAction(long actionId); /** - * Find distribution set by id and throw an exception if it is (soft) - * deleted. + * Find distribution set by name and version. * - * @param id id of {@link DistributionSet} - * @return the found valid {@link DistributionSet} - * @throws EntityNotFoundException if distribution set with given ID does not exist + * @param distributionName name of {@link DistributionSet}; case insensitive + * @param version version of {@link DistributionSet} + * @return the page with the found {@link DistributionSet} */ @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) - DistributionSet getOrElseThrowException(long id); + Optional findByNameAndVersion(@NotEmpty String distributionName, @NotEmpty String version); /** - * Finds all meta data by the given distribution set id. + * Finds all meta-data by the given distribution set id. * + * @param id the distribution set id to retrieve the meta-data from * @param pageable the page request to page the result - * @param id the distribution set id to retrieve the meta data from - * @return a paged result of all meta data entries for a given distribution + * @return a paged result of all meta-data entries for a given distribution * set id * @throws EntityNotFoundException if distribution set with given ID does not exist */ @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) - Page findMetaDataByDistributionSetId(@NotNull Pageable pageable, long id); + Page findMetaDataByDistributionSetId(long id, @NotNull Pageable pageable); /** - * Counts all meta data by the given distribution set id. + * Finds all meta-data by the given distribution set id. * - * @param id the distribution set id to retrieve the meta data count from - * @return count of ds metadata - * @throws EntityNotFoundException if distribution set with given ID does not exist - */ - @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) - long countMetaDataByDistributionSetId(long id); - - /** - * Finds all meta data by the given distribution set id. - * - * @param pageable the page request to page the result - * @param id the distribution set id to retrieve the meta data from + * @param id the distribution set id to retrieve the meta-data from * @param rsqlParam rsql query string - * @return a paged result of all meta data entries for a given distribution - * set id - * @throws RSQLParameterUnsupportedFieldException if a field in the RSQL string is used but not provided by the - * given {@code fieldNameProvider} + * @param pageable the page request to page the result + * @return a paged result of all meta-data entries for a given distribution set id + * @throws RSQLParameterUnsupportedFieldException if a field in the RSQL string is used but not provided by the given + * {@code fieldNameProvider} * @throws RSQLParameterSyntaxException if the RSQL syntax is wrong * @throws EntityNotFoundException of distribution set with given ID does not exist */ @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) - Page findMetaDataByDistributionSetIdAndRsql(@NotNull Pageable pageable, - long id, @NotNull String rsqlParam); + Page findMetaDataByDistributionSetIdAndRsql(long id, @NotNull String rsqlParam, @NotNull Pageable pageable); /** * Finds all {@link DistributionSet}s based on completeness. * * @param pageable the pagination parameter - * @param complete to true for returning only completed distribution - * sets or false for only incomplete ones nor + * @param complete to true for returning only completed distribution sets or false for only incomplete ones nor * null to return both. * @return all found {@link DistributionSet}s */ @@ -258,26 +261,69 @@ public interface DistributionSetManagement Slice findByCompleted(@NotNull Pageable pageable, Boolean complete); /** - * Counts all {@link DistributionSet}s based on completeness. + * Retrieves {@link DistributionSet}s by filtering on the given parameters. * - * @param complete to true for counting only completed distribution - * sets or false for only incomplete ones nor - * null to count both. - * @return count of all found {@link DistributionSet}s + * @param distributionSetFilter has details of filters to be applied. + * @param pageable page parameter + * @return the page of found {@link DistributionSet} */ @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) - long countByCompleted(Boolean complete); + Slice findByDistributionSetFilter(@NotNull DistributionSetFilter distributionSetFilter, @NotNull Pageable pageable); /** * Retrieves {@link DistributionSet}s by filtering on the given parameters. * + * @param tagId of the tag the DS are assigned to * @param pageable page parameter - * @param distributionSetFilter has details of filters to be applied. * @return the page of found {@link DistributionSet} + * @throws RSQLParameterUnsupportedFieldException if a field in the RSQL string is used but not provided by the + * given {@code fieldNameProvider} + * @throws RSQLParameterSyntaxException if the RSQL syntax is wrong + * @throws EntityNotFoundException of distribution set tag with given ID does not exist */ @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) - Slice findByDistributionSetFilter(@NotNull Pageable pageable, - @NotNull DistributionSetFilter distributionSetFilter); + Page findByTag(long tagId, @NotNull Pageable pageable); + + /** + * Retrieves {@link DistributionSet}s by filtering on the given parameters. + * + * @param rsqlParam rsql query string + * @param tagId of the tag the DS are assigned to + * @param pageable page parameter + * @return the page of found {@link DistributionSet} + * @throws EntityNotFoundException of distribution set tag with given ID does not exist + */ + @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) + Page findByRsqlAndTag(@NotNull String rsqlParam, long tagId, @NotNull Pageable pageable); + + /** + * Finds a single distribution set meta-data by its id. + * + * @param id of the {@link DistributionSet} + * @param key of the meta-data element + * @return the found DistributionSetMetadata + * @throws EntityNotFoundException is set with given ID does not exist + */ + @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) + Optional findMetaDataByDistributionSetId(long id, @NotEmpty String key);/** + * Counts all meta-data by the given distribution set id. + * + * @param id the distribution set id to retrieve the meta-data count from + * @return count of ds metadata + * @throws EntityNotFoundException if distribution set with given ID does not exist + */ + @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) + long countMetaDataByDistributionSetId(long id); + + /** + * Counts all {@link DistributionSet}s based on completeness. + * + * @param complete to true for counting only completed distribution sets or false for only incomplete ones + * nor null to count both. + * @return count of all found {@link DistributionSet}s + */ + @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) + long countByCompleted(Boolean complete); /** * Counts all {@link DistributionSet}s in repository based on given filter. @@ -289,41 +335,15 @@ public interface DistributionSetManagement long countByDistributionSetFilter(@NotNull DistributionSetFilter distributionSetFilter); /** - * Retrieves {@link DistributionSet}s by filtering on the given parameters. + * Count all {@link DistributionSet}s in the repository that are not marked + * as deleted. * - * @param pageable page parameter - * @param tagId of the tag the DS are assigned to - * @return the page of found {@link DistributionSet} - * @throws RSQLParameterUnsupportedFieldException if a field in the RSQL string is used but not provided by the - * given {@code fieldNameProvider} - * @throws RSQLParameterSyntaxException if the RSQL syntax is wrong - * @throws EntityNotFoundException of distribution set tag with given ID does not exist + * @param typeId to look for + * @return number of {@link DistributionSet}s + * @throws EntityNotFoundException if type with given ID does not exist */ @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) - Page findByTag(@NotNull Pageable pageable, long tagId); - - /** - * Retrieves {@link DistributionSet}s by filtering on the given parameters. - * - * @param pageable page parameter - * @param rsqlParam rsql query string - * @param tagId of the tag the DS are assigned to - * @return the page of found {@link DistributionSet} - * @throws EntityNotFoundException of distribution set tag with given ID does not exist - */ - @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) - Page findByRsqlAndTag(@NotNull Pageable pageable, @NotNull String rsqlParam, long tagId); - - /** - * Finds a single distribution set meta data by its id. - * - * @param id of the {@link DistributionSet} - * @param key of the meta data element - * @return the found DistributionSetMetadata - * @throws EntityNotFoundException is set with given ID does not exist - */ - @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) - Optional getMetaDataByDistributionSetId(long id, @NotEmpty String key); + long countByTypeId(long typeId); /** * Checks if a {@link DistributionSet} is currently in use by a target in @@ -335,43 +355,6 @@ public interface DistributionSetManagement @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) boolean isInUse(long id); - /** - * Unassigns a {@link SoftwareModule} form an existing - * {@link DistributionSet}. - * - * @param id to get unassigned form - * @param moduleId to be unassigned - * @return the updated {@link DistributionSet}. - * @throws EntityNotFoundException if given module or DS does not exist - * @throws EntityReadOnlyException if use tries to change the {@link DistributionSet} s while - * the DS is already in use. - */ - @PreAuthorize(SpringEvalExpressions.HAS_AUTH_UPDATE_REPOSITORY) - DistributionSet unassignSoftwareModule(long id, long moduleId); - - /** - * Updates a distribution set meta data value if corresponding entry exists. - * - * @param id {@link DistributionSet} of the meta data entry to be updated - * @param metadata meta data entry to be updated - * @return the updated meta data entry - * @throws EntityNotFoundException in case the meta data entry does not exists and cannot be - * updated - */ - @PreAuthorize(SpringEvalExpressions.HAS_AUTH_UPDATE_REPOSITORY) - DistributionSetMetadata updateMetaData(long id, @NotNull MetaData metadata); - - /** - * Count all {@link DistributionSet}s in the repository that are not marked - * as deleted. - * - * @param typeId to look for - * @return number of {@link DistributionSet}s - * @throws EntityNotFoundException if type with given ID does not exist - */ - @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) - long countByTypeId(long typeId); - /** * Count all {@link org.eclipse.hawkbit.repository.model.Rollout}s by status for * Distribution Set. @@ -402,18 +385,10 @@ public interface DistributionSetManagement @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) Long countAutoAssignmentsForDistributionSet(@NotNull Long id); - /** - * Sets the specified {@link DistributionSet} as invalidated. - * - * @param distributionSet the ID of the {@link DistributionSet} to be set to invalid - */ - @PreAuthorize(SpringEvalExpressions.HAS_AUTH_UPDATE_REPOSITORY) - void invalidate(DistributionSet distributionSet); - /** * Toggles {@link DistributionSetTag} assignment to given * {@link DistributionSet}s by means that if some (or all) of the targets in - * the list have the {@link Tag} not yet assigned, they will be. Only if all + * the list have the {@link org.eclipse.hawkbit.repository.model.Tag} not yet assigned, they will be. Only if all * of theme have the tag already assigned they will be removed instead. * * @param ids to toggle for @@ -438,4 +413,4 @@ public interface DistributionSetManagement @Deprecated(forRemoval = true) @PreAuthorize(SpringEvalExpressions.HAS_AUTH_UPDATE_REPOSITORY) DistributionSet unassignTag(long id, long tagId); -} +} \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/DistributionSetTagManagement.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/DistributionSetTagManagement.java index b4d8a7a2f..697908b01 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/DistributionSetTagManagement.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/DistributionSetTagManagement.java @@ -31,16 +31,6 @@ import org.springframework.security.access.prepost.PreAuthorize; */ public interface DistributionSetTagManagement extends RepositoryManagement { - /** - * Deletes {@link DistributionSetTag} by given - * {@link DistributionSetTag#getName()}. - * - * @param tagName to be deleted - * @throws EntityNotFoundException if tag with given name does not exist - */ - @PreAuthorize(SpringEvalExpressions.HAS_AUTH_DELETE_REPOSITORY) - void delete(@NotEmpty String tagName); - /** * Find {@link DistributionSet} based on given name. * @@ -48,7 +38,7 @@ public interface DistributionSetTagManagement extends RepositoryManagement getByName(@NotEmpty String name); + Optional findByName(@NotEmpty String name); /** * Finds all {@link TargetTag} assigned to given {@link Target}. @@ -60,4 +50,14 @@ public interface DistributionSetTagManagement extends RepositoryManagement findByDistributionSet(@NotNull Pageable pageable, long distributionSetId); -} + + /** + * Deletes {@link DistributionSetTag} by given + * {@link DistributionSetTag#getName()}. + * + * @param tagName to be deleted + * @throws EntityNotFoundException if tag with given name does not exist + */ + @PreAuthorize(SpringEvalExpressions.HAS_AUTH_DELETE_REPOSITORY) + void delete(@NotEmpty String tagName); +} \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/DistributionSetTypeManagement.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/DistributionSetTypeManagement.java index 5690deb0e..82a68697b 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/DistributionSetTypeManagement.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/DistributionSetTypeManagement.java @@ -32,10 +32,10 @@ public interface DistributionSetTypeManagement extends RepositoryManagement { @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) - Optional getByKey(@NotEmpty String key); + Optional findByKey(@NotEmpty String key); @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) - Optional getByName(@NotEmpty String name); + Optional findByName(@NotEmpty String name); /** * Assigns {@link DistributionSetType#getMandatoryModuleTypes()}. diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/RepositoryManagement.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/RepositoryManagement.java index 98f21bb0c..db3b9dba0 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/RepositoryManagement.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/RepositoryManagement.java @@ -43,8 +43,7 @@ public interface RepositoryManagement { * * @param creates to create * @return created Entity - * @throws ConstraintViolationException if fields are not filled as specified. Check - * {@link BaseEntity} for field constraints. + * @throws ConstraintViolationException if fields are not filled as specified. Check {@link BaseEntity} for field constraints. */ @PreAuthorize(SpringEvalExpressions.HAS_AUTH_CREATE_REPOSITORY) List create(@NotNull @Valid Collection creates); @@ -54,8 +53,7 @@ public interface RepositoryManagement { * * @param create to create * @return created Entity - * @throws ConstraintViolationException if fields are not filled as specified. Check - * {@link BaseEntity} for field constraints. + * @throws ConstraintViolationException if fields are not filled as specified. Check {@link BaseEntity} for field constraints. */ @PreAuthorize(SpringEvalExpressions.HAS_AUTH_CREATE_REPOSITORY) T create(@NotNull @Valid C create); @@ -65,22 +63,13 @@ public interface RepositoryManagement { * * @param update to update * @return updated Entity - * @throws EntityReadOnlyException if the {@link BaseEntity} cannot be updated (e.g. is already - * in use) - * @throws EntityNotFoundException in case the {@link BaseEntity} does not exists and cannot be - * updated - * @throws ConstraintViolationException if fields are not filled as specified. Check - * {@link BaseEntity} for field constraints. + * @throws EntityReadOnlyException if the {@link BaseEntity} cannot be updated (e.g. is already in use) + * @throws EntityNotFoundException in case the {@link BaseEntity} does not exist and cannot be updated + * @throws ConstraintViolationException if fields are not filled as specified. Check {@link BaseEntity} for field constraints. */ @PreAuthorize(SpringEvalExpressions.HAS_AUTH_UPDATE_REPOSITORY) T update(@NotNull @Valid U update); - /** - * @return number of {@link BaseEntity}s in the repository. - */ - @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) - long count(); - /** * Deletes or marks as delete in case the {@link BaseEntity} is in use. * @@ -91,9 +80,8 @@ public interface RepositoryManagement { void delete(long id); /** - * Delete {@link BaseEntity}s by their IDs. That is either a soft delete of - * the entities have been linked to another entity before or a hard delete - * if not. + * Delete {@link BaseEntity}s by their IDs. That is either a soft delete of the entities have been linked to another entity before or a hard + * delete if not. * * @param ids to be deleted * @throws EntityNotFoundException if (at least one) given distribution set does not exist @@ -110,21 +98,11 @@ public interface RepositoryManagement { @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) List get(@NotEmpty Collection ids); - /** - * Verifies that {@link BaseEntity} with given ID exists in the repository. - * - * @param id of entity to check existence - * @return true if entity with given ID exists - */ - @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) - boolean exists(long id); - /** * Retrieve {@link BaseEntity} * * @param id to search for - * @return {@link BaseEntity} in the repository with given - * {@link BaseEntity#getId()} + * @return {@link BaseEntity} in the repository with given {@link BaseEntity#getId()} */ @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) Optional get(long id); @@ -141,13 +119,28 @@ public interface RepositoryManagement { /** * Retrieves all {@link BaseEntity}s with a given specification. * - * @param pageable pagination parameter * @param rsqlParam filter definition in RSQL syntax + * @param pageable pagination parameter * @return the found {@link BaseEntity}s - * @throws RSQLParameterUnsupportedFieldException if a field in the RSQL string is used but not provided by the - * given {@code fieldNameProvider} + * @throws RSQLParameterUnsupportedFieldException if a field in the RSQL string is used but not provided by the given + * {@code fieldNameProvider} * @throws RSQLParameterSyntaxException if the RSQL syntax is wrong */ @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) - Page findByRsql(@NotNull Pageable pageable, @NotNull String rsqlParam); -} + Page findByRsql(@NotNull String rsqlParam, @NotNull Pageable pageable); + + /** + * Verifies that {@link BaseEntity} with given ID exists in the repository. + * + * @param id of entity to check existence + * @return true if entity with given ID exists + */ + @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) + boolean exists(long id); + + /** + * @return number of {@link BaseEntity}s in the repository. + */ + @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) + long count(); +} \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/SoftwareModuleManagement.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/SoftwareModuleManagement.java index 5fe881260..baefbb458 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/SoftwareModuleManagement.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/SoftwareModuleManagement.java @@ -40,170 +40,54 @@ import org.springframework.security.access.prepost.PreAuthorize; /** * Service for managing {@link SoftwareModule}s. */ -public interface SoftwareModuleManagement - extends RepositoryManagement { +public interface SoftwareModuleManagement extends RepositoryManagement { /** - * Creates a list of software module meta data entries. + * Creates a list of software module meta-data entries. * - * @param metadata the meta data entries to create - * @return the updated or created software module meta data entries - * @throws EntityAlreadyExistsException in case one of the meta data entry already exists for the - * specific key + * @param metadata the meta-data entries to create + * @return the updated or created software module meta-data entries + * @throws EntityAlreadyExistsException in case one of the meta-data entry already exists for the specific key + * @throws EntityNotFoundException if software module with given ID does not exist + * @throws AssignmentQuotaExceededException if the maximum number of {@link SoftwareModuleMetadata} entries is exceeded for the addressed + * {@link SoftwareModule} + */ + @PreAuthorize(SpringEvalExpressions.HAS_AUTH_UPDATE_REPOSITORY) + List putMetaData(@NotNull @Valid Collection metadata); + + /** + * Creates or updates a single software module meta-data entry. + * + * @param metadata the meta-data entry to create + * @return the updated or created software module meta-data entry + * @throws EntityAlreadyExistsException in case the meta-data entry already exists for the specific key * @throws EntityNotFoundException if software module with given ID does not exist * @throws AssignmentQuotaExceededException if the maximum number of {@link SoftwareModuleMetadata} * entries is exceeded for the addressed {@link SoftwareModule} */ @PreAuthorize(SpringEvalExpressions.HAS_AUTH_UPDATE_REPOSITORY) - List createMetaData(@NotNull @Valid Collection metadata); + SoftwareModuleMetadata updateMetaData(@NotNull @Valid SoftwareModuleMetadataCreate metadata); /** - * Creates or updates a single software module meta data entry. + * Updates a distribution set meta-data value if corresponding entry exists. * - * @param metadata the meta data entry to create - * @return the updated or created software module meta data entry - * @throws EntityAlreadyExistsException in case the meta data entry already exists for the specific - * key - * @throws EntityNotFoundException if software module with given ID does not exist - * @throws AssignmentQuotaExceededException if the maximum number of {@link SoftwareModuleMetadata} - * entries is exceeded for the addressed {@link SoftwareModule} + * @param update the meta-data entry to be updated + * @return the updated meta-data entry + * @throws EntityNotFoundException in case the meta-data entry does not exist and cannot be updated */ @PreAuthorize(SpringEvalExpressions.HAS_AUTH_UPDATE_REPOSITORY) - SoftwareModuleMetadata createMetaData(@NotNull @Valid SoftwareModuleMetadataCreate metadata); + SoftwareModuleMetadata updateMetaData(@NotNull @Valid SoftwareModuleMetadataUpdate update); /** - * Deletes a software module meta data entry. + * Deletes a software module meta-data entry. * - * @param id where meta data has to be deleted - * @param key of the metda data element + * @param id where meta-data has to be deleted + * @param key of the meta-data element * @throws EntityNotFoundException of module or metadata entry does not exist */ @PreAuthorize(SpringEvalExpressions.HAS_AUTH_UPDATE_REPOSITORY) void deleteMetaData(long id, @NotEmpty String key); - /** - * Returns all modules assigned to given {@link DistributionSet}. - * - * @param pageable the page request to page the result set - * @param distributionSetId to search for - * @return all {@link SoftwareModule}s that are assigned to given - * {@link DistributionSet}. - * @throws EntityNotFoundException if distribution set with given ID does not exist - */ - @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) - Page findByAssignedTo(@NotNull Pageable pageable, long distributionSetId); - - /** - * Returns count of all modules assigned to given {@link DistributionSet}. - * - * @param distributionSetId to search for - * @return count of {@link SoftwareModule}s that are assigned to given - * {@link DistributionSet}. - * @throws EntityNotFoundException if distribution set with given ID does not exist - */ - @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) - long countByAssignedTo(long distributionSetId); - - /** - * Filter {@link SoftwareModule}s with given - * {@link SoftwareModule#getName()} or {@link SoftwareModule#getVersion()} - * and {@link SoftwareModule#getType()} that are not marked as deleted. - * - * @param pageable page parameter - * @param searchText to be filtered as "like" on {@link SoftwareModule#getName()} - * @param typeId to be filtered as "like" on {@link SoftwareModule#getType()} - * @return the page of found {@link SoftwareModule} - * @throws EntityNotFoundException if given software module type does not exist - */ - @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) - Slice findByTextAndType(@NotNull Pageable pageable, String searchText, Long typeId); - - /** - * Retrieves {@link SoftwareModule} by their name AND version AND type.. - * - * @param name of the {@link SoftwareModule} - * @param version of the {@link SoftwareModule} - * @param typeId of the {@link SoftwareModule} - * @return the found {@link SoftwareModule} - * @throws EntityNotFoundException if software module type with given ID does not exist - */ - @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) - Optional getByNameAndVersionAndType(@NotEmpty String name, @NotEmpty String version, long typeId); - - /** - * Finds a single software module meta data by its id. - * - * @param id where meta data has to be found - * @param key of the meta data element - * @return the found SoftwareModuleMetadata or {@code null} if not exits - * @throws EntityNotFoundException is module with given ID does not exist - */ - @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) - Optional getMetaDataBySoftwareModuleId(long id, @NotEmpty String key); - - /** - * Finds all meta data by the given software module id. - * - * @param pageable the page request to page the result - * @param id the software module id to retrieve the meta data from - * @return a paged result of all meta data entries for a given software - * module id - * @throws EntityNotFoundException if software module with given ID does not exist - */ - @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) - Page findMetaDataBySoftwareModuleId(@NotNull Pageable pageable, long id); - - /** - * Counts all meta data by the given software module id. - * - * @param id the software module id to retrieve the meta data count from - * @return count of all meta data entries for a given software module id - * @throws EntityNotFoundException if software module with given ID does not exist - */ - @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) - long countMetaDataBySoftwareModuleId(long id); - - /** - * Finds all meta data by the given software module id where - * {@link SoftwareModuleMetadata#isTargetVisible()}. - * - * @param pageable the page request to page the result - * @param id the software module id to retrieve the meta data from - * @return a paged result of all meta data entries for a given software - * module id - * @throws EntityNotFoundException if software module with given ID does not exist - */ - @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) - Page findMetaDataBySoftwareModuleIdAndTargetVisible(@NotNull Pageable pageable, long id); - - /** - * Finds all meta data by the given software module id. - * - * @param pageable the page request to page the result - * @param id the software module id to retrieve the meta data from - * @param rsqlParam filter definition in RSQL syntax - * @return a paged result of all meta data entries for a given software - * module id - * @throws RSQLParameterUnsupportedFieldException if a field in the RSQL string is used but not provided by the - * given {@code fieldNameProvider} - * @throws RSQLParameterSyntaxException if the RSQL syntax is wrong - * @throws EntityNotFoundException if software module with given ID does not exist - */ - @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) - Page findMetaDataByRsql(@NotNull Pageable pageable, long id, @NotNull String rsqlParam); - - /** - * Retrieves the {@link SoftwareModule}s by their {@link SoftwareModuleType} - * . - * - * @param pageable page parameters - * @param typeId to be filtered on - * @return the found {@link SoftwareModule}s - * @throws EntityNotFoundException if software module type with given ID does not exist - */ - @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) - Slice findByType(@NotNull Pageable pageable, long typeId); - /** * Locks a software module. * @@ -225,16 +109,120 @@ public interface SoftwareModuleManagement void unlock(long id); /** - * Updates a distribution set meta data value if corresponding entry exists. + * Returns all modules assigned to given {@link DistributionSet}. * - * @param update the meta data entry to be updated - * @return the updated meta data entry - * @throws EntityNotFoundException in case the meta data entry does not exists and cannot be - * updated + * @param distributionSetId to search for + * @param pageable the page request to page the result set + * @return all {@link SoftwareModule}s that are assigned to given {@link DistributionSet}. + * @throws EntityNotFoundException if distribution set with given ID does not exist */ - @PreAuthorize(SpringEvalExpressions.HAS_AUTH_UPDATE_REPOSITORY) - SoftwareModuleMetadata updateMetaData(@NotNull @Valid SoftwareModuleMetadataUpdate update); + @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) + Page findByAssignedTo(long distributionSetId, @NotNull Pageable pageable); + + /** + * Filter {@link SoftwareModule}s with given {@link SoftwareModule#getName()} or {@link SoftwareModule#getVersion()} + * and {@link SoftwareModule#getType()} that are not marked as deleted. + * + * @param searchText to be filtered as "like" on {@link SoftwareModule#getName()} + * @param typeId to be filtered as "like" on {@link SoftwareModule#getType()} + * @param pageable page parameter + * @return the page of found {@link SoftwareModule} + * @throws EntityNotFoundException if given software module type does not exist + */ + @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) + Slice findByTextAndType(String searchText, Long typeId, @NotNull Pageable pageable); + + /** + * Retrieves {@link SoftwareModule} by their name AND version AND type. + * + * @param name of the {@link SoftwareModule} + * @param version of the {@link SoftwareModule} + * @param typeId of the {@link SoftwareModule} + * @return the found {@link SoftwareModule} + * @throws EntityNotFoundException if software module type with given ID does not exist + */ + @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) + Optional findByNameAndVersionAndType(@NotEmpty String name, @NotEmpty String version, long typeId); + + /** + * Finds a single software module meta-data by its id. + * + * @param id where meta-data has to be found + * @param key of the meta-data element + * @return the found SoftwareModuleMetadata or {@code null} if not exits + * @throws EntityNotFoundException is module with given ID does not exist + */ + @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) + Optional findMetaDataBySoftwareModuleId(long id, @NotEmpty String key); + + /** + * Finds all meta-data by the given software module id. + * + * @param pageable the page request to page the result + * @param id the software module id to retrieve the meta-data from + * @return a paged result of all meta-data entries for a given software module id + * @throws EntityNotFoundException if software module with given ID does not exist + */ + @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) + Page findMetaDataBySoftwareModuleId(@NotNull Pageable pageable, long id); + + /** + * Finds all meta-data by the given software module id where {@link SoftwareModuleMetadata#isTargetVisible()}. + * + * @param pageable the page request to page the result + * @param id the software module id to retrieve the meta-data from + * @return a paged result of all meta-data entries for a given software module id + * @throws EntityNotFoundException if software module with given ID does not exist + */ + @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) + Page findMetaDataBySoftwareModuleIdAndTargetVisible(@NotNull Pageable pageable, long id); + + /** + * Finds all meta-data by the given software module id. + * + * @param id the software module id to retrieve the meta-data from + * @param rsqlParam filter definition in RSQL syntax + * @param pageable the page request to page the result + * @return a paged result of all meta-data entries for a given software module id + * @throws RSQLParameterUnsupportedFieldException if a field in the RSQL string is used but not provided by the given + * {@code fieldNameProvider} + * @throws RSQLParameterSyntaxException if the RSQL syntax is wrong + * @throws EntityNotFoundException if software module with given ID does not exist + */ + @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) + Page findMetaDataByRsql(long id, @NotNull String rsqlParam, @NotNull Pageable pageable); + + /** + * Retrieves the {@link SoftwareModule}s by their {@link SoftwareModuleType} + * + * @param typeId to be filtered on + * @param pageable page parameters + * @return the found {@link SoftwareModule}s + * @throws EntityNotFoundException if software module type with given ID does not exist + */ + @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) + Slice findByType(long typeId, @NotNull Pageable pageable); @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) Map> findMetaDataBySoftwareModuleIdsAndTargetVisible(Collection moduleIds); + + /** + * Returns count of all modules assigned to given {@link DistributionSet}. + * + * @param distributionSetId to search for + * @return count of {@link SoftwareModule}s that are assigned to given {@link DistributionSet}. + * @throws EntityNotFoundException if distribution set with given ID does not exist + */ + @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) + long countByAssignedTo(long distributionSetId); + + /** + * Counts all meta-data by the given software module id. + * + * @param id the software module id to retrieve the meta-data count from + * @return count of all meta-data entries for a given software module id + * @throws EntityNotFoundException if software module with given ID does not exist + */ + @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) + long countMetaDataBySoftwareModuleId(long id); } \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/SoftwareModuleTypeManagement.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/SoftwareModuleTypeManagement.java index c5a11b24e..e53882885 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/SoftwareModuleTypeManagement.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/SoftwareModuleTypeManagement.java @@ -30,12 +30,12 @@ public interface SoftwareModuleTypeManagement * @return {@link SoftwareModuleType} in the repository with given {@link SoftwareModuleType#getKey()} */ @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) - Optional getByKey(@NotEmpty String key); + Optional findByKey(@NotEmpty String key); /** * @param name to search for * @return all {@link SoftwareModuleType}s in the repository with given {@link SoftwareModuleType#getName()} */ @PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY) - Optional getByName(@NotEmpty String name); + Optional findByName(@NotEmpty String name); } \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaManagementHelper.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaManagementHelper.java index c74796bbf..17eb2cbf8 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaManagementHelper.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaManagementHelper.java @@ -44,7 +44,7 @@ public final class JpaManagementHelper { } public static Page findAllWithCountBySpec(final JpaSpecificationExecutor repository, - final Pageable pageable, final List> specList) { + final List> specList, final Pageable pageable) { if (CollectionUtils.isEmpty(specList)) { return convertPage(repository.findAll(Specification.where(null), pageable), pageable); } diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/builder/JpaDistributionSetCreate.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/builder/JpaDistributionSetCreate.java index 878560fa0..9b1951717 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/builder/JpaDistributionSetCreate.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/builder/JpaDistributionSetCreate.java @@ -59,7 +59,7 @@ public class JpaDistributionSetCreate extends AbstractDistributionSetUpdateCreat } private DistributionSetType findDistributionSetTypeWithExceptionIfNotFound(final String distributionSetTypekey) { - return distributionSetTypeManagement.getByKey(distributionSetTypekey) + return distributionSetTypeManagement.findByKey(distributionSetTypekey) .orElseThrow(() -> new EntityNotFoundException(DistributionSetType.class, distributionSetTypekey)); } diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/builder/JpaSoftwareModuleCreate.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/builder/JpaSoftwareModuleCreate.java index 1c60e0b23..5ecda4a65 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/builder/JpaSoftwareModuleCreate.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/builder/JpaSoftwareModuleCreate.java @@ -51,7 +51,7 @@ public class JpaSoftwareModuleCreate extends AbstractSoftwareModuleUpdateCreate< throw new ValidationException("type cannot be null"); } - return softwareModuleTypeManagement.getByKey(type.trim()) + return softwareModuleTypeManagement.findByKey(type.trim()) .orElseThrow(() -> new EntityNotFoundException(SoftwareModuleType.class, type.trim())); } } \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaControllerManagement.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaControllerManagement.java index 15434c60f..7937293af 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaControllerManagement.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaControllerManagement.java @@ -582,7 +582,7 @@ public class JpaControllerManagement extends JpaActionManagement implements Cont public boolean updateOfflineAssignedVersion(@NotEmpty final String controllerId, final String distributionName, final String version) { List distributionSetAssignmentResults = systemSecurityContext.runAsSystem(() -> - distributionSetManagement.getByNameAndVersion(distributionName, version).map( + distributionSetManagement.findByNameAndVersion(distributionName, version).map( distributionSet -> deploymentManagement.offlineAssignedDistributionSets( List.of(Map.entry(controllerId, distributionSet.getId())), controllerId)) .orElseThrow(() -> diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaDeploymentManagement.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaDeploymentManagement.java index e3bdbdde9..9f16d23ad 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaDeploymentManagement.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaDeploymentManagement.java @@ -316,7 +316,7 @@ public class JpaDeploymentManagement extends JpaActionManagement implements Depl RSQLUtility.buildRsqlSpecification(rsqlParam, ActionFields.class, virtualPropertyReplacer, database), ActionSpecifications.byTargetControllerId(controllerId)); - return JpaManagementHelper.findAllWithCountBySpec(actionRepository, pageable, specList); + return JpaManagementHelper.findAllWithCountBySpec(actionRepository, specList, pageable); } @Override diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaDistributionSetManagement.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaDistributionSetManagement.java index aec40d804..ee0cedf17 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaDistributionSetManagement.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaDistributionSetManagement.java @@ -155,8 +155,9 @@ public class JpaDistributionSetManagement implements DistributionSetManagement { backoff = @Backoff(delay = Constants.TX_RT_DELAY)) public List create(final Collection creates) { final List toCreate = creates.stream().map(JpaDistributionSetCreate.class::cast) - .map(this::setDefaultTypeIfMissing).map(JpaDistributionSetCreate::build).toList(); - + .map(this::setDefaultTypeIfMissing) + .map(JpaDistributionSetCreate::build) + .toList(); return Collections.unmodifiableList(distributionSetRepository.saveAll(AccessController.Operation.CREATE, toCreate)); } @@ -168,7 +169,6 @@ public class JpaDistributionSetManagement implements DistributionSetManagement { public DistributionSet create(final DistributionSetCreate c) { final JpaDistributionSetCreate create = (JpaDistributionSetCreate) c; setDefaultTypeIfMissing(create); - return distributionSetRepository.save(AccessController.Operation.CREATE, create.build()); } @@ -207,11 +207,6 @@ public class JpaDistributionSetManagement implements DistributionSetManagement { return distributionSetRepository.save(set); } - @Override - public long count() { - return distributionSetRepository.count(DistributionSetSpecification.isNotDeleted()); - } - @Override @Transactional @Retryable(retryFor = { ConcurrencyFailureException.class }, maxAttempts = Constants.TX_RT_MAX, @@ -263,6 +258,11 @@ public class JpaDistributionSetManagement implements DistributionSetManagement { } } + @Override + public Optional get(final long id) { + return distributionSetRepository.findById(id).map(DistributionSet.class::cast); + } + @Override public List get(final Collection ids) { return Collections.unmodifiableList(getDistributionSets(ids)); @@ -274,8 +274,8 @@ public class JpaDistributionSetManagement implements DistributionSetManagement { } @Override - public Optional get(final long id) { - return distributionSetRepository.findById(id).map(DistributionSet.class::cast); + public long count() { + return distributionSetRepository.count(DistributionSetSpecification.isNotDeleted()); } @Override @@ -285,11 +285,30 @@ public class JpaDistributionSetManagement implements DistributionSetManagement { } @Override - public Page findByRsql(final Pageable pageable, final String rsqlParam) { - return JpaManagementHelper.findAllWithCountBySpec(distributionSetRepository, pageable, List.of( - RSQLUtility.buildRsqlSpecification(rsqlParam, DistributionSetFields.class, virtualPropertyReplacer, - database), - DistributionSetSpecification.isNotDeleted())); + public Page findByRsql(final String rsqlParam, final Pageable pageable) { + return JpaManagementHelper.findAllWithCountBySpec(distributionSetRepository, List.of( + RSQLUtility.buildRsqlSpecification(rsqlParam, DistributionSetFields.class, virtualPropertyReplacer, database), + DistributionSetSpecification.isNotDeleted()), pageable); + } + + @Override + public Optional getWithDetails(final long id) { + return distributionSetRepository + .findOne(distributionSetRepository.byIdSpec(id), JpaDistributionSet_.GRAPH_DISTRIBUTION_SET_DETAIL) + .map(DistributionSet.class::cast); + } + + @Override + @Transactional + public void invalidate(final DistributionSet distributionSet) { + final JpaDistributionSet jpaSet = (JpaDistributionSet) distributionSet; + jpaSet.invalidate(); + distributionSetRepository.save(jpaSet); + } + + @Override + public DistributionSet getOrElseThrowException(final long id) { + return getById(id); } @Override @@ -312,6 +331,20 @@ public class JpaDistributionSetManagement implements DistributionSetManagement { return distributionSetRepository.save(set); } + @Override + @Transactional + @Retryable(retryFor = { ConcurrencyFailureException.class }, maxAttempts = Constants.TX_RT_MAX, + backoff = @Backoff(delay = Constants.TX_RT_DELAY)) + public DistributionSet unassignSoftwareModule(final long id, final long moduleId) { + final JpaDistributionSet set = (JpaDistributionSet) getValid(id); + assertDistributionSetIsNotAssignedToTargets(id); + + final JpaSoftwareModule module = findSoftwareModuleAndThrowExceptionIfNotFound(moduleId); + set.removeModule(module); + + return distributionSetRepository.save(set); + } + @Override @Transactional @Retryable(retryFor = { ConcurrencyFailureException.class }, maxAttempts = Constants.TX_RT_MAX, @@ -327,6 +360,21 @@ public class JpaDistributionSetManagement implements DistributionSetManagement { }); } + @Override + @Transactional + @Retryable(retryFor = { ConcurrencyFailureException.class }, maxAttempts = Constants.TX_RT_MAX, + backoff = @Backoff(delay = Constants.TX_RT_DELAY)) + public DistributionSetMetadata updateMetaData(final long id, final MetaData md) { + // check if exists otherwise throw entity not found exception + final JpaDistributionSetMetadata toUpdate = (JpaDistributionSetMetadata) findMetaDataByDistributionSetId(id, md.getKey()) + .orElseThrow(() -> new EntityNotFoundException(DistributionSetMetadata.class, id, md.getKey())); + toUpdate.setValue(md.getValue()); + + // touch it to update the lock revision because we are modifying the DS indirectly, it will, also check UPDATE access + JpaManagementHelper.touch(entityManager, distributionSetRepository, (JpaDistributionSet) getValid(id)); + return distributionSetMetadataRepository.save(toUpdate); + } + @Override @Transactional @Retryable(retryFor = { ConcurrencyFailureException.class }, maxAttempts = Constants.TX_RT_MAX, @@ -346,7 +394,7 @@ public class JpaDistributionSetManagement implements DistributionSetManagement { @Transactional @Retryable(retryFor = { ConcurrencyFailureException.class }, maxAttempts = Constants.TX_RT_MAX, backoff = @Backoff(delay = Constants.TX_RT_DELAY)) - public List createMetaData(final long id, final Collection md) { + public List putMetaData(final long id, final Collection md) { final JpaDistributionSet distributionSet = (JpaDistributionSet) getValid(id); assertMetaDataQuota(id, md.size()); @@ -366,7 +414,7 @@ public class JpaDistributionSetManagement implements DistributionSetManagement { @Retryable(retryFor = { ConcurrencyFailureException.class }, maxAttempts = Constants.TX_RT_MAX, backoff = @Backoff(delay = Constants.TX_RT_DELAY)) public void deleteMetaData(final long id, final String key) { - final JpaDistributionSetMetadata metadata = (JpaDistributionSetMetadata) getMetaDataByDistributionSetId( + final JpaDistributionSetMetadata metadata = (JpaDistributionSetMetadata) findMetaDataByDistributionSetId( id, key) .orElseThrow(() -> new EntityNotFoundException(DistributionSetMetadata.class, id, key)); @@ -403,7 +451,7 @@ public class JpaDistributionSetManagement implements DistributionSetManagement { } @Override - public Optional getByAction(final long actionId) { + public Optional findByAction(final long actionId) { return actionRepository .findById(actionId) .map(action -> { @@ -422,14 +470,7 @@ public class JpaDistributionSetManagement implements DistributionSetManagement { } @Override - public Optional getWithDetails(final long id) { - return distributionSetRepository - .findOne(distributionSetRepository.byIdSpec(id), JpaDistributionSet_.GRAPH_DISTRIBUTION_SET_DETAIL) - .map(DistributionSet.class::cast); - } - - @Override - public Optional getByNameAndVersion(final String distributionName, final String version) { + public Optional findByNameAndVersion(final String distributionName, final String version) { return distributionSetRepository .findOne(DistributionSetSpecification.equalsNameAndVersionIgnoreCase(distributionName, version)) .map(DistributionSet.class::cast); @@ -465,17 +506,11 @@ public class JpaDistributionSetManagement implements DistributionSetManagement { } @Override - public DistributionSet getOrElseThrowException(final long id) { - return getById(id); - } - - @Override - public Page findMetaDataByDistributionSetId(final Pageable pageable, - final long id) { + public Page findMetaDataByDistributionSetId(final long id, final Pageable pageable) { assertDistributionSetExists(id); - return JpaManagementHelper.findAllWithCountBySpec(distributionSetMetadataRepository, pageable, - Collections.singletonList(byDsIdSpec(id))); + return JpaManagementHelper.findAllWithCountBySpec(distributionSetMetadataRepository, Collections.singletonList(byDsIdSpec(id)), pageable + ); } @Override @@ -486,15 +521,15 @@ public class JpaDistributionSetManagement implements DistributionSetManagement { } @Override - public Page findMetaDataByDistributionSetIdAndRsql(final Pageable pageable, - final long id, final String rsqlParam) { + public Page findMetaDataByDistributionSetIdAndRsql(final long id, final String rsqlParam, + final Pageable pageable) { assertDistributionSetExists(id); final List> specList = Arrays .asList(RSQLUtility.buildRsqlSpecification(rsqlParam, DistributionSetMetadataFields.class, virtualPropertyReplacer, database), byDsIdSpec(id)); - return JpaManagementHelper.findAllWithCountBySpec(distributionSetMetadataRepository, pageable, specList); + return JpaManagementHelper.findAllWithCountBySpec(distributionSetMetadataRepository, specList, pageable); } @Override @@ -512,8 +547,7 @@ public class JpaDistributionSetManagement implements DistributionSetManagement { } @Override - public Slice findByDistributionSetFilter(final Pageable pageable, - final DistributionSetFilter distributionSetFilter) { + public Slice findByDistributionSetFilter(final DistributionSetFilter distributionSetFilter, final Pageable pageable) { final List> specList = buildDistributionSetSpecifications( distributionSetFilter); @@ -527,25 +561,25 @@ public class JpaDistributionSetManagement implements DistributionSetManagement { } @Override - public Page findByTag(final Pageable pageable, final long tagId) { + public Page findByTag(final long tagId, final Pageable pageable) { assertDsTagExists(tagId); - return JpaManagementHelper.findAllWithCountBySpec(distributionSetRepository, pageable, List.of( - DistributionSetSpecification.hasTag(tagId))); + return JpaManagementHelper.findAllWithCountBySpec(distributionSetRepository, List.of( + DistributionSetSpecification.hasTag(tagId)), pageable); } @Override - public Page findByRsqlAndTag(final Pageable pageable, final String rsqlParam, final long tagId) { + public Page findByRsqlAndTag(final String rsqlParam, final long tagId, final Pageable pageable) { assertDsTagExists(tagId); - return JpaManagementHelper.findAllWithCountBySpec(distributionSetRepository, pageable, List.of( + return JpaManagementHelper.findAllWithCountBySpec(distributionSetRepository, List.of( RSQLUtility.buildRsqlSpecification(rsqlParam, DistributionSetFields.class, virtualPropertyReplacer, database), - DistributionSetSpecification.hasTag(tagId), DistributionSetSpecification.isNotDeleted())); + DistributionSetSpecification.hasTag(tagId), DistributionSetSpecification.isNotDeleted()), pageable); } @Override - public Optional getMetaDataByDistributionSetId(final long id, final String key) { + public Optional findMetaDataByDistributionSetId(final long id, final String key) { assertDistributionSetExists(id); return distributionSetMetadataRepository @@ -553,42 +587,6 @@ public class JpaDistributionSetManagement implements DistributionSetManagement { .map(DistributionSetMetadata.class::cast); } - @Override - public boolean isInUse(final long id) { - assertDistributionSetExists(id); - - return actionRepository.countByDistributionSetId(id) > 0; - } - - @Override - @Transactional - @Retryable(retryFor = { ConcurrencyFailureException.class }, maxAttempts = Constants.TX_RT_MAX, - backoff = @Backoff(delay = Constants.TX_RT_DELAY)) - public DistributionSet unassignSoftwareModule(final long id, final long moduleId) { - final JpaDistributionSet set = (JpaDistributionSet) getValid(id); - assertDistributionSetIsNotAssignedToTargets(id); - - final JpaSoftwareModule module = findSoftwareModuleAndThrowExceptionIfNotFound(moduleId); - set.removeModule(module); - - return distributionSetRepository.save(set); - } - - @Override - @Transactional - @Retryable(retryFor = { ConcurrencyFailureException.class }, maxAttempts = Constants.TX_RT_MAX, - backoff = @Backoff(delay = Constants.TX_RT_DELAY)) - public DistributionSetMetadata updateMetaData(final long id, final MetaData md) { - // check if exists otherwise throw entity not found exception - final JpaDistributionSetMetadata toUpdate = (JpaDistributionSetMetadata) getMetaDataByDistributionSetId(id, md.getKey()) - .orElseThrow(() -> new EntityNotFoundException(DistributionSetMetadata.class, id, md.getKey())); - toUpdate.setValue(md.getValue()); - - // touch it to update the lock revision because we are modifying the DS indirectly, it will, also check UPDATE access - JpaManagementHelper.touch(entityManager, distributionSetRepository, (JpaDistributionSet) getValid(id)); - return distributionSetMetadataRepository.save(toUpdate); - } - @Override public long countByTypeId(final long typeId) { if (!distributionSetTypeManagement.exists(typeId)) { @@ -598,9 +596,17 @@ public class JpaDistributionSetManagement implements DistributionSetManagement { return distributionSetRepository.count(DistributionSetSpecification.byType(typeId)); } + @Override + public boolean isInUse(final long id) { + assertDistributionSetExists(id); + + return actionRepository.countByDistributionSetId(id) > 0; + } + @Override public List countRolloutsByStatusForDistributionSet(final Long id) { assertDistributionSetExists(id); + return distributionSetRepository.countRolloutsByStatusForDistributionSet(id).stream().map(Statistic.class::cast).toList(); } @@ -619,14 +625,6 @@ public class JpaDistributionSetManagement implements DistributionSetManagement { return distributionSetRepository.countAutoAssignmentsForDistributionSet(id); } - @Override - @Transactional - public void invalidate(final DistributionSet distributionSet) { - final JpaDistributionSet jpaSet = (JpaDistributionSet) distributionSet; - jpaSet.invalidate(); - distributionSetRepository.save(jpaSet); - } - @Override @Transactional @Retryable(retryFor = { ConcurrencyFailureException.class }, maxAttempts = Constants.TX_RT_MAX, @@ -635,7 +633,7 @@ public class JpaDistributionSetManagement implements DistributionSetManagement { return updateTag( ids, () -> distributionSetTagManagement - .getByName(tagName) + .findByName(tagName) .orElseThrow(() -> new EntityNotFoundException(DistributionSetTag.class, tagName)), (allDs, distributionSetTag) -> { final List toBeChangedDSs = allDs.stream().filter(set -> set.addTag(distributionSetTag)) diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaDistributionSetTagManagement.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaDistributionSetTagManagement.java index e4db51f91..3c7bc93d0 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaDistributionSetTagManagement.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaDistributionSetTagManagement.java @@ -75,10 +75,11 @@ public class JpaDistributionSetTagManagement implements DistributionSetTagManage @Retryable(retryFor = { ConcurrencyFailureException.class }, maxAttempts = Constants.TX_RT_MAX, backoff = @Backoff(delay = Constants.TX_RT_DELAY)) public List create(final Collection dst) { - final List toCreate = dst.stream().map(JpaTagCreate.class::cast) - .map(JpaTagCreate::buildDistributionSetTag).toList(); - return Collections - .unmodifiableList(distributionSetTagRepository.saveAll(AccessController.Operation.CREATE, toCreate)); + final List toCreate = dst.stream() + .map(JpaTagCreate.class::cast) + .map(JpaTagCreate::buildDistributionSetTag) + .toList(); + return Collections.unmodifiableList(distributionSetTagRepository.saveAll(AccessController.Operation.CREATE, toCreate)); } @Override @@ -87,8 +88,7 @@ public class JpaDistributionSetTagManagement implements DistributionSetTagManage backoff = @Backoff(delay = Constants.TX_RT_DELAY)) @PreAuthorize(SpPermission.SpringEvalExpressions.HAS_AUTH_CREATE_REPOSITORY) public DistributionSetTag create(final TagCreate c) { - final JpaTagCreate create = (JpaTagCreate) c; - return distributionSetTagRepository.save(AccessController.Operation.CREATE, create.buildDistributionSetTag()); + return distributionSetTagRepository.save(AccessController.Operation.CREATE, ((JpaTagCreate) c).buildDistributionSetTag()); } @Override @@ -98,7 +98,6 @@ public class JpaDistributionSetTagManagement implements DistributionSetTagManage @PreAuthorize(SpPermission.SpringEvalExpressions.HAS_AUTH_UPDATE_REPOSITORY) public DistributionSetTag update(final TagUpdate u) { final GenericTagUpdate update = (GenericTagUpdate) u; - final JpaDistributionSetTag tag = distributionSetTagRepository.findById(update.getId()) .orElseThrow(() -> new EntityNotFoundException(DistributionSetTag.class, update.getId())); @@ -109,11 +108,6 @@ public class JpaDistributionSetTagManagement implements DistributionSetTagManage return distributionSetTagRepository.save(tag); } - @Override - public long count() { - return distributionSetTagRepository.count(); - } - @Override @Transactional @Retryable(retryFor = { ConcurrencyFailureException.class }, maxAttempts = Constants.TX_RT_MAX, @@ -137,6 +131,11 @@ public class JpaDistributionSetTagManagement implements DistributionSetTagManage distributionSetTagRepository.deleteAll(setsFound); } + @Override + public Optional get(final long id) { + return distributionSetTagRepository.findById(id).map(DistributionSetTag.class::cast); + } + @Override public List get(final Collection ids) { return Collections.unmodifiableList(distributionSetTagRepository.findAllById(ids)); @@ -148,22 +147,37 @@ public class JpaDistributionSetTagManagement implements DistributionSetTagManage } @Override - public Optional get(final long id) { - return distributionSetTagRepository.findById(id).map(DistributionSetTag.class::cast); + public long count() { + return distributionSetTagRepository.count(); } + @Override public Slice findAll(final Pageable pageable) { return JpaManagementHelper.findAllWithoutCountBySpec(distributionSetTagRepository, pageable, null); } @Override - public Page findByRsql(final Pageable pageable, final String rsqlParam) { - final Specification spec = RSQLUtility.buildRsqlSpecification(rsqlParam, DistributionSetTagFields.class, - virtualPropertyReplacer, database); + public Page findByRsql(final String rsqlParam, final Pageable pageable) { + final Specification spec = RSQLUtility.buildRsqlSpecification( + rsqlParam, DistributionSetTagFields.class, virtualPropertyReplacer, database); + return JpaManagementHelper.findAllWithCountBySpec(distributionSetTagRepository, Collections.singletonList(spec), pageable); + } - return JpaManagementHelper.findAllWithCountBySpec(distributionSetTagRepository, pageable, - Collections.singletonList(spec)); + @Override + public Optional findByName(final String name) { + return distributionSetTagRepository.findByNameEquals(name); + } + + @Override + public Page findByDistributionSet(final Pageable pageable, final long distributionSetId) { + if (!distributionSetRepository.existsById(distributionSetId)) { + throw new EntityNotFoundException(DistributionSet.class, distributionSetId); + } + + return JpaManagementHelper.findAllWithCountBySpec(distributionSetTagRepository, + Collections.singletonList(TagSpecification.ofDistributionSet(distributionSetId)), pageable + ); } @Override @@ -174,22 +188,6 @@ public class JpaDistributionSetTagManagement implements DistributionSetTagManage final JpaDistributionSetTag dsTag = distributionSetTagRepository .findOne(DistributionSetTagSpecifications.byName(tagName)) .orElseThrow(() -> new EntityNotFoundException(DistributionSetTag.class, tagName)); - distributionSetTagRepository.delete(dsTag); } - - @Override - public Optional getByName(final String name) { - return distributionSetTagRepository.findByNameEquals(name); - } - - @Override - public Page findByDistributionSet(final Pageable pageable, final long distributionSetId) { - if (!distributionSetRepository.existsById(distributionSetId)) { - throw new EntityNotFoundException(DistributionSet.class, distributionSetId); - } - - return JpaManagementHelper.findAllWithCountBySpec(distributionSetTagRepository, pageable, - Collections.singletonList(TagSpecification.ofDistributionSet(distributionSetId))); - } } diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaDistributionSetTypeManagement.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaDistributionSetTypeManagement.java index 9af80d483..9e641c4e0 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaDistributionSetTypeManagement.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaDistributionSetTypeManagement.java @@ -88,43 +88,6 @@ public class JpaDistributionSetTypeManagement implements DistributionSetTypeMana this.quotaManagement = quotaManagement; } - @Override - public Optional getByKey(final String key) { - return distributionSetTypeRepository.findOne(DistributionSetTypeSpecification.byKey(key)).map(DistributionSetType.class::cast); - } - - @Override - public Optional getByName(final String name) { - return distributionSetTypeRepository.findOne(DistributionSetTypeSpecification.byName(name)).map(DistributionSetType.class::cast); - } - - @Override - @Transactional - @Retryable(retryFor = { ConcurrencyFailureException.class }, maxAttempts = Constants.TX_RT_MAX, - backoff = @Backoff(delay = Constants.TX_RT_DELAY)) - public DistributionSetType assignOptionalSoftwareModuleTypes(final long id, final Collection softwareModulesTypeIds) { - return assignSoftwareModuleTypes(id, softwareModulesTypeIds, false); - } - - @Override - @Transactional - @Retryable(retryFor = { ConcurrencyFailureException.class }, maxAttempts = Constants.TX_RT_MAX, - backoff = @Backoff(delay = Constants.TX_RT_DELAY)) - public DistributionSetType assignMandatorySoftwareModuleTypes(final long id, final Collection softwareModuleTypeIds) { - return assignSoftwareModuleTypes(id, softwareModuleTypeIds, true); - } - - @Override - @Transactional - @Retryable(retryFor = { ConcurrencyFailureException.class }, maxAttempts = Constants.TX_RT_MAX, - backoff = @Backoff(delay = Constants.TX_RT_DELAY)) - public DistributionSetType unassignSoftwareModuleType(final long id, final long softwareModuleTypeId) { - final JpaDistributionSetType type = findDistributionSetTypeAndThrowExceptionIfNotFound(id); - checkDistributionSetTypeNotAssigned(id); - type.removeModuleType(softwareModuleTypeId); - return distributionSetTypeRepository.save(type); - } - @Override @Transactional @Retryable(retryFor = { ConcurrencyFailureException.class }, maxAttempts = Constants.TX_RT_MAX, @@ -184,11 +147,6 @@ public class JpaDistributionSetTypeManagement implements DistributionSetTypeMana return distributionSetTypeRepository.save(type); } - @Override - public long count() { - return distributionSetTypeRepository.count(DistributionSetTypeSpecification.isNotDeleted()); - } - @Override @Transactional @Retryable(retryFor = { ConcurrencyFailureException.class }, maxAttempts = Constants.TX_RT_MAX, @@ -215,6 +173,11 @@ public class JpaDistributionSetTypeManagement implements DistributionSetTypeMana distributionSetTypeRepository.deleteAllById(ids); } + @Override + public Optional get(final long id) { + return distributionSetTypeRepository.findById(id).map(DistributionSetType.class::cast); + } + @Override public List get(final Collection ids) { return Collections.unmodifiableList(distributionSetTypeRepository.findAllById(ids)); @@ -226,8 +189,8 @@ public class JpaDistributionSetTypeManagement implements DistributionSetTypeMana } @Override - public Optional get(final long id) { - return distributionSetTypeRepository.findById(id).map(DistributionSetType.class::cast); + public long count() { + return distributionSetTypeRepository.count(DistributionSetTypeSpecification.isNotDeleted()); } @Override @@ -237,10 +200,47 @@ public class JpaDistributionSetTypeManagement implements DistributionSetTypeMana } @Override - public Page findByRsql(final Pageable pageable, final String rsqlParam) { - return JpaManagementHelper.findAllWithCountBySpec(distributionSetTypeRepository, pageable, List.of( + public Page findByRsql(final String rsqlParam, final Pageable pageable) { + return JpaManagementHelper.findAllWithCountBySpec(distributionSetTypeRepository, List.of( RSQLUtility.buildRsqlSpecification(rsqlParam, DistributionSetTypeFields.class, virtualPropertyReplacer, database), - DistributionSetTypeSpecification.isNotDeleted())); + DistributionSetTypeSpecification.isNotDeleted()), pageable); + } + + @Override + public Optional findByKey(final String key) { + return distributionSetTypeRepository.findOne(DistributionSetTypeSpecification.byKey(key)).map(DistributionSetType.class::cast); + } + + @Override + public Optional findByName(final String name) { + return distributionSetTypeRepository.findOne(DistributionSetTypeSpecification.byName(name)).map(DistributionSetType.class::cast); + } + + @Override + @Transactional + @Retryable(retryFor = { ConcurrencyFailureException.class }, maxAttempts = Constants.TX_RT_MAX, + backoff = @Backoff(delay = Constants.TX_RT_DELAY)) + public DistributionSetType assignOptionalSoftwareModuleTypes(final long id, final Collection softwareModulesTypeIds) { + return assignSoftwareModuleTypes(id, softwareModulesTypeIds, false); + } + + @Override + @Transactional + @Retryable(retryFor = { ConcurrencyFailureException.class }, maxAttempts = Constants.TX_RT_MAX, + backoff = @Backoff(delay = Constants.TX_RT_DELAY)) + public DistributionSetType assignMandatorySoftwareModuleTypes(final long id, final Collection softwareModuleTypeIds) { + return assignSoftwareModuleTypes(id, softwareModuleTypeIds, true); + } + + @Override + @Transactional + @Retryable(retryFor = { ConcurrencyFailureException.class }, maxAttempts = Constants.TX_RT_MAX, + backoff = @Backoff(delay = Constants.TX_RT_DELAY)) + public DistributionSetType unassignSoftwareModuleType(final long id, final long softwareModuleTypeId) { + final JpaDistributionSetType type = findDistributionSetTypeAndThrowExceptionIfNotFound(id); + checkDistributionSetTypeNotAssigned(id); + type.removeModuleType(softwareModuleTypeId); + return distributionSetTypeRepository.save(type); } private static void removeModuleTypes( diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaRolloutGroupManagement.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaRolloutGroupManagement.java index f68ccc790..6c37bebc4 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaRolloutGroupManagement.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaRolloutGroupManagement.java @@ -132,7 +132,7 @@ public class JpaRolloutGroupManagement implements RolloutGroupManagement { database), (root, query, cb) -> cb.equal(root.get(JpaRolloutGroup_.rollout).get(JpaRollout_.id), rolloutId)); - return JpaManagementHelper.findAllWithCountBySpec(rolloutGroupRepository, pageable, specList); + return JpaManagementHelper.findAllWithCountBySpec(rolloutGroupRepository, specList, pageable); } @Override @@ -180,11 +180,13 @@ public class JpaRolloutGroupManagement implements RolloutGroupManagement { // in case of status ready the action has not been created yet and // the relation information between target and rollout-group is // stored in the #TargetRolloutGroup. - return JpaManagementHelper.findAllWithCountBySpec(targetRepository, page, - Collections.singletonList(TargetSpecifications.isInRolloutGroup(rolloutGroupId))); + return JpaManagementHelper.findAllWithCountBySpec(targetRepository, + Collections.singletonList(TargetSpecifications.isInRolloutGroup(rolloutGroupId)), page + ); } - return JpaManagementHelper.findAllWithCountBySpec(targetRepository, page, - Collections.singletonList(TargetSpecifications.isInActionRolloutGroup(rolloutGroupId))); + return JpaManagementHelper.findAllWithCountBySpec(targetRepository, + Collections.singletonList(TargetSpecifications.isInActionRolloutGroup(rolloutGroupId)), page + ); } @Override @@ -201,7 +203,7 @@ public class JpaRolloutGroupManagement implements RolloutGroupManagement { rolloutGroupId); }); - return JpaManagementHelper.findAllWithCountBySpec(targetRepository, pageable, specList); + return JpaManagementHelper.findAllWithCountBySpec(targetRepository, specList, pageable); } @Override diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaSoftwareModuleManagement.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaSoftwareModuleManagement.java index e41ffc2ac..2db91b325 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaSoftwareModuleManagement.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaSoftwareModuleManagement.java @@ -178,11 +178,6 @@ public class JpaSoftwareModuleManagement implements SoftwareModuleManagement { return softwareModuleRepository.save(module); } - @Override - public long count() { - return softwareModuleRepository.count(SoftwareModuleSpecification.isNotDeleted()); - } - @Override @Transactional @Retryable(retryFor = { ConcurrencyFailureException.class }, maxAttempts = Constants.TX_RT_MAX, @@ -238,6 +233,11 @@ public class JpaSoftwareModuleManagement implements SoftwareModuleManagement { } } + @Override + public Optional get(final long id) { + return softwareModuleRepository.findById(id).map(SoftwareModule.class::cast); + } + @Override public List get(final Collection ids) { return Collections.unmodifiableList(softwareModuleRepository.findAllById(ids)); @@ -249,8 +249,8 @@ public class JpaSoftwareModuleManagement implements SoftwareModuleManagement { } @Override - public Optional get(final long id) { - return softwareModuleRepository.findById(id).map(SoftwareModule.class::cast); + public long count() { + return softwareModuleRepository.count(SoftwareModuleSpecification.isNotDeleted()); } @Override @@ -261,18 +261,18 @@ public class JpaSoftwareModuleManagement implements SoftwareModuleManagement { } @Override - public Page findByRsql(final Pageable pageable, final String rsqlParam) { - return JpaManagementHelper.findAllWithCountBySpec(softwareModuleRepository, pageable, List.of( + public Page findByRsql(final String rsqlParam, final Pageable pageable) { + return JpaManagementHelper.findAllWithCountBySpec(softwareModuleRepository, List.of( RSQLUtility.buildRsqlSpecification(rsqlParam, SoftwareModuleFields.class, virtualPropertyReplacer, database), - SoftwareModuleSpecification.isNotDeleted())); + SoftwareModuleSpecification.isNotDeleted()), pageable); } @Override @Transactional @Retryable(retryFor = { ConcurrencyFailureException.class }, maxAttempts = Constants.TX_RT_MAX, backoff = @Backoff(delay = Constants.TX_RT_DELAY)) - public List createMetaData(final Collection create) { + public List putMetaData(final Collection create) { if (!create.isEmpty()) { // check if all metadata entries refer to the same software module final Long id = ((JpaSoftwareModuleMetadataCreate) create.iterator().next()).getSoftwareModuleId(); @@ -309,7 +309,7 @@ public class JpaSoftwareModuleManagement implements SoftwareModuleManagement { @Transactional @Retryable(retryFor = { ConcurrencyFailureException.class }, maxAttempts = Constants.TX_RT_MAX, backoff = @Backoff(delay = Constants.TX_RT_DELAY)) - public SoftwareModuleMetadata createMetaData(final SoftwareModuleMetadataCreate c) { + public SoftwareModuleMetadata updateMetaData(final SoftwareModuleMetadataCreate c) { final JpaSoftwareModuleMetadataCreate create = (JpaSoftwareModuleMetadataCreate) c; final Long id = create.getSoftwareModuleId(); @@ -322,12 +322,31 @@ public class JpaSoftwareModuleManagement implements SoftwareModuleManagement { return saveMetadata(create); } + @Override + @Transactional + @Retryable(retryFor = { ConcurrencyFailureException.class }, maxAttempts = Constants.TX_RT_MAX, + backoff = @Backoff(delay = Constants.TX_RT_DELAY)) + public SoftwareModuleMetadata updateMetaData(final SoftwareModuleMetadataUpdate u) { + final GenericSoftwareModuleMetadataUpdate update = (GenericSoftwareModuleMetadataUpdate) u; + + // check if exists otherwise throw entity not found exception + final JpaSoftwareModuleMetadata metadata = (JpaSoftwareModuleMetadata) findMetaDataBySoftwareModuleId( + update.getSoftwareModuleId(), update.getKey()) + .orElseThrow(() -> new EntityNotFoundException(SoftwareModuleMetadata.class, update.getSoftwareModuleId(), update.getKey())); + + update.getValue().ifPresent(metadata::setValue); + update.isTargetVisible().ifPresent(metadata::setTargetVisible); + + JpaManagementHelper.touch(entityManager, softwareModuleRepository, metadata.getSoftwareModule()); + return softwareModuleMetadataRepository.save(metadata); + } + @Override @Transactional @Retryable(retryFor = { ConcurrencyFailureException.class }, maxAttempts = Constants.TX_RT_MAX, backoff = @Backoff(delay = Constants.TX_RT_DELAY)) public void deleteMetaData(final long id, final String key) { - final JpaSoftwareModuleMetadata metadata = (JpaSoftwareModuleMetadata) getMetaDataBySoftwareModuleId(id, + final JpaSoftwareModuleMetadata metadata = (JpaSoftwareModuleMetadata) findMetaDataBySoftwareModuleId(id, key).orElseThrow(() -> new EntityNotFoundException(SoftwareModuleMetadata.class, id, key)); JpaManagementHelper.touch(entityManager, softwareModuleRepository, @@ -335,111 +354,6 @@ public class JpaSoftwareModuleManagement implements SoftwareModuleManagement { softwareModuleMetadataRepository.deleteById(metadata.getId()); } - @Override - public Page findByAssignedTo(final Pageable pageable, final long distributionSetId) { - assertDistributionSetExists(distributionSetId); - - return JpaManagementHelper.findAllWithCountBySpec(softwareModuleRepository, pageable, - Collections.singletonList(SoftwareModuleSpecification.byAssignedToDs(distributionSetId))); - } - - @Override - public long countByAssignedTo(final long distributionSetId) { - assertDistributionSetExists(distributionSetId); - - return softwareModuleRepository.count(SoftwareModuleSpecification.byAssignedToDs(distributionSetId)); - } - - @Override - public Slice findByTextAndType(final Pageable pageable, final String searchText, - final Long typeId) { - final List> specList = new ArrayList<>(3); - specList.add(SoftwareModuleSpecification.isNotDeleted()); - - if (!ObjectUtils.isEmpty(searchText)) { - specList.add(buildSmSearchQuerySpec(searchText)); - } - - if (null != typeId) { - assertSoftwareModuleTypeExists(typeId); - specList.add(SoftwareModuleSpecification.equalType(typeId)); - } - - specList.add(SoftwareModuleSpecification.fetchType()); - - return JpaManagementHelper.findAllWithoutCountBySpec(softwareModuleRepository, pageable, specList); - } - - @Override - public Optional getByNameAndVersionAndType(final String name, final String version, - final long typeId) { - assertSoftwareModuleTypeExists(typeId); - - // TODO AC - Access is restricted. This could have problem with UI when access control is enabled. - // Vaadin UI use this for validation. May need to be called via elevated access - return JpaManagementHelper - .findOneBySpec(softwareModuleRepository, List.of( - SoftwareModuleSpecification.likeNameAndVersion(name, version), - SoftwareModuleSpecification.equalType(typeId), - SoftwareModuleSpecification.fetchType())) - .map(SoftwareModule.class::cast); - } - - @Override - public Optional getMetaDataBySoftwareModuleId(final long id, final String key) { - assertSoftwareModuleExists(id); - - return softwareModuleMetadataRepository.findById(new SwMetadataCompositeKey(id, key)) - .map(SoftwareModuleMetadata.class::cast); - } - - @Override - public Page findMetaDataBySoftwareModuleId(final Pageable pageable, final long id) { - assertSoftwareModuleExists(id); - - return JpaManagementHelper.findAllWithCountBySpec(softwareModuleMetadataRepository, pageable, - Collections.singletonList(metadataBySoftwareModuleIdSpec(id))); - } - - @Override - public long countMetaDataBySoftwareModuleId(final long id) { - assertSoftwareModuleExists(id); - - return softwareModuleMetadataRepository.countBySoftwareModuleId(id); - } - - @Override - public Page findMetaDataBySoftwareModuleIdAndTargetVisible(final Pageable pageable, - final long id) { - assertSoftwareModuleExists(id); - - return JpaManagementHelper.convertPage(softwareModuleMetadataRepository.findBySoftwareModuleIdAndTargetVisible( - id, true, PageRequest.of(0, RepositoryConstants.MAX_META_DATA_COUNT)), pageable); - } - - @Override - public Page findMetaDataByRsql(final Pageable pageable, final long id, - final String rsqlParam) { - assertSoftwareModuleExists(id); - - final List> specList = Arrays - .asList(RSQLUtility.buildRsqlSpecification(rsqlParam, SoftwareModuleMetadataFields.class, - virtualPropertyReplacer, database), metadataBySoftwareModuleIdSpec(id)); - return JpaManagementHelper.findAllWithCountBySpec(softwareModuleMetadataRepository, pageable, specList); - } - - @Override - public Slice findByType(final Pageable pageable, final long typeId) { - assertSoftwareModuleTypeExists(typeId); - - return JpaManagementHelper.findAllWithoutCountBySpec( - softwareModuleRepository, - pageable, - List.of( - SoftwareModuleSpecification.equalType(typeId), - SoftwareModuleSpecification.isNotDeleted())); - } - @Override @Transactional @Retryable(retryFor = { ConcurrencyFailureException.class }, maxAttempts = Constants.TX_RT_MAX, @@ -469,22 +383,94 @@ public class JpaSoftwareModuleManagement implements SoftwareModuleManagement { } @Override - @Transactional - @Retryable(retryFor = { ConcurrencyFailureException.class }, maxAttempts = Constants.TX_RT_MAX, - backoff = @Backoff(delay = Constants.TX_RT_DELAY)) - public SoftwareModuleMetadata updateMetaData(final SoftwareModuleMetadataUpdate u) { - final GenericSoftwareModuleMetadataUpdate update = (GenericSoftwareModuleMetadataUpdate) u; + public Page findByAssignedTo(final long distributionSetId, final Pageable pageable) { + assertDistributionSetExists(distributionSetId); - // check if exists otherwise throw entity not found exception - final JpaSoftwareModuleMetadata metadata = (JpaSoftwareModuleMetadata) getMetaDataBySoftwareModuleId( - update.getSoftwareModuleId(), update.getKey()) - .orElseThrow(() -> new EntityNotFoundException(SoftwareModuleMetadata.class, update.getSoftwareModuleId(), update.getKey())); + return JpaManagementHelper.findAllWithCountBySpec(softwareModuleRepository, + Collections.singletonList(SoftwareModuleSpecification.byAssignedToDs(distributionSetId)), pageable + ); + } - update.getValue().ifPresent(metadata::setValue); - update.isTargetVisible().ifPresent(metadata::setTargetVisible); + @Override + public Slice findByTextAndType(final String searchText, final Long typeId, final Pageable pageable) { + final List> specList = new ArrayList<>(3); + specList.add(SoftwareModuleSpecification.isNotDeleted()); - JpaManagementHelper.touch(entityManager, softwareModuleRepository, metadata.getSoftwareModule()); - return softwareModuleMetadataRepository.save(metadata); + if (!ObjectUtils.isEmpty(searchText)) { + specList.add(buildSmSearchQuerySpec(searchText)); + } + + if (null != typeId) { + assertSoftwareModuleTypeExists(typeId); + specList.add(SoftwareModuleSpecification.equalType(typeId)); + } + + specList.add(SoftwareModuleSpecification.fetchType()); + + return JpaManagementHelper.findAllWithoutCountBySpec(softwareModuleRepository, pageable, specList); + } + + @Override + public Optional findByNameAndVersionAndType(final String name, final String version, + final long typeId) { + assertSoftwareModuleTypeExists(typeId); + + // TODO AC - Access is restricted. This could have problem with UI when access control is enabled. + // Vaadin UI use this for validation. May need to be called via elevated access + return JpaManagementHelper + .findOneBySpec(softwareModuleRepository, List.of( + SoftwareModuleSpecification.likeNameAndVersion(name, version), + SoftwareModuleSpecification.equalType(typeId), + SoftwareModuleSpecification.fetchType())) + .map(SoftwareModule.class::cast); + } + + @Override + public Optional findMetaDataBySoftwareModuleId(final long id, final String key) { + assertSoftwareModuleExists(id); + + return softwareModuleMetadataRepository.findById(new SwMetadataCompositeKey(id, key)) + .map(SoftwareModuleMetadata.class::cast); + } + + @Override + public Page findMetaDataBySoftwareModuleId(final Pageable pageable, final long id) { + assertSoftwareModuleExists(id); + + return JpaManagementHelper.findAllWithCountBySpec(softwareModuleMetadataRepository, + Collections.singletonList(metadataBySoftwareModuleIdSpec(id)), pageable + ); + } + + @Override + public Page findMetaDataBySoftwareModuleIdAndTargetVisible(final Pageable pageable, + final long id) { + assertSoftwareModuleExists(id); + + return JpaManagementHelper.convertPage(softwareModuleMetadataRepository.findBySoftwareModuleIdAndTargetVisible( + id, true, PageRequest.of(0, RepositoryConstants.MAX_META_DATA_COUNT)), pageable); + } + + @Override + public Page findMetaDataByRsql(final long id, final String rsqlParam, final Pageable pageable) { + assertSoftwareModuleExists(id); + + final List> specList = Arrays + .asList(RSQLUtility.buildRsqlSpecification(rsqlParam, SoftwareModuleMetadataFields.class, + virtualPropertyReplacer, database), metadataBySoftwareModuleIdSpec(id)); + return JpaManagementHelper.findAllWithCountBySpec(softwareModuleMetadataRepository, specList, pageable); + } + + @Override + public Slice findByType(final long typeId, final Pageable pageable) { + assertSoftwareModuleTypeExists(typeId); + + return JpaManagementHelper.findAllWithoutCountBySpec( + softwareModuleRepository, + pageable, + List.of( + SoftwareModuleSpecification.equalType(typeId), + SoftwareModuleSpecification.isNotDeleted())); } @Override @@ -495,6 +481,20 @@ public class JpaSoftwareModuleManagement implements SoftwareModuleManagement { .collect(Collectors.groupingBy(o -> (Long) o[0], Collectors.mapping(o -> (SoftwareModuleMetadata) o[1], Collectors.toList()))); } + @Override + public long countByAssignedTo(final long distributionSetId) { + assertDistributionSetExists(distributionSetId); + + return softwareModuleRepository.count(SoftwareModuleSpecification.byAssignedToDs(distributionSetId)); + } + + @Override + public long countMetaDataBySoftwareModuleId(final long id) { + assertSoftwareModuleExists(id); + + return softwareModuleMetadataRepository.countBySoftwareModuleId(id); + } + private static Stream createJpaMetadataCreateStream( final Collection create) { return create.stream().map(JpaSoftwareModuleMetadataCreate.class::cast); diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaSoftwareModuleTypeManagement.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaSoftwareModuleTypeManagement.java index a9b9cd61c..66bac7afa 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaSoftwareModuleTypeManagement.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaSoftwareModuleTypeManagement.java @@ -69,27 +69,6 @@ public class JpaSoftwareModuleTypeManagement implements SoftwareModuleTypeManage this.database = database; } - @Override - public Optional getByKey(final String key) { - return softwareModuleTypeRepository.findByKey(key); - } - - @Override - public Optional getByName(final String name) { - return softwareModuleTypeRepository.findByName(name); - } - - @Override - @Transactional - @Retryable(retryFor = { ConcurrencyFailureException.class }, maxAttempts = Constants.TX_RT_MAX, - backoff = @Backoff(delay = Constants.TX_RT_DELAY)) - public List create(final Collection c) { - final List creates = c.stream().map(JpaSoftwareModuleTypeCreate.class::cast) - .map(JpaSoftwareModuleTypeCreate::build).toList(); - return Collections.unmodifiableList( - softwareModuleTypeRepository.saveAll(AccessController.Operation.CREATE, creates)); - } - @Override @Transactional @Retryable(retryFor = { ConcurrencyFailureException.class }, maxAttempts = Constants.TX_RT_MAX, @@ -118,11 +97,6 @@ public class JpaSoftwareModuleTypeManagement implements SoftwareModuleTypeManage return softwareModuleTypeRepository.save(type); } - @Override - public long count() { - return softwareModuleTypeRepository.count(SoftwareModuleTypeSpecification.isNotDeleted()); - } - @Override @Transactional @Retryable(retryFor = { ConcurrencyFailureException.class }, maxAttempts = Constants.TX_RT_MAX, @@ -144,6 +118,11 @@ public class JpaSoftwareModuleTypeManagement implements SoftwareModuleTypeManage .forEach(this::delete); } + @Override + public Optional get(final long id) { + return softwareModuleTypeRepository.findById(id).map(SoftwareModuleType.class::cast); + } + @Override public List get(final Collection ids) { return Collections.unmodifiableList(softwareModuleTypeRepository.findAllById(ids)); @@ -155,8 +134,8 @@ public class JpaSoftwareModuleTypeManagement implements SoftwareModuleTypeManage } @Override - public Optional get(final long id) { - return softwareModuleTypeRepository.findById(id).map(SoftwareModuleType.class::cast); + public long count() { + return softwareModuleTypeRepository.count(SoftwareModuleTypeSpecification.isNotDeleted()); } @Override @@ -166,12 +145,33 @@ public class JpaSoftwareModuleTypeManagement implements SoftwareModuleTypeManage } @Override - public Page findByRsql(final Pageable pageable, final String rsqlParam) { - return JpaManagementHelper.findAllWithCountBySpec(softwareModuleTypeRepository, pageable, - List.of( - RSQLUtility.buildRsqlSpecification(rsqlParam, SoftwareModuleTypeFields.class, - virtualPropertyReplacer, database), - SoftwareModuleTypeSpecification.isNotDeleted())); + public Page findByRsql(final String rsqlParam, final Pageable pageable) { + return JpaManagementHelper.findAllWithCountBySpec(softwareModuleTypeRepository, List.of( + RSQLUtility.buildRsqlSpecification(rsqlParam, SoftwareModuleTypeFields.class, + virtualPropertyReplacer, database), + SoftwareModuleTypeSpecification.isNotDeleted()), pageable + ); + } + + @Override + public Optional findByKey(final String key) { + return softwareModuleTypeRepository.findByKey(key); + } + + @Override + public Optional findByName(final String name) { + return softwareModuleTypeRepository.findByName(name); + } + + @Override + @Transactional + @Retryable(retryFor = { ConcurrencyFailureException.class }, maxAttempts = Constants.TX_RT_MAX, + backoff = @Backoff(delay = Constants.TX_RT_DELAY)) + public List create(final Collection c) { + final List creates = c.stream().map(JpaSoftwareModuleTypeCreate.class::cast) + .map(JpaSoftwareModuleTypeCreate::build).toList(); + return Collections.unmodifiableList( + softwareModuleTypeRepository.saveAll(AccessController.Operation.CREATE, creates)); } private void delete(JpaSoftwareModuleType toDelete) { diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaTargetFilterQueryManagement.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaTargetFilterQueryManagement.java index 67f4248dd..5fe6d4d31 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaTargetFilterQueryManagement.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaTargetFilterQueryManagement.java @@ -192,7 +192,7 @@ public class JpaTargetFilterQueryManagement implements TargetFilterQueryManageme TargetFilterQueryFields.class, virtualPropertyReplacer, database)) : Collections.emptyList(); - return JpaManagementHelper.findAllWithCountBySpec(targetFilterQueryRepository, pageable, specList); + return JpaManagementHelper.findAllWithCountBySpec(targetFilterQueryRepository, specList, pageable); } @Override @@ -225,7 +225,7 @@ public class JpaTargetFilterQueryManagement implements TargetFilterQueryManageme virtualPropertyReplacer, database)); } - return JpaManagementHelper.findAllWithCountBySpec(targetFilterQueryRepository, pageable, specList); + return JpaManagementHelper.findAllWithCountBySpec(targetFilterQueryRepository, specList, pageable); } @Override diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaTargetManagement.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaTargetManagement.java index dee3f8d15..b2f37e9c8 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaTargetManagement.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaTargetManagement.java @@ -345,7 +345,7 @@ public class JpaTargetManagement implements TargetManagement { TargetSpecifications.failedActionsForRollout(rolloutId), TargetSpecifications.isNotInRolloutGroups(groups)); - return JpaManagementHelper.findAllWithCountBySpec(targetRepository, pageRequest, specList); + return JpaManagementHelper.findAllWithCountBySpec(targetRepository, specList, pageRequest); } @Override @@ -382,8 +382,9 @@ public class JpaTargetManagement implements TargetManagement { public Page findByAssignedDistributionSet(final Pageable pageReq, final long distributionSetId) { final DistributionSet validDistSet = distributionSetManagement.getOrElseThrowException(distributionSetId); - return JpaManagementHelper.findAllWithCountBySpec(targetRepository, pageReq, - List.of(TargetSpecifications.hasAssignedDistributionSet(validDistSet.getId()))); + return JpaManagementHelper.findAllWithCountBySpec(targetRepository, + List.of(TargetSpecifications.hasAssignedDistributionSet(validDistSet.getId())), pageReq + ); } @Override @@ -395,7 +396,7 @@ public class JpaTargetManagement implements TargetManagement { RSQLUtility.buildRsqlSpecification(rsqlParam, TargetFields.class, virtualPropertyReplacer, database), TargetSpecifications.hasAssignedDistributionSet(validDistSet.getId())); - return JpaManagementHelper.findAllWithCountBySpec(targetRepository, pageReq, specList); + return JpaManagementHelper.findAllWithCountBySpec(targetRepository, specList, pageReq); } @Override @@ -419,8 +420,9 @@ public class JpaTargetManagement implements TargetManagement { public Page findByInstalledDistributionSet(final Pageable pageReq, final long distributionSetId) { final DistributionSet validDistSet = distributionSetManagement.getOrElseThrowException(distributionSetId); - return JpaManagementHelper.findAllWithCountBySpec(targetRepository, pageReq, - List.of(TargetSpecifications.hasInstalledDistributionSet(validDistSet.getId()))); + return JpaManagementHelper.findAllWithCountBySpec(targetRepository, + List.of(TargetSpecifications.hasInstalledDistributionSet(validDistSet.getId())), pageReq + ); } @Override @@ -432,13 +434,14 @@ public class JpaTargetManagement implements TargetManagement { RSQLUtility.buildRsqlSpecification(rsqlParam, TargetFields.class, virtualPropertyReplacer, database), TargetSpecifications.hasInstalledDistributionSet(validDistSet.getId())); - return JpaManagementHelper.findAllWithCountBySpec(targetRepository, pageable, specList); + return JpaManagementHelper.findAllWithCountBySpec(targetRepository, specList, pageable); } @Override public Page findByUpdateStatus(final Pageable pageable, final TargetUpdateStatus status) { - return JpaManagementHelper.findAllWithCountBySpec(targetRepository, pageable, - List.of(TargetSpecifications.hasTargetUpdateStatus(status))); + return JpaManagementHelper.findAllWithCountBySpec(targetRepository, List.of(TargetSpecifications.hasTargetUpdateStatus(status)), + pageable + ); } @Override @@ -466,8 +469,8 @@ public class JpaTargetManagement implements TargetManagement { public Page findByTag(final Pageable pageable, final long tagId) { throwEntityNotFoundExceptionIfTagDoesNotExist(tagId); - return JpaManagementHelper.findAllWithCountBySpec(targetRepository, pageable, - List.of(TargetSpecifications.hasTag(tagId))); + return JpaManagementHelper.findAllWithCountBySpec(targetRepository, List.of(TargetSpecifications.hasTag(tagId)), pageable + ); } @Override @@ -478,7 +481,7 @@ public class JpaTargetManagement implements TargetManagement { RSQLUtility.buildRsqlSpecification(rsqlParam, TargetFields.class, virtualPropertyReplacer, database), TargetSpecifications.hasTag(tagId)); - return JpaManagementHelper.findAllWithCountBySpec(targetRepository, pageable, specList); + return JpaManagementHelper.findAllWithCountBySpec(targetRepository, specList, pageable); } @Override @@ -685,8 +688,9 @@ public class JpaTargetManagement implements TargetManagement { @Override public Page findByControllerAttributesRequested(final Pageable pageReq) { - return JpaManagementHelper.findAllWithCountBySpec(targetRepository, pageReq, - List.of(TargetSpecifications.hasRequestControllerAttributesTrue())); + return JpaManagementHelper.findAllWithCountBySpec(targetRepository, List.of(TargetSpecifications.hasRequestControllerAttributesTrue()), + pageReq + ); } @Override @@ -770,8 +774,9 @@ public class JpaTargetManagement implements TargetManagement { public Page findMetaDataByControllerId(final Pageable pageable, final String controllerId) { final Long id = getByControllerIdAndThrowIfNotFound(controllerId).getId(); - return JpaManagementHelper.findAllWithCountBySpec(targetMetadataRepository, pageable, - Collections.singletonList(metadataByTargetIdSpec(id))); + return JpaManagementHelper.findAllWithCountBySpec(targetMetadataRepository, Collections.singletonList(metadataByTargetIdSpec(id)), + pageable + ); } @Override @@ -791,7 +796,7 @@ public class JpaTargetManagement implements TargetManagement { .buildRsqlSpecification(rsqlParam, TargetMetadataFields.class, virtualPropertyReplacer, database), metadataByTargetIdSpec(targetId)); - return JpaManagementHelper.findAllWithCountBySpec(targetMetadataRepository, pageable, specList); + return JpaManagementHelper.findAllWithCountBySpec(targetMetadataRepository, specList, pageable); } @Override diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaTargetTagManagement.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaTargetTagManagement.java index b984f0f02..63e160d7a 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaTargetTagManagement.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaTargetTagManagement.java @@ -99,13 +99,13 @@ public class JpaTargetTagManagement implements TargetTagManagement { @Override public Page findAll(final Pageable pageable) { - return JpaManagementHelper.findAllWithCountBySpec(targetTagRepository, pageable, null); + return JpaManagementHelper.findAllWithCountBySpec(targetTagRepository, null, pageable); } @Override public Page findByRsql(final Pageable pageable, final String rsqlParam) { - return JpaManagementHelper.findAllWithCountBySpec(targetTagRepository, pageable, Collections.singletonList( - RSQLUtility.buildRsqlSpecification(rsqlParam, TargetTagFields.class, virtualPropertyReplacer, database))); + return JpaManagementHelper.findAllWithCountBySpec(targetTagRepository, Collections.singletonList( + RSQLUtility.buildRsqlSpecification(rsqlParam, TargetTagFields.class, virtualPropertyReplacer, database)), pageable); } @Override diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaTargetTypeManagement.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaTargetTypeManagement.java index dede04823..94a70ad6e 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaTargetTypeManagement.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaTargetTypeManagement.java @@ -144,10 +144,10 @@ public class JpaTargetTypeManagement implements TargetTypeManagement { @Override public Page findByRsql(final Pageable pageable, final String rsqlParam) { - return JpaManagementHelper.findAllWithCountBySpec(targetTypeRepository, pageable, - List.of( - RSQLUtility.buildRsqlSpecification( - rsqlParam, TargetTypeFields.class, virtualPropertyReplacer, database))); + return JpaManagementHelper.findAllWithCountBySpec(targetTypeRepository, List.of( + RSQLUtility.buildRsqlSpecification( + rsqlParam, TargetTypeFields.class, virtualPropertyReplacer, database)), pageable + ); } @Override diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/AbstractRepositoryManagementSecurityTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/AbstractRepositoryManagementSecurityTest.java index cce3a1bf9..d0d9cd95b 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/AbstractRepositoryManagementSecurityTest.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/AbstractRepositoryManagementSecurityTest.java @@ -14,7 +14,6 @@ import java.util.List; import io.qameta.allure.Description; import org.eclipse.hawkbit.im.authentication.SpPermission; import org.eclipse.hawkbit.repository.RepositoryManagement; -import org.eclipse.hawkbit.repository.test.util.WithUser; import org.junit.jupiter.api.Test; import org.springframework.data.domain.Pageable; @@ -105,7 +104,7 @@ public abstract class AbstractRepositoryManagementSecurityTest extends @Test @Description("Tests RepositoryManagement PreAuthorized method with correct and insufficient permissions.") public void findByRsqlPermissionCheck() { - assertPermissions(() -> getRepositoryManagement().findByRsql(Pageable.ofSize(1), "(name==*)"), List.of(SpPermission.READ_REPOSITORY)); + assertPermissions(() -> getRepositoryManagement().findByRsql("(name==*)", Pageable.ofSize(1)), List.of(SpPermission.READ_REPOSITORY)); } } diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/acm/controller/DistributionSetAccessControllerTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/acm/controller/DistributionSetAccessControllerTest.java index 24e5aad46..af3e8f38a 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/acm/controller/DistributionSetAccessControllerTest.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/acm/controller/DistributionSetAccessControllerTest.java @@ -73,7 +73,7 @@ class DistributionSetAccessControllerTest extends AbstractAccessControllerTest { .containsOnly(permitted.getId()); // verify distributionSetManagement#findByRsql - assertThat(distributionSetManagement.findByRsql(Pageable.unpaged(), "name==*").get().map(Identifiable::getId) + assertThat(distributionSetManagement.findByRsql("name==*", Pageable.unpaged()).get().map(Identifiable::getId) .toList()).containsOnly(permitted.getId()); // verify distributionSetManagement#findByCompleted @@ -82,8 +82,8 @@ class DistributionSetAccessControllerTest extends AbstractAccessControllerTest { // verify distributionSetManagement#findByDistributionSetFilter assertThat(distributionSetManagement - .findByDistributionSetFilter(Pageable.unpaged(), - DistributionSetFilter.builder().isDeleted(false).build()) + .findByDistributionSetFilter(DistributionSetFilter.builder().isDeleted(false).build(), Pageable.unpaged() + ) .get().map(Identifiable::getId).toList()).containsOnly(permitted.getId()); // verify distributionSetManagement#get @@ -106,14 +106,14 @@ class DistributionSetAccessControllerTest extends AbstractAccessControllerTest { }).as("Fail if request hidden.").isInstanceOf(EntityNotFoundException.class); // verify distributionSetManagement#getByNameAndVersion - assertThat(distributionSetManagement.getByNameAndVersion(permitted.getName(), permitted.getVersion())) + assertThat(distributionSetManagement.findByNameAndVersion(permitted.getName(), permitted.getVersion())) .isPresent(); - assertThat(distributionSetManagement.getByNameAndVersion(hidden.getName(), hidden.getVersion())).isEmpty(); + assertThat(distributionSetManagement.findByNameAndVersion(hidden.getName(), hidden.getVersion())).isEmpty(); // verify distributionSetManagement#getByAction - assertThat(distributionSetManagement.getByAction(permittedAction.getId())).isPresent(); + assertThat(distributionSetManagement.findByAction(permittedAction.getId())).isPresent(); assertThatThrownBy(() -> { - distributionSetManagement.getByAction(hiddenAction.getId()); + distributionSetManagement.findByAction(hiddenAction.getId()); }).as("Action is hidden.").isInstanceOf(InsufficientPermissionException.class); } @@ -152,11 +152,11 @@ class DistributionSetAccessControllerTest extends AbstractAccessControllerTest { final JpaDistributionSetMetadata metadata = new JpaDistributionSetMetadata("test", "test"); // verify distributionSetManagement#createMetaData - distributionSetManagement.createMetaData(permitted.getId(), Collections.singletonList(metadata)); - assertThatThrownBy(() -> distributionSetManagement.createMetaData(readOnly.getId(), Collections.singletonList(metadata))) + distributionSetManagement.putMetaData(permitted.getId(), Collections.singletonList(metadata)); + assertThatThrownBy(() -> distributionSetManagement.putMetaData(readOnly.getId(), Collections.singletonList(metadata))) .as("Distribution set not allowed to me modified.") .isInstanceOf(EntityNotFoundException.class); - assertThatThrownBy(() -> distributionSetManagement.createMetaData(hidden.getId(), Collections.singletonList(metadata))) + assertThatThrownBy(() -> distributionSetManagement.putMetaData(hidden.getId(), Collections.singletonList(metadata))) .as("Distribution set should not be visible.") .isInstanceOf(EntityNotFoundException.class); @@ -204,10 +204,10 @@ class DistributionSetAccessControllerTest extends AbstractAccessControllerTest { // allow updating the permitted distributionSet defineAccess(AccessController.Operation.UPDATE, permitted); - assertThat(distributionSetManagement.findByTag(Pageable.unpaged(), dsTag.getId()).get().map(Identifiable::getId) + assertThat(distributionSetManagement.findByTag(dsTag.getId(), Pageable.unpaged()).get().map(Identifiable::getId) .toList()).containsOnly(permitted.getId(), readOnly.getId()); - assertThat(distributionSetManagement.findByRsqlAndTag(Pageable.unpaged(), "name==*", dsTag.getId()).get() + assertThat(distributionSetManagement.findByRsqlAndTag("name==*", dsTag.getId(), Pageable.unpaged()).get() .map(Identifiable::getId).toList()).containsOnly(permitted.getId(), readOnly.getId()); // verify distributionSetManagement#unassignTag on permitted target diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/DistributionSetManagementSecurityTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/DistributionSetManagementSecurityTest.java index 59cfde26f..71c69cbb3 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/DistributionSetManagementSecurityTest.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/DistributionSetManagementSecurityTest.java @@ -10,7 +10,6 @@ package org.eclipse.hawkbit.repository.jpa.management; import java.util.List; -import java.util.Random; import io.qameta.allure.Description; import io.qameta.allure.Feature; @@ -69,7 +68,7 @@ class DistributionSetManagementSecurityTest @Description("Tests ManagementAPI PreAuthorized method with correct and insufficient permissions.") void createMetaDataPermissionsCheck() { assertPermissions( - () -> distributionSetManagement.createMetaData(1L, List.of(entityFactory.generateTargetMetadata("key", "value"))), + () -> distributionSetManagement.putMetaData(1L, List.of(entityFactory.generateTargetMetadata("key", "value"))), List.of(SpPermission.UPDATE_REPOSITORY)); } @@ -103,7 +102,7 @@ class DistributionSetManagementSecurityTest @Test @Description("Tests ManagementAPI PreAuthorized method with correct and insufficient permissions.") void getByActionPermissionsCheck() { - assertPermissions(() -> distributionSetManagement.getByAction(1L), List.of(SpPermission.READ_REPOSITORY)); + assertPermissions(() -> distributionSetManagement.findByAction(1L), List.of(SpPermission.READ_REPOSITORY)); } @Test @@ -115,7 +114,7 @@ class DistributionSetManagementSecurityTest @Test @Description("Tests ManagementAPI PreAuthorized method with correct and insufficient permissions.") void getByNameAndVersionPermissionsCheck() { - assertPermissions(() -> distributionSetManagement.getByNameAndVersion("name", "version"), List.of(SpPermission.READ_REPOSITORY)); + assertPermissions(() -> distributionSetManagement.findByNameAndVersion("name", "version"), List.of(SpPermission.READ_REPOSITORY)); } @Test @@ -139,7 +138,7 @@ class DistributionSetManagementSecurityTest @Test @Description("Tests ManagementAPI PreAuthorized method with correct and insufficient permissions.") void findMetaDataByDistributionSetIdPermissionsCheck() { - assertPermissions(() -> distributionSetManagement.findMetaDataByDistributionSetId(PAGE, 1L), List.of(SpPermission.READ_REPOSITORY)); + assertPermissions(() -> distributionSetManagement.findMetaDataByDistributionSetId(1L, PAGE), List.of(SpPermission.READ_REPOSITORY)); } @Test @@ -151,7 +150,7 @@ class DistributionSetManagementSecurityTest @Test @Description("Tests ManagementAPI PreAuthorized method with correct and insufficient permissions.") void findMetaDataByDistributionSetIdAndRsqlPermissionsCheck() { - assertPermissions(() -> distributionSetManagement.findMetaDataByDistributionSetIdAndRsql(PAGE, 1L, "rsql"), + assertPermissions(() -> distributionSetManagement.findMetaDataByDistributionSetIdAndRsql(1L, "rsql", PAGE), List.of(SpPermission.READ_REPOSITORY)); } @@ -170,7 +169,7 @@ class DistributionSetManagementSecurityTest @Test @Description("Tests ManagementAPI PreAuthorized method with correct and insufficient permissions.") void findByDistributionSetFilterPermissionsCheck() { - assertPermissions(() -> distributionSetManagement.findByDistributionSetFilter(PAGE, DistributionSetFilter.builder().build()), + assertPermissions(() -> distributionSetManagement.findByDistributionSetFilter(DistributionSetFilter.builder().build(), PAGE), List.of(SpPermission.READ_REPOSITORY)); } @@ -184,19 +183,19 @@ class DistributionSetManagementSecurityTest @Test @Description("Tests ManagementAPI PreAuthorized method with correct and insufficient permissions.") void findByTagPermissionsCheck() { - assertPermissions(() -> distributionSetManagement.findByTag(PAGE, 1L), List.of(SpPermission.READ_REPOSITORY)); + assertPermissions(() -> distributionSetManagement.findByTag(1L, PAGE), List.of(SpPermission.READ_REPOSITORY)); } @Test @Description("Tests ManagementAPI PreAuthorized method with correct and insufficient permissions.") void findByRsqlAndTagPermissionsCheck() { - assertPermissions(() -> distributionSetManagement.findByRsqlAndTag(PAGE, "rsql", 1L), List.of(SpPermission.READ_REPOSITORY)); + assertPermissions(() -> distributionSetManagement.findByRsqlAndTag("rsql", 1L, PAGE), List.of(SpPermission.READ_REPOSITORY)); } @Test @Description("Tests ManagementAPI PreAuthorized method with correct and insufficient permissions.") void getMetaDataByDistributionSetIdPermissionsCheck() { - assertPermissions(() -> distributionSetManagement.getMetaDataByDistributionSetId(1L, "key"), List.of(SpPermission.READ_REPOSITORY)); + assertPermissions(() -> distributionSetManagement.findMetaDataByDistributionSetId(1L, "key"), List.of(SpPermission.READ_REPOSITORY)); } @Test diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/DistributionSetManagementTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/DistributionSetManagementTest.java index 7912b7eba..cd18e7e1a 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/DistributionSetManagementTest.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/DistributionSetManagementTest.java @@ -96,8 +96,8 @@ class DistributionSetManagementTest extends AbstractJpaIntegrationTest { final DistributionSet set = testdataFactory.createDistributionSet(); assertThat(distributionSetManagement.get(NOT_EXIST_IDL)).isNotPresent(); assertThat(distributionSetManagement.getWithDetails(NOT_EXIST_IDL)).isNotPresent(); - assertThat(distributionSetManagement.getByNameAndVersion(NOT_EXIST_ID, NOT_EXIST_ID)).isNotPresent(); - assertThat(distributionSetManagement.getMetaDataByDistributionSetId(set.getId(), NOT_EXIST_ID)).isNotPresent(); + assertThat(distributionSetManagement.findByNameAndVersion(NOT_EXIST_ID, NOT_EXIST_ID)).isNotPresent(); + assertThat(distributionSetManagement.findMetaDataByDistributionSetId(set.getId(), NOT_EXIST_ID)).isNotPresent(); } @Test @@ -125,8 +125,8 @@ class DistributionSetManagementTest extends AbstractJpaIntegrationTest { verifyThrownExceptionBy(() -> distributionSetManagement.assignTag(singletonList(set.getId()), NOT_EXIST_IDL), "DistributionSetTag"); verifyThrownExceptionBy(() -> distributionSetManagement.assignTag(singletonList(NOT_EXIST_IDL), dsTag.getId()), "DistributionSet"); - verifyThrownExceptionBy(() -> distributionSetManagement.findByTag(PAGE, NOT_EXIST_IDL), "DistributionSetTag"); - verifyThrownExceptionBy(() -> distributionSetManagement.findByRsqlAndTag(PAGE, "name==*", NOT_EXIST_IDL), "DistributionSetTag"); + verifyThrownExceptionBy(() -> distributionSetManagement.findByTag(NOT_EXIST_IDL, PAGE), "DistributionSetTag"); + verifyThrownExceptionBy(() -> distributionSetManagement.findByRsqlAndTag("name==*", NOT_EXIST_IDL, PAGE), "DistributionSetTag"); verifyThrownExceptionBy(() -> distributionSetManagement.assignTag(singletonList(NOT_EXIST_IDL), dsTag.getId()), "DistributionSet"); verifyThrownExceptionBy(() -> @@ -139,7 +139,7 @@ class DistributionSetManagementTest extends AbstractJpaIntegrationTest { verifyThrownExceptionBy(() -> distributionSetManagement.create( entityFactory.distributionSet().create().name("xxx").type(NOT_EXIST_ID)), "DistributionSetType"); - verifyThrownExceptionBy(() -> distributionSetManagement.createMetaData( + verifyThrownExceptionBy(() -> distributionSetManagement.putMetaData( NOT_EXIST_IDL, singletonList(entityFactory.generateDsMetadata("123", "123"))), "DistributionSet"); verifyThrownExceptionBy(() -> distributionSetManagement.delete(singletonList(NOT_EXIST_IDL)), "DistributionSet"); @@ -149,16 +149,16 @@ class DistributionSetManagementTest extends AbstractJpaIntegrationTest { verifyThrownExceptionBy(() -> distributionSetManagement.deleteMetaData(set.getId(), NOT_EXIST_ID), "DistributionSetMetadata"); - verifyThrownExceptionBy(() -> distributionSetManagement.getByAction(NOT_EXIST_IDL), "Action"); + verifyThrownExceptionBy(() -> distributionSetManagement.findByAction(NOT_EXIST_IDL), "Action"); - verifyThrownExceptionBy(() -> distributionSetManagement.getMetaDataByDistributionSetId(NOT_EXIST_IDL, "xxx"), + verifyThrownExceptionBy(() -> distributionSetManagement.findMetaDataByDistributionSetId(NOT_EXIST_IDL, "xxx"), "DistributionSet"); - verifyThrownExceptionBy(() -> distributionSetManagement.findMetaDataByDistributionSetId(PAGE, NOT_EXIST_IDL), + verifyThrownExceptionBy(() -> distributionSetManagement.findMetaDataByDistributionSetId(NOT_EXIST_IDL, PAGE), "DistributionSet"); verifyThrownExceptionBy( - () -> distributionSetManagement.findMetaDataByDistributionSetIdAndRsql(PAGE, NOT_EXIST_IDL, "name==*"), + () -> distributionSetManagement.findMetaDataByDistributionSetIdAndRsql(NOT_EXIST_IDL, "name==*", PAGE), "DistributionSet"); assertThatThrownBy(() -> distributionSetManagement.isInUse(NOT_EXIST_IDL)) @@ -325,22 +325,22 @@ class DistributionSetManagementTest extends AbstractJpaIntegrationTest { .as("ds has wrong tag size") .isEqualTo(1)); - final DistributionSetTag findDistributionSetTag = getOrThrow(distributionSetTagManagement.getByName(TAG1_NAME)); + final DistributionSetTag findDistributionSetTag = getOrThrow(distributionSetTagManagement.findByName(TAG1_NAME)); assertThat(assignedDS.size()).as("assigned ds has wrong size") - .isEqualTo(distributionSetManagement.findByTag(PAGE, tag.getId()).getNumberOfElements()); + .isEqualTo(distributionSetManagement.findByTag(tag.getId(), PAGE).getNumberOfElements()); final JpaDistributionSet unAssignDS = (JpaDistributionSet) distributionSetManagement .unassignTag(assignDS.get(0), findDistributionSetTag.getId()); assertThat(unAssignDS.getId()).as("unassigned ds is wrong").isEqualTo(assignDS.get(0)); assertThat(unAssignDS.getTags().size()).as("unassigned ds has wrong tag size").isZero(); - assertThat(distributionSetTagManagement.getByName(TAG1_NAME)).isPresent(); - assertThat(distributionSetManagement.findByTag(PAGE, tag.getId()).getNumberOfElements()) + assertThat(distributionSetTagManagement.findByName(TAG1_NAME)).isPresent(); + assertThat(distributionSetManagement.findByTag(tag.getId(), PAGE).getNumberOfElements()) .as("ds tag ds has wrong ds size").isEqualTo(3); - assertThat(distributionSetManagement.findByRsqlAndTag(PAGE, "name==" + unAssignDS.getName(), tag.getId()) + assertThat(distributionSetManagement.findByRsqlAndTag("name==" + unAssignDS.getName(), tag.getId(), PAGE) .getNumberOfElements()).as("ds tag ds has wrong ds size").isZero(); - assertThat(distributionSetManagement.findByRsqlAndTag(PAGE, "name!=" + unAssignDS.getName(), tag.getId()) + assertThat(distributionSetManagement.findByRsqlAndTag("name!=" + unAssignDS.getName(), tag.getId(), PAGE) .getNumberOfElements()).as("ds tag ds has wrong ds size").isEqualTo(3); } @@ -791,10 +791,10 @@ class DistributionSetManagementTest extends AbstractJpaIntegrationTest { } final Page metadataOfDs1 = distributionSetManagement - .findMetaDataByDistributionSetId(PageRequest.of(0, 100), ds1.getId()); + .findMetaDataByDistributionSetId(ds1.getId(), PageRequest.of(0, 100)); final Page metadataOfDs2 = distributionSetManagement - .findMetaDataByDistributionSetId(PageRequest.of(0, 100), ds2.getId()); + .findMetaDataByDistributionSetId(ds2.getId(), PageRequest.of(0, 100)); assertThat(metadataOfDs1.getNumberOfElements()) .isEqualTo(quotaManagement.getMaxMetaDataEntriesPerDistributionSet()); @@ -831,7 +831,7 @@ class DistributionSetManagementTest extends AbstractJpaIntegrationTest { assertThat(distributionSetRepository.findAll()).hasSize(4); assertThat(distributionSetManagement.findByCompleted(PAGE, true)).hasSize(2); assertThat(distributionSetManagement.findAll(PAGE)).hasSize(2); - assertThat(distributionSetManagement.findByRsql(PAGE, "name==*")).hasSize(2); + assertThat(distributionSetManagement.findByRsql("name==*", PAGE)).hasSize(2); assertThat(distributionSetManagement.count()).isEqualTo(2); } @@ -889,7 +889,7 @@ class DistributionSetManagementTest extends AbstractJpaIntegrationTest { final String knownUpdateValue = "knownUpdateValue"; final DistributionSet ds = testdataFactory.createDistributionSet(); - distributionSetManagement.createMetaData(ds.getId(), + distributionSetManagement.putMetaData(ds.getId(), singletonList(entityFactory.generateDsMetadata(knownKey1, knownValue))); distributionSetInvalidationManagement.invalidateDistributionSet( @@ -898,7 +898,7 @@ class DistributionSetManagementTest extends AbstractJpaIntegrationTest { // assert that no new metadata can be created assertThatExceptionOfType(InvalidDistributionSetException.class) .as("Invalid distributionSet should throw an exception") - .isThrownBy(() -> distributionSetManagement.createMetaData(ds.getId(), + .isThrownBy(() -> distributionSetManagement.putMetaData(ds.getId(), singletonList(entityFactory.generateDsMetadata(knownKey2, knownValue)))); // assert that an existing metadata can not be updated @@ -1251,18 +1251,18 @@ class DistributionSetManagementTest extends AbstractJpaIntegrationTest { private void assertThatFilterContainsOnlyGivenDistributionSets(final DistributionSetFilterBuilder filterBuilder, final List distributionSets) { final int expectedDsSize = distributionSets.size(); - assertThat(distributionSetManagement.findByDistributionSetFilter(PAGE, filterBuilder.build()).getContent()) + assertThat(distributionSetManagement.findByDistributionSetFilter(filterBuilder.build(), PAGE).getContent()) .hasSize(expectedDsSize).containsOnly(distributionSets.toArray(new DistributionSet[expectedDsSize])); } private void assertThatFilterDoesNotContainAnyDistributionSet(final DistributionSetFilterBuilder filterBuilder) { - assertThat(distributionSetManagement.findByDistributionSetFilter(PAGE, filterBuilder.build()).getContent()) + assertThat(distributionSetManagement.findByDistributionSetFilter(filterBuilder.build(), PAGE).getContent()) .isEmpty(); } private void assertThatFilterHasSizeAndDoesNotContainDistributionSet( final DistributionSetFilterBuilder filterBuilder, final int size, final DistributionSet ds) { - assertThat(distributionSetManagement.findByDistributionSetFilter(PAGE, filterBuilder.build()).getContent()) + assertThat(distributionSetManagement.findByDistributionSetFilter(filterBuilder.build(), PAGE).getContent()) .hasSize(size).doesNotContain(ds); } diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/DistributionSetTagManagementSecurityTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/DistributionSetTagManagementSecurityTest.java index 907c284ee..94324caf2 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/DistributionSetTagManagementSecurityTest.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/DistributionSetTagManagementSecurityTest.java @@ -47,7 +47,7 @@ public class DistributionSetTagManagementSecurityTest @Test @Description("Tests ManagementAPI PreAuthorized method with correct and insufficient permissions.") void getByNameWitPermissionWorks() { - assertPermissions(() -> distributionSetTagManagement.getByName("tagName"), List.of(SpPermission.READ_REPOSITORY)); + assertPermissions(() -> distributionSetTagManagement.findByName("tagName"), List.of(SpPermission.READ_REPOSITORY)); } @Test diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/DistributionSetTagManagementTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/DistributionSetTagManagementTest.java index 3cef72444..507925e76 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/DistributionSetTagManagementTest.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/DistributionSetTagManagementTest.java @@ -56,7 +56,7 @@ class DistributionSetTagManagementTest extends AbstractJpaIntegrationTest { @Description("Verifies that management get access reacts as specified on calls for non existing entities by means of Optional not present.") @ExpectEvents({ @Expect(type = TargetCreatedEvent.class, count = 0) }) void nonExistingEntityAccessReturnsNotPresent() { - assertThat(distributionSetTagManagement.getByName(NOT_EXIST_ID)).isNotPresent(); + assertThat(distributionSetTagManagement.findByName(NOT_EXIST_ID)).isNotPresent(); assertThat(distributionSetTagManagement.get(NOT_EXIST_IDL)).isNotPresent(); } @@ -95,18 +95,18 @@ class DistributionSetTagManagementTest extends AbstractJpaIntegrationTest { assignTag(dsBs, tagB); assignTag(dsCs, tagC); - assignTag(dsABs, distributionSetTagManagement.getByName(tagA.getName()).get()); - assignTag(dsABs, distributionSetTagManagement.getByName(tagB.getName()).get()); + assignTag(dsABs, distributionSetTagManagement.findByName(tagA.getName()).get()); + assignTag(dsABs, distributionSetTagManagement.findByName(tagB.getName()).get()); - assignTag(dsACs, distributionSetTagManagement.getByName(tagA.getName()).get()); - assignTag(dsACs, distributionSetTagManagement.getByName(tagC.getName()).get()); + assignTag(dsACs, distributionSetTagManagement.findByName(tagA.getName()).get()); + assignTag(dsACs, distributionSetTagManagement.findByName(tagC.getName()).get()); - assignTag(dsBCs, distributionSetTagManagement.getByName(tagB.getName()).get()); - assignTag(dsBCs, distributionSetTagManagement.getByName(tagC.getName()).get()); + assignTag(dsBCs, distributionSetTagManagement.findByName(tagB.getName()).get()); + assignTag(dsBCs, distributionSetTagManagement.findByName(tagC.getName()).get()); - assignTag(dsABCs, distributionSetTagManagement.getByName(tagA.getName()).get()); - assignTag(dsABCs, distributionSetTagManagement.getByName(tagB.getName()).get()); - assignTag(dsABCs, distributionSetTagManagement.getByName(tagC.getName()).get()); + assignTag(dsABCs, distributionSetTagManagement.findByName(tagA.getName()).get()); + assignTag(dsABCs, distributionSetTagManagement.findByName(tagB.getName()).get()); + assignTag(dsABCs, distributionSetTagManagement.findByName(tagC.getName()).get()); // search for not deleted final DistributionSetFilter.DistributionSetFilterBuilder distributionSetFilterBuilder = getDistributionSetFilterBuilder() @@ -150,7 +150,7 @@ class DistributionSetTagManagementTest extends AbstractJpaIntegrationTest { assertThat(result).size().isEqualTo(20); assertThat(result).containsAll(distributionSetManagement.get(groupA.stream().map(DistributionSet::getId).toList())); assertThat( - distributionSetManagement.findByTag(Pageable.unpaged(), tag.getId()).getContent().stream() + distributionSetManagement.findByTag(tag.getId(), Pageable.unpaged()).getContent().stream() .map(DistributionSet::getId) .sorted() .toList()) @@ -163,7 +163,7 @@ class DistributionSetTagManagementTest extends AbstractJpaIntegrationTest { assertThat(result).containsAll(distributionSetManagement .get(groupAB.stream().map(DistributionSet::getId).toList())); assertThat( - distributionSetManagement.findByTag(Pageable.unpaged(), tag.getId()).getContent().stream().map(DistributionSet::getId).sorted() + distributionSetManagement.findByTag(tag.getId(), Pageable.unpaged()).getContent().stream().map(DistributionSet::getId).sorted() .toList()) .isEqualTo(groupAB.stream().map(DistributionSet::getId).sorted().toList()); @@ -171,7 +171,7 @@ class DistributionSetTagManagementTest extends AbstractJpaIntegrationTest { result = unassignTag(concat(groupA, groupB), tag); assertThat(result).size().isEqualTo(40); assertThat(result).containsAll(distributionSetManagement.get(concat(groupB, groupA).stream().map(DistributionSet::getId).toList())); - assertThat(distributionSetManagement.findByTag(Pageable.unpaged(), tag.getId()).getContent()).isEmpty(); + assertThat(distributionSetManagement.findByTag(tag.getId(), Pageable.unpaged()).getContent()).isEmpty(); } @Test @@ -210,7 +210,7 @@ class DistributionSetTagManagementTest extends AbstractJpaIntegrationTest { assertThat(distributionSetTagRepository.findByNameEquals("kai1").get().getDescription()).as("wrong tag found") .isEqualTo("kai2"); - assertThat(distributionSetTagManagement.getByName("kai1").get().getColour()).as("wrong tag found") + assertThat(distributionSetTagManagement.findByName("kai1").get().getColour()).as("wrong tag found") .isEqualTo("colour"); assertThat(distributionSetTagManagement.get(tag.getId()).get().getColour()).as("wrong tag found") .isEqualTo("colour"); @@ -302,7 +302,7 @@ class DistributionSetTagManagementTest extends AbstractJpaIntegrationTest { private void verifyExpectedFilteredDistributionSets(final DistributionSetFilter.DistributionSetFilterBuilder distributionSetFilterBuilder, final Stream> expectedFilteredDistributionSets) { final Collection retrievedFilteredDsIds = distributionSetManagement - .findByDistributionSetFilter(PAGE, distributionSetFilterBuilder.build()).stream() + .findByDistributionSetFilter(distributionSetFilterBuilder.build(), PAGE).stream() .map(DistributionSet::getId).toList(); final Collection expectedFilteredDsIds = expectedFilteredDistributionSets.flatMap(Collection::stream) .map(DistributionSet::getId).toList(); diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/DistributionSetTypeManagementSecurityTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/DistributionSetTypeManagementSecurityTest.java index 2f60ab584..118259b0f 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/DistributionSetTypeManagementSecurityTest.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/DistributionSetTypeManagementSecurityTest.java @@ -46,13 +46,13 @@ public class DistributionSetTypeManagementSecurityTest @Test @Description("Tests ManagementAPI PreAuthorized method with correct and insufficient permissions.") void getByKeyPermissionsCheck() { - assertPermissions(() -> distributionSetTypeManagement.getByKey("key"), List.of(SpPermission.READ_REPOSITORY)); + assertPermissions(() -> distributionSetTypeManagement.findByKey("key"), List.of(SpPermission.READ_REPOSITORY)); } @Test @Description("Tests ManagementAPI PreAuthorized method with correct and insufficient permissions.") void getByNamePermissionsCheck() { - assertPermissions(() -> distributionSetTypeManagement.getByName("name"), List.of(SpPermission.READ_REPOSITORY)); + assertPermissions(() -> distributionSetTypeManagement.findByName("name"), List.of(SpPermission.READ_REPOSITORY)); } @Test diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/DistributionSetTypeManagementTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/DistributionSetTypeManagementTest.java index 04b725fde..7c2a641fe 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/DistributionSetTypeManagementTest.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/DistributionSetTypeManagementTest.java @@ -58,8 +58,8 @@ public class DistributionSetTypeManagementTest extends AbstractJpaIntegrationTes @ExpectEvents({ @Expect(type = DistributionSetCreatedEvent.class, count = 0) }) public void nonExistingEntityAccessReturnsNotPresent() { assertThat(distributionSetTypeManagement.get(NOT_EXIST_IDL)).isNotPresent(); - assertThat(distributionSetTypeManagement.getByKey(NOT_EXIST_ID)).isNotPresent(); - assertThat(distributionSetTypeManagement.getByName(NOT_EXIST_ID)).isNotPresent(); + assertThat(distributionSetTypeManagement.findByKey(NOT_EXIST_ID)).isNotPresent(); + assertThat(distributionSetTypeManagement.findByName(NOT_EXIST_ID)).isNotPresent(); } @Test @@ -111,23 +111,23 @@ public class DistributionSetTypeManagementTest extends AbstractJpaIntegrationTes public void updateUnassignedDistributionSetTypeModules() { final DistributionSetType updatableType = distributionSetTypeManagement .create(entityFactory.distributionSetType().create().key("updatableType").name("to be deleted")); - assertThat(distributionSetTypeManagement.getByKey("updatableType").get().getMandatoryModuleTypes()).isEmpty(); + assertThat(distributionSetTypeManagement.findByKey("updatableType").get().getMandatoryModuleTypes()).isEmpty(); // add OS distributionSetTypeManagement.assignMandatorySoftwareModuleTypes(updatableType.getId(), Set.of(osType.getId())); - assertThat(distributionSetTypeManagement.getByKey("updatableType").get().getMandatoryModuleTypes()) + assertThat(distributionSetTypeManagement.findByKey("updatableType").get().getMandatoryModuleTypes()) .containsOnly(osType); // add JVM distributionSetTypeManagement.assignMandatorySoftwareModuleTypes(updatableType.getId(), Set.of(runtimeType.getId())); - assertThat(distributionSetTypeManagement.getByKey("updatableType").get().getMandatoryModuleTypes()) + assertThat(distributionSetTypeManagement.findByKey("updatableType").get().getMandatoryModuleTypes()) .containsOnly(osType, runtimeType); // remove OS distributionSetTypeManagement.unassignSoftwareModuleType(updatableType.getId(), osType.getId()); - assertThat(distributionSetTypeManagement.getByKey("updatableType").get().getMandatoryModuleTypes()) + assertThat(distributionSetTypeManagement.findByKey("updatableType").get().getMandatoryModuleTypes()) .containsOnly(runtimeType); } @@ -186,9 +186,9 @@ public class DistributionSetTypeManagementTest extends AbstractJpaIntegrationTes distributionSetTypeManagement.update( entityFactory.distributionSetType().update(nonUpdatableType.getId()).description("a new description")); - assertThat(distributionSetTypeManagement.getByKey("updatableType").get().getDescription()) + assertThat(distributionSetTypeManagement.findByKey("updatableType").get().getDescription()) .isEqualTo("a new description"); - assertThat(distributionSetTypeManagement.getByKey("updatableType").get().getColour()).isEqualTo("test123"); + assertThat(distributionSetTypeManagement.findByKey("updatableType").get().getColour()).isEqualTo("test123"); } @Test @@ -206,7 +206,7 @@ public class DistributionSetTypeManagementTest extends AbstractJpaIntegrationTes public void removeModuleToAssignedDistributionSetTypeFails() { DistributionSetType nonUpdatableType = distributionSetTypeManagement .create(entityFactory.distributionSetType().create().key("updatableType").name("to be deleted")); - assertThat(distributionSetTypeManagement.getByKey("updatableType").get().getMandatoryModuleTypes()).isEmpty(); + assertThat(distributionSetTypeManagement.findByKey("updatableType").get().getMandatoryModuleTypes()).isEmpty(); nonUpdatableType = distributionSetTypeManagement.assignMandatorySoftwareModuleTypes(nonUpdatableType.getId(), Set.of(osType.getId())); @@ -242,11 +242,11 @@ public class DistributionSetTypeManagementTest extends AbstractJpaIntegrationTes entityFactory.distributionSet().create().name("softdeleted").version("1").type(toBeDeleted.getKey())); distributionSetTypeManagement.delete(toBeDeleted.getId()); - final Optional softdeleted = distributionSetTypeManagement.getByKey("softdeleted"); + final Optional softdeleted = distributionSetTypeManagement.findByKey("softdeleted"); assertThat(softdeleted).isPresent(); assertThat(softdeleted.get().isDeleted()).isTrue(); assertThat(distributionSetTypeManagement.findAll(PAGE)).hasSize(existing); - assertThat(distributionSetTypeManagement.findByRsql(PAGE, "name==*")).hasSize(existing); + assertThat(distributionSetTypeManagement.findByRsql("name==*", PAGE)).hasSize(existing); assertThat(distributionSetTypeManagement.count()).isEqualTo(existing); } @@ -358,7 +358,7 @@ public class DistributionSetTypeManagementTest extends AbstractJpaIntegrationTes private DistributionSetType createDistributionSetTypeUsedByDs() { final DistributionSetType nonUpdatableType = distributionSetTypeManagement.create(entityFactory .distributionSetType().create().key("updatableType").name("to be deleted").colour("test123")); - assertThat(distributionSetTypeManagement.getByKey("updatableType").get().getMandatoryModuleTypes()).isEmpty(); + assertThat(distributionSetTypeManagement.findByKey("updatableType").get().getMandatoryModuleTypes()).isEmpty(); distributionSetManagement.create(entityFactory.distributionSet().create().name("newtypesoft").version("1") .type(nonUpdatableType.getKey())); return nonUpdatableType; diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/SoftwareManagementSecurityTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/SoftwareManagementSecurityTest.java index be1ebf441..5c901f10f 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/SoftwareManagementSecurityTest.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/SoftwareManagementSecurityTest.java @@ -46,9 +46,9 @@ public class SoftwareManagementSecurityTest @Description("Tests ManagementAPI PreAuthorized method with correct and insufficient permissions.") void createMetaDataPermissionsCheck() { assertPermissions( - () -> softwareModuleManagement.createMetaData(entityFactory.softwareModuleMetadata().create(1L).key("key").value("value")), + () -> softwareModuleManagement.updateMetaData(entityFactory.softwareModuleMetadata().create(1L).key("key").value("value")), List.of(SpPermission.UPDATE_REPOSITORY)); - assertPermissions(() -> softwareModuleManagement.createMetaData( + assertPermissions(() -> softwareModuleManagement.putMetaData( List.of(entityFactory.softwareModuleMetadata().create(1L).key("key").value("value"))), List.of(SpPermission.UPDATE_REPOSITORY)); } @@ -64,7 +64,7 @@ public class SoftwareManagementSecurityTest @Test @Description("Tests ManagementAPI PreAuthorized method with correct and insufficient permissions.") void findByAssignedToPermissionsCheck() { - assertPermissions(() -> softwareModuleManagement.findByAssignedTo(PAGE, 1L), List.of(SpPermission.READ_REPOSITORY)); + assertPermissions(() -> softwareModuleManagement.findByAssignedTo(1L, PAGE), List.of(SpPermission.READ_REPOSITORY)); } @Test @@ -76,19 +76,19 @@ public class SoftwareManagementSecurityTest @Test @Description("Tests ManagementAPI PreAuthorized method with correct and insufficient permissions.") void findByTextAndTypePermissionsCheck() { - assertPermissions(() -> softwareModuleManagement.findByTextAndType(PAGE, "text", 1L), List.of(SpPermission.READ_REPOSITORY)); + assertPermissions(() -> softwareModuleManagement.findByTextAndType("text", 1L, PAGE), List.of(SpPermission.READ_REPOSITORY)); } @Test void getByNameAndVersionAndTypePermissionsCheck() { - assertPermissions(() -> softwareModuleManagement.getByNameAndVersionAndType("name", "version", 1L), + assertPermissions(() -> softwareModuleManagement.findByNameAndVersionAndType("name", "version", 1L), List.of(SpPermission.READ_REPOSITORY)); } @Test @Description("Tests ManagementAPI PreAuthorized method with correct and insufficient permissions.") void getMetaDataBySoftwareModuleIdPermissionsCheck() { - assertPermissions(() -> softwareModuleManagement.getMetaDataBySoftwareModuleId(1L, "key"), List.of(SpPermission.READ_REPOSITORY)); + assertPermissions(() -> softwareModuleManagement.findMetaDataBySoftwareModuleId(1L, "key"), List.of(SpPermission.READ_REPOSITORY)); } @Test @@ -113,13 +113,13 @@ public class SoftwareManagementSecurityTest @Test @Description("Tests ManagementAPI PreAuthorized method with correct and insufficient permissions.") void findMetaDataByRsqlPermissionsCheck() { - assertPermissions(() -> softwareModuleManagement.findMetaDataByRsql(PAGE, 1L, "key==value"), List.of(SpPermission.READ_REPOSITORY)); + assertPermissions(() -> softwareModuleManagement.findMetaDataByRsql(1L, "key==value", PAGE), List.of(SpPermission.READ_REPOSITORY)); } @Test @Description("Tests ManagementAPI PreAuthorized method with correct and insufficient permissions.") void findByTypePermissionsCheck() { - assertPermissions(() -> softwareModuleManagement.findByType(PAGE, 1L), List.of(SpPermission.READ_REPOSITORY)); + assertPermissions(() -> softwareModuleManagement.findByType(1L, PAGE), List.of(SpPermission.READ_REPOSITORY)); } @Test diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/SoftwareModuleManagementTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/SoftwareModuleManagementTest.java index 4034da51d..cacd69627 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/SoftwareModuleManagementTest.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/SoftwareModuleManagementTest.java @@ -68,10 +68,10 @@ class SoftwareModuleManagementTest extends AbstractJpaIntegrationTest { assertThat(softwareModuleManagement.get(1234L)).isNotPresent(); - assertThat(softwareModuleManagement.getByNameAndVersionAndType(NOT_EXIST_ID, NOT_EXIST_ID, osType.getId())) + assertThat(softwareModuleManagement.findByNameAndVersionAndType(NOT_EXIST_ID, NOT_EXIST_ID, osType.getId())) .isNotPresent(); - assertThat(softwareModuleManagement.getMetaDataBySoftwareModuleId(module.getId(), NOT_EXIST_ID)).isNotPresent(); + assertThat(softwareModuleManagement.findMetaDataBySoftwareModuleId(module.getId(), NOT_EXIST_ID)).isNotPresent(); } @Test @@ -91,11 +91,11 @@ class SoftwareModuleManagementTest extends AbstractJpaIntegrationTest { "SoftwareModuleType"); verifyThrownExceptionBy( - () -> softwareModuleManagement.createMetaData( + () -> softwareModuleManagement.updateMetaData( entityFactory.softwareModuleMetadata().create(NOT_EXIST_IDL).key("xxx").value("xxx")), "SoftwareModule"); verifyThrownExceptionBy( - () -> softwareModuleManagement.createMetaData(Collections.singletonList( + () -> softwareModuleManagement.putMetaData(Collections.singletonList( entityFactory.softwareModuleMetadata().create(NOT_EXIST_IDL).key("xxx").value("xxx"))), "SoftwareModule"); @@ -115,21 +115,21 @@ class SoftwareModuleManagementTest extends AbstractJpaIntegrationTest { entityFactory.softwareModuleMetadata().update(module.getId(), NOT_EXIST_ID).value("xxx")), "SoftwareModuleMetadata"); - verifyThrownExceptionBy(() -> softwareModuleManagement.findByAssignedTo(PAGE, NOT_EXIST_IDL), + verifyThrownExceptionBy(() -> softwareModuleManagement.findByAssignedTo(NOT_EXIST_IDL, PAGE), "DistributionSet"); - verifyThrownExceptionBy(() -> softwareModuleManagement.getByNameAndVersionAndType("xxx", "xxx", NOT_EXIST_IDL), + verifyThrownExceptionBy(() -> softwareModuleManagement.findByNameAndVersionAndType("xxx", "xxx", NOT_EXIST_IDL), "SoftwareModuleType"); verifyThrownExceptionBy( - () -> softwareModuleManagement.getMetaDataBySoftwareModuleId(NOT_EXIST_IDL, NOT_EXIST_ID), + () -> softwareModuleManagement.findMetaDataBySoftwareModuleId(NOT_EXIST_IDL, NOT_EXIST_ID), "SoftwareModule"); verifyThrownExceptionBy(() -> softwareModuleManagement.findMetaDataBySoftwareModuleId(PAGE, NOT_EXIST_IDL), "SoftwareModule"); - verifyThrownExceptionBy(() -> softwareModuleManagement.findMetaDataByRsql(PAGE, NOT_EXIST_IDL, "name==*"), + verifyThrownExceptionBy(() -> softwareModuleManagement.findMetaDataByRsql(NOT_EXIST_IDL, "name==*", PAGE), "SoftwareModule"); - verifyThrownExceptionBy(() -> softwareModuleManagement.findByType(PAGE, NOT_EXIST_IDL), "SoftwareModule"); + verifyThrownExceptionBy(() -> softwareModuleManagement.findByType(NOT_EXIST_IDL, PAGE), "SoftwareModule"); verifyThrownExceptionBy( () -> softwareModuleManagement.update(entityFactory.softwareModule().update(NOT_EXIST_IDL)), @@ -195,23 +195,23 @@ class SoftwareModuleManagementTest extends AbstractJpaIntegrationTest { implicitLock(jvm); // standard searches - assertThat(softwareModuleManagement.findByTextAndType(PAGE, "poky", osType.getId()).getContent()).hasSize(1); - assertThat(softwareModuleManagement.findByTextAndType(PAGE, "poky", osType.getId()).getContent().get(0)) + assertThat(softwareModuleManagement.findByTextAndType("poky", osType.getId(), PAGE).getContent()).hasSize(1); + assertThat(softwareModuleManagement.findByTextAndType("poky", osType.getId(), PAGE).getContent().get(0)) .isEqualTo(os); - assertThat(softwareModuleManagement.findByTextAndType(PAGE, "oracle", runtimeType.getId()).getContent()) + assertThat(softwareModuleManagement.findByTextAndType("oracle", runtimeType.getId(), PAGE).getContent()) .hasSize(1); assertThat( - softwareModuleManagement.findByTextAndType(PAGE, "oracle", runtimeType.getId()).getContent().get(0)) + softwareModuleManagement.findByTextAndType("oracle", runtimeType.getId(), PAGE).getContent().get(0)) .isEqualTo(jvm); - assertThat(softwareModuleManagement.findByTextAndType(PAGE, ":1.0.1", appType.getId()).getContent()).hasSize(1) + assertThat(softwareModuleManagement.findByTextAndType(":1.0.1", appType.getId(), PAGE).getContent()).hasSize(1) .first().isEqualTo(ah); - assertThat(softwareModuleManagement.findByTextAndType(PAGE, ":1.0", appType.getId()).getContent()).hasSize(2); + assertThat(softwareModuleManagement.findByTextAndType(":1.0", appType.getId(), PAGE).getContent()).hasSize(2); distributionSetManagement.unlock(ds.getId()); // otherwise delete will be rejected as a part of a locked DS softwareModuleManagement.delete(ah2.getId()); - assertThat(softwareModuleManagement.findByTextAndType(PAGE, ":1.0", appType.getId()).getContent()).hasSize(1); - assertThat(softwareModuleManagement.findByTextAndType(PAGE, ":1.0", appType.getId()).getContent().get(0)) + assertThat(softwareModuleManagement.findByTextAndType(":1.0", appType.getId(), PAGE).getContent()).hasSize(1); + assertThat(softwareModuleManagement.findByTextAndType(":1.0", appType.getId(), PAGE).getContent().get(0)) .isEqualTo(ah); } @@ -235,7 +235,7 @@ class SoftwareModuleManagementTest extends AbstractJpaIntegrationTest { softwareModuleManagement.delete(testdataFactory.createSoftwareModuleOs("deleted").getId()); testdataFactory.createSoftwareModuleApp(); - assertThat(softwareModuleManagement.findByType(PAGE, osType.getId()).getContent()) + assertThat(softwareModuleManagement.findByType(osType.getId(), PAGE).getContent()) .as("Expected to find the following number of modules:").hasSize(2).as("with the following elements") .contains(two, one); } @@ -297,7 +297,7 @@ class SoftwareModuleManagementTest extends AbstractJpaIntegrationTest { assignedModule = softwareModuleManagement.get(assignedModule.getId()).get(); assertTrue(assignedModule.isDeleted(), "The module should be flagged as deleted"); assertThat(softwareModuleManagement.findAll(PAGE)).isEmpty(); - assertThat(softwareModuleManagement.findByRsql(PAGE, "name==*")).isEmpty(); + assertThat(softwareModuleManagement.findByRsql("name==*", PAGE)).isEmpty(); assertThat(softwareModuleManagement.count()).isZero(); assertThat(softwareModuleRepository.findAll()).hasSize(1); @@ -484,7 +484,7 @@ class SoftwareModuleManagementTest extends AbstractJpaIntegrationTest { .name("set").version("1").modules(Arrays.asList(one.getId(), deleted.getId()))); softwareModuleManagement.delete(deleted.getId()); - assertThat(softwareModuleManagement.findByAssignedTo(PAGE, set.getId()).getContent()) + assertThat(softwareModuleManagement.findByAssignedTo(set.getId(), PAGE).getContent()) .as("Found this number of modules").hasSize(2); } @@ -508,7 +508,7 @@ class SoftwareModuleManagementTest extends AbstractJpaIntegrationTest { .key(knownKey2).value(knownValue2); final List softwareModuleMetadata = softwareModuleManagement - .createMetaData(Arrays.asList(swMetadata1, swMetadata2)); + .putMetaData(Arrays.asList(swMetadata1, swMetadata2)); final SoftwareModule changedLockRevisionModule = softwareModuleManagement.get(ah.getId()).get(); assertThat(changedLockRevisionModule.getOptLockRevision()).isEqualTo(2); @@ -528,13 +528,13 @@ class SoftwareModuleManagementTest extends AbstractJpaIntegrationTest { final SoftwareModule module = testdataFactory.createSoftwareModuleApp("m1"); final int maxMetaData = quotaManagement.getMaxMetaDataEntriesPerSoftwareModule(); for (int i = 0; i < maxMetaData; ++i) { - softwareModuleManagement.createMetaData( + softwareModuleManagement.updateMetaData( entityFactory.softwareModuleMetadata().create(module.getId()).key("k" + i).value("v" + i)); } // quota exceeded assertThatExceptionOfType(AssignmentQuotaExceededException.class) - .isThrownBy(() -> softwareModuleManagement.createMetaData(entityFactory.softwareModuleMetadata() + .isThrownBy(() -> softwareModuleManagement.updateMetaData(entityFactory.softwareModuleMetadata() .create(module.getId()).key("k" + maxMetaData).value("v" + maxMetaData))); // add multiple meta data entries at once @@ -545,13 +545,13 @@ class SoftwareModuleManagementTest extends AbstractJpaIntegrationTest { } // quota exceeded assertThatExceptionOfType(AssignmentQuotaExceededException.class) - .isThrownBy(() -> softwareModuleManagement.createMetaData(create)); + .isThrownBy(() -> softwareModuleManagement.putMetaData(create)); // add some meta data entries final SoftwareModule module3 = testdataFactory.createSoftwareModuleApp("m3"); final int firstHalf = Math.round((maxMetaData) / 2.f); for (int i = 0; i < firstHalf; ++i) { - softwareModuleManagement.createMetaData( + softwareModuleManagement.updateMetaData( entityFactory.softwareModuleMetadata().create(module3.getId()).key("k" + i).value("v" + i)); } // add too many data entries @@ -562,7 +562,7 @@ class SoftwareModuleManagementTest extends AbstractJpaIntegrationTest { } // quota exceeded assertThatExceptionOfType(AssignmentQuotaExceededException.class) - .isThrownBy(() -> softwareModuleManagement.createMetaData(create2)); + .isThrownBy(() -> softwareModuleManagement.putMetaData(create2)); } @@ -574,21 +574,21 @@ class SoftwareModuleManagementTest extends AbstractJpaIntegrationTest { final String knownValue1 = "myKnownValue1"; final SoftwareModule ah = testdataFactory.createSoftwareModuleApp(); - softwareModuleManagement.createMetaData(entityFactory.softwareModuleMetadata().create(ah.getId()).key(knownKey1) + softwareModuleManagement.updateMetaData(entityFactory.softwareModuleMetadata().create(ah.getId()).key(knownKey1) .value(knownValue1).targetVisible(true)); assertThatExceptionOfType(EntityAlreadyExistsException.class) - .isThrownBy(() -> softwareModuleManagement.createMetaData(entityFactory.softwareModuleMetadata() + .isThrownBy(() -> softwareModuleManagement.updateMetaData(entityFactory.softwareModuleMetadata() .create(ah.getId()).key(knownKey1).value(knownValue1).targetVisible(true))) .withMessageContaining("Metadata").withMessageContaining(knownKey1); final String knownKey2 = "myKnownKey2"; - softwareModuleManagement.createMetaData(entityFactory.softwareModuleMetadata().create(ah.getId()).key(knownKey2) + softwareModuleManagement.updateMetaData(entityFactory.softwareModuleMetadata().create(ah.getId()).key(knownKey2) .value(knownValue1).targetVisible(false)); assertThatExceptionOfType(EntityAlreadyExistsException.class) - .isThrownBy(() -> softwareModuleManagement.createMetaData(entityFactory.softwareModuleMetadata() + .isThrownBy(() -> softwareModuleManagement.updateMetaData(entityFactory.softwareModuleMetadata() .create(ah.getId()).key(knownKey2).value(knownValue1).targetVisible(true))) .withMessageContaining("Metadata").withMessageContaining(knownKey2); } @@ -607,7 +607,7 @@ class SoftwareModuleManagementTest extends AbstractJpaIntegrationTest { assertThat(ah.getOptLockRevision()).isEqualTo(1); // create an software module meta data entry - final SoftwareModuleMetadata softwareModuleMetadata = softwareModuleManagement.createMetaData( + final SoftwareModuleMetadata softwareModuleMetadata = softwareModuleManagement.updateMetaData( entityFactory.softwareModuleMetadata().create(ah.getId()).key(knownKey).value(knownValue)); assertThat(softwareModuleMetadata.isTargetVisible()).isFalse(); assertThat(softwareModuleMetadata.getValue()).isEqualTo(knownValue); @@ -642,7 +642,7 @@ class SoftwareModuleManagementTest extends AbstractJpaIntegrationTest { final SoftwareModule swModule = testdataFactory.createSoftwareModuleApp(); - softwareModuleManagement.createMetaData( + softwareModuleManagement.updateMetaData( entityFactory.softwareModuleMetadata().create(swModule.getId()).key(knownKey1).value(knownValue1)); assertThat(softwareModuleManagement.findMetaDataBySoftwareModuleId(PageRequest.of(0, 10), swModule.getId()) @@ -665,10 +665,10 @@ class SoftwareModuleManagementTest extends AbstractJpaIntegrationTest { final SoftwareModule ah = testdataFactory.createSoftwareModuleApp(); - softwareModuleManagement.createMetaData( + softwareModuleManagement.updateMetaData( entityFactory.softwareModuleMetadata().create(ah.getId()).key(knownKey1).value(knownValue1)); - assertThat(softwareModuleManagement.getMetaDataBySoftwareModuleId(ah.getId(), "doesnotexist")).isNotPresent(); + assertThat(softwareModuleManagement.findMetaDataBySoftwareModuleId(ah.getId(), "doesnotexist")).isNotPresent(); } @Test @@ -682,12 +682,12 @@ class SoftwareModuleManagementTest extends AbstractJpaIntegrationTest { final int metadataCountSw2 = 10; for (int index = 0; index < metadataCountSw1; index++) { - softwareModuleManagement.createMetaData(entityFactory.softwareModuleMetadata().create(sw1.getId()) + softwareModuleManagement.updateMetaData(entityFactory.softwareModuleMetadata().create(sw1.getId()) .key("key" + index).value("value" + index).targetVisible(true)); } for (int index = 0; index < metadataCountSw2; index++) { - softwareModuleManagement.createMetaData(entityFactory.softwareModuleMetadata().create(sw2.getId()) + softwareModuleManagement.updateMetaData(entityFactory.softwareModuleMetadata().create(sw2.getId()) .key("key" + index).value("value" + index).targetVisible(false)); } diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/SoftwareModuleTypeManagementSecurityTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/SoftwareModuleTypeManagementSecurityTest.java index 3cf5bc042..bcd70dce0 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/SoftwareModuleTypeManagementSecurityTest.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/SoftwareModuleTypeManagementSecurityTest.java @@ -46,13 +46,13 @@ public class SoftwareModuleTypeManagementSecurityTest @Test @Description("Tests ManagementAPI PreAuthorized method with correct and insufficient permissions.") void getByKeyPermissionsCheck() { - assertPermissions(() -> softwareModuleTypeManagement.getByKey("key"), List.of(SpPermission.READ_REPOSITORY)); + assertPermissions(() -> softwareModuleTypeManagement.findByKey("key"), List.of(SpPermission.READ_REPOSITORY)); } @Test @Description("Tests ManagementAPI PreAuthorized method with correct and insufficient permissions.") void getByNamePermissionsCheck() { - assertPermissions(() -> softwareModuleTypeManagement.getByName("name"), List.of(SpPermission.READ_REPOSITORY)); + assertPermissions(() -> softwareModuleTypeManagement.findByName("name"), List.of(SpPermission.READ_REPOSITORY)); } } diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/SoftwareModuleTypeManagementTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/SoftwareModuleTypeManagementTest.java index 70234bcc3..870cc0b2b 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/SoftwareModuleTypeManagementTest.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/SoftwareModuleTypeManagementTest.java @@ -41,8 +41,8 @@ public class SoftwareModuleTypeManagementTest extends AbstractJpaIntegrationTest public void nonExistingEntityAccessReturnsNotPresent() { assertThat(softwareModuleTypeManagement.get(NOT_EXIST_IDL)).isNotPresent(); - assertThat(softwareModuleTypeManagement.getByKey(NOT_EXIST_ID)).isNotPresent(); - assertThat(softwareModuleTypeManagement.getByName(NOT_EXIST_ID)).isNotPresent(); + assertThat(softwareModuleTypeManagement.findByKey(NOT_EXIST_ID)).isNotPresent(); + assertThat(softwareModuleTypeManagement.findByName(NOT_EXIST_ID)).isNotPresent(); } @Test @@ -129,7 +129,7 @@ public class SoftwareModuleTypeManagementTest extends AbstractJpaIntegrationTest // delete assigned softwareModuleTypeManagement.delete(type.getId()); assertThat(softwareModuleTypeManagement.findAll(PAGE)).hasSize(3).contains(osType, runtimeType, appType); - assertThat(softwareModuleTypeManagement.findByRsql(PAGE, "name==*")).hasSize(3).contains(osType, runtimeType, + assertThat(softwareModuleTypeManagement.findByRsql("name==*", PAGE)).hasSize(3).contains(osType, runtimeType, appType); assertThat(softwareModuleTypeManagement.count()).isEqualTo(3); @@ -147,7 +147,7 @@ public class SoftwareModuleTypeManagementTest extends AbstractJpaIntegrationTest softwareModuleTypeManagement .create(entityFactory.softwareModuleType().create().key("thetype2").name("anothername")); - assertThat(softwareModuleTypeManagement.getByName("thename").get()).as("Type with given name").isEqualTo(found); + assertThat(softwareModuleTypeManagement.findByName("thename").get()).as("Type with given name").isEqualTo(found); } @Test diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLDistributionSetFieldTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLDistributionSetFieldTest.java index 367110950..1699c9e1f 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLDistributionSetFieldTest.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLDistributionSetFieldTest.java @@ -202,7 +202,7 @@ public class RSQLDistributionSetFieldTest extends AbstractJpaIntegrationTest { } private void assertRSQLQuery(final String rsqlParam, final long expectedEntity) { - final Page find = distributionSetManagement.findByRsql(PageRequest.of(0, 100), rsqlParam); + final Page find = distributionSetManagement.findByRsql(rsqlParam, PageRequest.of(0, 100)); final long countAll = find.getTotalElements(); assertThat(find).as("Found entity is should not be null").isNotNull(); assertThat(countAll).as("Found entity size is wrong").isEqualTo(expectedEntity); diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLDistributionSetMetadataFieldsTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLDistributionSetMetadataFieldsTest.java index cdb899a4b..47a44f920 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLDistributionSetMetadataFieldsTest.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLDistributionSetMetadataFieldsTest.java @@ -44,9 +44,9 @@ public class RSQLDistributionSetMetadataFieldsTest extends AbstractJpaIntegratio metadata.add(entityFactory.generateDsMetadata("" + i, "" + i)); } - distributionSetManagement.createMetaData(distributionSetId, metadata); + distributionSetManagement.putMetaData(distributionSetId, metadata); - distributionSetManagement.createMetaData(distributionSetId, + distributionSetManagement.putMetaData(distributionSetId, Arrays.asList(entityFactory.generateDsMetadata("emptyValueTest", null))); } @@ -73,7 +73,7 @@ public class RSQLDistributionSetMetadataFieldsTest extends AbstractJpaIntegratio private void assertRSQLQuery(final String rsqlParam, final long expectedEntities) { final Page findEnitity = distributionSetManagement - .findMetaDataByDistributionSetIdAndRsql(PageRequest.of(0, 100), distributionSetId, rsqlParam); + .findMetaDataByDistributionSetIdAndRsql(distributionSetId, rsqlParam, PageRequest.of(0, 100)); final long countAllEntities = findEnitity.getTotalElements(); assertThat(findEnitity).isNotNull(); assertThat(countAllEntities).isEqualTo(expectedEntities); diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLSoftwareModuleFieldTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLSoftwareModuleFieldTest.java index e7d3e031c..344e5edc6 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLSoftwareModuleFieldTest.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLSoftwareModuleFieldTest.java @@ -51,11 +51,11 @@ public class RSQLSoftwareModuleFieldTest extends AbstractJpaIntegrationTest { final SoftwareModuleMetadataCreate softwareModuleMetadata = entityFactory.softwareModuleMetadata() .create(ah.getId()).key("metaKey").value("metaValue"); - softwareModuleManagement.createMetaData(softwareModuleMetadata); + softwareModuleManagement.updateMetaData(softwareModuleMetadata); final SoftwareModuleMetadataCreate softwareModuleMetadata2 = entityFactory.softwareModuleMetadata() .create(ah2.getId()).key("metaKey").value("value"); - softwareModuleManagement.createMetaData(softwareModuleMetadata2); + softwareModuleManagement.updateMetaData(softwareModuleMetadata2); } @Test @@ -150,7 +150,7 @@ public class RSQLSoftwareModuleFieldTest extends AbstractJpaIntegrationTest { } private void assertRSQLQuery(final String rsqlParam, final long expectedEntity) { - final Page find = softwareModuleManagement.findByRsql(PageRequest.of(0, 100), rsqlParam); + final Page find = softwareModuleManagement.findByRsql(rsqlParam, PageRequest.of(0, 100)); final long countAll = find.getTotalElements(); assertThat(find).isNotNull(); assertThat(countAll).isEqualTo(expectedEntity); diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLSoftwareModuleMetadataFieldsTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLSoftwareModuleMetadataFieldsTest.java index f00d53aca..b237a9d73 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLSoftwareModuleMetadataFieldsTest.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLSoftwareModuleMetadataFieldsTest.java @@ -51,7 +51,7 @@ public class RSQLSoftwareModuleMetadataFieldsTest extends AbstractJpaIntegration metadata.add(entityFactory.softwareModuleMetadata().create(softwareModule.getId()).key("emptyMd") .targetVisible(true)); - softwareModuleManagement.createMetaData(metadata); + softwareModuleManagement.putMetaData(metadata); } @@ -87,7 +87,7 @@ public class RSQLSoftwareModuleMetadataFieldsTest extends AbstractJpaIntegration private void assertRSQLQuery(final String rsqlParam, final long expectedEntities) { final Page findEnitity = softwareModuleManagement - .findMetaDataByRsql(PageRequest.of(0, 100), softwareModuleId, rsqlParam); + .findMetaDataByRsql(softwareModuleId, rsqlParam, PageRequest.of(0, 100)); final long countAllEntities = findEnitity.getTotalElements(); assertThat(findEnitity).isNotNull(); assertThat(countAllEntities).isEqualTo(expectedEntities); diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLSoftwareModuleTypeFieldsTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLSoftwareModuleTypeFieldsTest.java index f8d4afa54..611717cf5 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLSoftwareModuleTypeFieldsTest.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLSoftwareModuleTypeFieldsTest.java @@ -78,8 +78,8 @@ public class RSQLSoftwareModuleTypeFieldsTest extends AbstractJpaIntegrationTest } private void assertRSQLQuery(final String rsqlParam, final long excpectedEntity) { - final Page find = softwareModuleTypeManagement.findByRsql(PageRequest.of(0, 100), - rsqlParam); + final Page find = softwareModuleTypeManagement.findByRsql(rsqlParam, PageRequest.of(0, 100) + ); final long countAll = find.getTotalElements(); assertThat(find).isNotNull(); assertThat(countAll).isEqualTo(excpectedEntity); diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLTagFieldsTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLTagFieldsTest.java index 8efd56c24..de20e68d8 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLTagFieldsTest.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLTagFieldsTest.java @@ -119,8 +119,8 @@ public class RSQLTagFieldsTest extends AbstractJpaIntegrationTest { private void assertRSQLQueryDistributionSet(final String rsqlParam, final long expectedEntities) { - final Page findEnitity = distributionSetTagManagement.findByRsql(PageRequest.of(0, 100), - rsqlParam); + final Page findEnitity = distributionSetTagManagement.findByRsql(rsqlParam, PageRequest.of(0, 100) + ); final long countAllEntities = findEnitity.getTotalElements(); assertThat(findEnitity).isNotNull(); assertThat(countAllEntities).isEqualTo(expectedEntities); diff --git a/hawkbit-repository/hawkbit-repository-test/src/main/java/org/eclipse/hawkbit/repository/test/util/AbstractIntegrationTest.java b/hawkbit-repository/hawkbit-repository-test/src/main/java/org/eclipse/hawkbit/repository/test/util/AbstractIntegrationTest.java index 0eddc99de..f7a9d3a0e 100644 --- a/hawkbit-repository/hawkbit-repository-test/src/main/java/org/eclipse/hawkbit/repository/test/util/AbstractIntegrationTest.java +++ b/hawkbit-repository/hawkbit-repository-test/src/main/java/org/eclipse/hawkbit/repository/test/util/AbstractIntegrationTest.java @@ -415,7 +415,7 @@ public abstract class AbstractIntegrationTest { } protected List createDistributionSetMetadata(final long dsId, final List md) { - return distributionSetManagement.createMetaData(dsId, md); + return distributionSetManagement.putMetaData(dsId, md); } protected void createTargetMetadata(final String controllerId, final MetaData md) { diff --git a/hawkbit-repository/hawkbit-repository-test/src/main/java/org/eclipse/hawkbit/repository/test/util/TestdataFactory.java b/hawkbit-repository/hawkbit-repository-test/src/main/java/org/eclipse/hawkbit/repository/test/util/TestdataFactory.java index 4d99b048f..5a1a93ddb 100644 --- a/hawkbit-repository/hawkbit-repository-test/src/main/java/org/eclipse/hawkbit/repository/test/util/TestdataFactory.java +++ b/hawkbit-repository/hawkbit-repository-test/src/main/java/org/eclipse/hawkbit/repository/test/util/TestdataFactory.java @@ -662,7 +662,7 @@ public class TestdataFactory { * @return persisted {@link DistributionSetType} */ public DistributionSetType findOrCreateDistributionSetType(final String dsTypeKey, final String dsTypeName) { - return distributionSetTypeManagement.getByKey(dsTypeKey) + return distributionSetTypeManagement.findByKey(dsTypeKey) .orElseGet(() -> distributionSetTypeManagement.create(entityFactory.distributionSetType().create() .key(dsTypeKey).name(dsTypeName).description(randomDescriptionShort()).colour("black"))); } @@ -679,7 +679,7 @@ public class TestdataFactory { */ public DistributionSetType findOrCreateDistributionSetType(final String dsTypeKey, final String dsTypeName, final Collection mandatory, final Collection optional) { - return distributionSetTypeManagement.getByKey(dsTypeKey) + return distributionSetTypeManagement.findByKey(dsTypeKey) .orElseGet(() -> distributionSetTypeManagement.create(entityFactory.distributionSetType().create() .key(dsTypeKey).name(dsTypeName).description(randomDescriptionShort()).colour("black") .optional(optional.stream().map(SoftwareModuleType::getId).collect(Collectors.toList())) @@ -707,7 +707,7 @@ public class TestdataFactory { * @return persisted {@link SoftwareModuleType} */ public SoftwareModuleType findOrCreateSoftwareModuleType(final String key, final int maxAssignments) { - return softwareModuleTypeManagement.getByKey(key) + return softwareModuleTypeManagement.findByKey(key) .orElseGet(() -> softwareModuleTypeManagement.create(entityFactory.softwareModuleType().create() .key(key).name(key).description(randomDescriptionShort()).colour("#ffffff") .maxAssignments(maxAssignments))); @@ -1268,9 +1268,9 @@ public class TestdataFactory { } private void addTestModuleMetadata(final SoftwareModule module) { - softwareModuleManagement.createMetaData(entityFactory.softwareModuleMetadata().create(module.getId()) + softwareModuleManagement.updateMetaData(entityFactory.softwareModuleMetadata().create(module.getId()) .key(VISIBLE_SM_MD_KEY).value(VISIBLE_SM_MD_VALUE).targetVisible(true)); - softwareModuleManagement.createMetaData(entityFactory.softwareModuleMetadata().create(module.getId()) + softwareModuleManagement.updateMetaData(entityFactory.softwareModuleMetadata().create(module.getId()) .key(INVISIBLE_SM_MD_KEY).value(INVISIBLE_SM_MD_VALUE).targetVisible(false)); }