diff --git a/hawkbit-mgmt/hawkbit-mgmt-api/src/main/java/org/eclipse/hawkbit/mgmt/rest/api/MgmtSoftwareModuleRestApi.java b/hawkbit-mgmt/hawkbit-mgmt-api/src/main/java/org/eclipse/hawkbit/mgmt/rest/api/MgmtSoftwareModuleRestApi.java index 59b27f99e..41a767e6e 100644 --- a/hawkbit-mgmt/hawkbit-mgmt-api/src/main/java/org/eclipse/hawkbit/mgmt/rest/api/MgmtSoftwareModuleRestApi.java +++ b/hawkbit-mgmt/hawkbit-mgmt-api/src/main/java/org/eclipse/hawkbit/mgmt/rest/api/MgmtSoftwareModuleRestApi.java @@ -33,6 +33,7 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestPart; import org.springframework.web.bind.annotation.ResponseBody; @@ -84,12 +85,12 @@ public interface MgmtSoftwareModuleRestApi { @PostMapping(value = MgmtRestConstants.SOFTWAREMODULE_V1_REQUEST_MAPPING + "/{softwareModuleId}/artifacts", consumes = MediaType.MULTIPART_FORM_DATA_VALUE, produces = { MediaTypes.HAL_JSON_VALUE, MediaType.APPLICATION_JSON_VALUE }) ResponseEntity uploadArtifact( - @PathVariable("softwareModuleId") final Long softwareModuleId, - @RequestPart("file") final MultipartFile file, - @RequestParam(value = "filename", required = false) final String optionalFileName, - @RequestParam(value = "md5sum", required = false) final String md5Sum, - @RequestParam(value = "sha1sum", required = false) final String sha1Sum, - @RequestParam(value = "sha256sum", required = false) final String sha256sum); + @PathVariable("softwareModuleId") Long softwareModuleId, + @RequestPart("file") MultipartFile file, + @RequestParam(value = "filename", required = false) String optionalFileName, + @RequestParam(value = "md5sum", required = false) String md5Sum, + @RequestParam(value = "sha1sum", required = false) String sha1Sum, + @RequestParam(value = "sha256sum", required = false) String sha256Sum); /** * Handles the GET request of retrieving all metadata of artifacts assigned to a software module. @@ -124,9 +125,9 @@ public interface MgmtSoftwareModuleRestApi { @GetMapping(value = MgmtRestConstants.SOFTWAREMODULE_V1_REQUEST_MAPPING + "/{softwareModuleId}/artifacts", produces = { MediaTypes.HAL_JSON_VALUE, MediaType.APPLICATION_JSON_VALUE }) ResponseEntity> getArtifacts( - @PathVariable("softwareModuleId") final Long softwareModuleId, + @PathVariable("softwareModuleId") Long softwareModuleId, @RequestParam(value = MgmtRestConstants.REQUEST_PARAMETER_REPRESENTATION_MODE, defaultValue = MgmtRestConstants.REQUEST_PARAMETER_REPRESENTATION_MODE_DEFAULT) String representationModeParam, - @RequestParam(value = MgmtRestConstants.REQUEST_PARAMETER_USE_ARTIFACT_URL_HANDLER, required = false) final Boolean useArtifactUrlHandler); + @RequestParam(value = MgmtRestConstants.REQUEST_PARAMETER_USE_ARTIFACT_URL_HANDLER, required = false) Boolean useArtifactUrlHandler); /** * Handles the GET request of retrieving a single Artifact metadata request. @@ -159,9 +160,9 @@ public interface MgmtSoftwareModuleRestApi { produces = { MediaTypes.HAL_JSON_VALUE, MediaType.APPLICATION_JSON_VALUE }) @ResponseBody ResponseEntity getArtifact( - @PathVariable("softwareModuleId") final Long softwareModuleId, - @PathVariable("artifactId") final Long artifactId, - @RequestParam(value = MgmtRestConstants.REQUEST_PARAMETER_USE_ARTIFACT_URL_HANDLER, required = false) final Boolean useArtifactUrlHandler); + @PathVariable("softwareModuleId") Long softwareModuleId, + @PathVariable("artifactId") Long artifactId, + @RequestParam(value = MgmtRestConstants.REQUEST_PARAMETER_USE_ARTIFACT_URL_HANDLER, required = false) Boolean useArtifactUrlHandler); /** * Handles the DELETE request for a single SoftwareModule. @@ -193,8 +194,8 @@ public interface MgmtSoftwareModuleRestApi { @DeleteMapping(value = MgmtRestConstants.SOFTWAREMODULE_V1_REQUEST_MAPPING + "/{softwareModuleId}/artifacts/{artifactId}") @ResponseBody ResponseEntity deleteArtifact( - @PathVariable("softwareModuleId") final Long softwareModuleId, - @PathVariable("artifactId") final Long artifactId); + @PathVariable("softwareModuleId") Long softwareModuleId, + @PathVariable("artifactId") Long artifactId); /** * Handles the GET request of retrieving all software modules. @@ -281,7 +282,7 @@ public interface MgmtSoftwareModuleRestApi { }) @GetMapping(value = MgmtRestConstants.SOFTWAREMODULE_V1_REQUEST_MAPPING + "/{softwareModuleId}", produces = { MediaTypes.HAL_JSON_VALUE, MediaType.APPLICATION_JSON_VALUE }) - ResponseEntity getSoftwareModule(@PathVariable("softwareModuleId") final Long softwareModuleId); + ResponseEntity getSoftwareModule(@PathVariable("softwareModuleId") Long softwareModuleId); /** * Handles the POST request of creating new software modules. The request body must always be a list of modules. @@ -315,7 +316,7 @@ public interface MgmtSoftwareModuleRestApi { @PostMapping(value = MgmtRestConstants.SOFTWAREMODULE_V1_REQUEST_MAPPING, consumes = { MediaTypes.HAL_JSON_VALUE, MediaType.APPLICATION_JSON_VALUE }, produces = { MediaTypes.HAL_JSON_VALUE, MediaType.APPLICATION_JSON_VALUE }) - ResponseEntity> createSoftwareModules(final List softwareModules); + ResponseEntity> createSoftwareModules(@RequestBody List softwareModules); /** * Handles the PUT request of updating a software module. @@ -354,8 +355,8 @@ public interface MgmtSoftwareModuleRestApi { consumes = { MediaTypes.HAL_JSON_VALUE, MediaType.APPLICATION_JSON_VALUE }, produces = { MediaTypes.HAL_JSON_VALUE, MediaType.APPLICATION_JSON_VALUE }) ResponseEntity updateSoftwareModule( - @PathVariable("softwareModuleId") final Long softwareModuleId, - final MgmtSoftwareModuleRequestBodyPut restSoftwareModule); + @PathVariable("softwareModuleId") Long softwareModuleId, + @RequestBody MgmtSoftwareModuleRequestBodyPut restSoftwareModule); /** * Handles the DELETE request for a single software module. @@ -384,7 +385,7 @@ public interface MgmtSoftwareModuleRestApi { content = @Content(mediaType = "application/json", schema = @Schema(hidden = true))) }) @DeleteMapping(value = MgmtRestConstants.SOFTWAREMODULE_V1_REQUEST_MAPPING + "/{softwareModuleId}") - ResponseEntity deleteSoftwareModule(@PathVariable("softwareModuleId") final Long softwareModuleId); + ResponseEntity deleteSoftwareModule(@PathVariable("softwareModuleId") Long softwareModuleId); /** * Gets a paged list of metadata for a software module. @@ -421,7 +422,7 @@ public interface MgmtSoftwareModuleRestApi { @GetMapping(value = MgmtRestConstants.SOFTWAREMODULE_V1_REQUEST_MAPPING + "/{softwareModuleId}/metadata", produces = { MediaTypes.HAL_JSON_VALUE, MediaType.APPLICATION_JSON_VALUE }) ResponseEntity> getMetadata( - @PathVariable("softwareModuleId") final Long softwareModuleId, + @PathVariable("softwareModuleId") Long softwareModuleId, @RequestParam( value = MgmtRestConstants.REQUEST_PARAMETER_PAGING_OFFSET, defaultValue = MgmtRestConstants.REQUEST_PARAMETER_PAGING_DEFAULT_OFFSET) @@ -476,8 +477,8 @@ public interface MgmtSoftwareModuleRestApi { @GetMapping(value = MgmtRestConstants.SOFTWAREMODULE_V1_REQUEST_MAPPING + "/{softwareModuleId}/metadata/{metadataKey}", produces = { MediaTypes.HAL_JSON_VALUE, MediaType.APPLICATION_JSON_VALUE }) ResponseEntity getMetadataValue( - @PathVariable("softwareModuleId") final Long softwareModuleId, - @PathVariable("metadataKey") final String metadataKey); + @PathVariable("softwareModuleId") Long softwareModuleId, + @PathVariable("metadataKey") String metadataKey); /** * Updates a single metadata value of a software module. @@ -510,8 +511,9 @@ public interface MgmtSoftwareModuleRestApi { @PutMapping(value = MgmtRestConstants.SOFTWAREMODULE_V1_REQUEST_MAPPING + "/{softwareModuleId}/metadata/{metadataKey}", produces = { MediaTypes.HAL_JSON_VALUE, MediaType.APPLICATION_JSON_VALUE }) ResponseEntity updateMetadata( - @PathVariable("softwareModuleId") final Long softwareModuleId, - @PathVariable("metadataKey") final String metadataKey, final MgmtSoftwareModuleMetadataBodyPut metadata); + @PathVariable("softwareModuleId") Long softwareModuleId, + @PathVariable("metadataKey") String metadataKey, + @RequestBody MgmtSoftwareModuleMetadataBodyPut metadata); /** * Deletes a single metadata entry from the software module. @@ -542,8 +544,8 @@ public interface MgmtSoftwareModuleRestApi { }) @DeleteMapping(value = MgmtRestConstants.SOFTWAREMODULE_V1_REQUEST_MAPPING + "/{softwareModuleId}/metadata/{metadataKey}") ResponseEntity deleteMetadata( - @PathVariable("softwareModuleId") final Long softwareModuleId, - @PathVariable("metadataKey") final String metadataKey); + @PathVariable("softwareModuleId") Long softwareModuleId, + @PathVariable("metadataKey") String metadataKey); /** * Creates a list of metadata for a specific software module. @@ -582,6 +584,6 @@ public interface MgmtSoftwareModuleRestApi { consumes = { MediaType.APPLICATION_JSON_VALUE, MediaTypes.HAL_JSON_VALUE }, produces = { MediaTypes.HAL_JSON_VALUE, MediaType.APPLICATION_JSON_VALUE }) ResponseEntity> createMetadata( - @PathVariable("softwareModuleId") final Long softwareModuleId, - final List metadataRest); + @PathVariable("softwareModuleId") Long softwareModuleId, + @RequestBody List metadataRest); } \ No newline at end of file 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 76a4272fd..d9dc6b17a 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 @@ -28,7 +28,6 @@ import org.eclipse.hawkbit.mgmt.json.model.softwaremodule.MgmtSoftwareModuleMeta import org.eclipse.hawkbit.mgmt.json.model.softwaremodule.MgmtSoftwareModuleRequestBodyPost; import org.eclipse.hawkbit.mgmt.json.model.softwaremodule.MgmtSoftwareModuleRequestBodyPut; import org.eclipse.hawkbit.mgmt.rest.api.MgmtRepresentationMode; -import org.eclipse.hawkbit.mgmt.rest.api.MgmtRestConstants; import org.eclipse.hawkbit.mgmt.rest.api.MgmtSoftwareModuleRestApi; import org.eclipse.hawkbit.mgmt.rest.resource.util.PagingUtility; import org.eclipse.hawkbit.repository.ArtifactManagement; @@ -50,17 +49,11 @@ import org.springframework.data.domain.Slice; import org.springframework.data.domain.Sort; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RequestPart; -import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; /** - * REST Resource handling for {@link SoftwareModule} and related - * {@link Artifact} CRUD operations. + * REST Resource handling for {@link SoftwareModule} and related {@link Artifact} CRUD operations. */ @Slf4j @RestController @@ -88,12 +81,12 @@ public class MgmtSoftwareModuleResource implements MgmtSoftwareModuleRestApi { @Override public ResponseEntity uploadArtifact( - @PathVariable("softwareModuleId") final Long softwareModuleId, - @RequestPart("file") final MultipartFile file, - @RequestParam(value = "filename", required = false) final String optionalFileName, - @RequestParam(value = "md5sum", required = false) final String md5Sum, - @RequestParam(value = "sha1sum", required = false) final String sha1Sum, - @RequestParam(value = "sha256sum", required = false) final String sha256Sum) { + final Long softwareModuleId, + final MultipartFile file, + final String optionalFileName, + final String md5Sum, + final String sha1Sum, + final String sha256Sum) { if (file.isEmpty()) { return ResponseEntity.badRequest().build(); @@ -121,7 +114,8 @@ public class MgmtSoftwareModuleResource implements MgmtSoftwareModuleRestApi { @Override public ResponseEntity> getArtifacts( - @PathVariable("softwareModuleId") final Long softwareModuleId, final String representationModeParam, + final Long softwareModuleId, + final String representationModeParam, final Boolean useArtifactUrlHandler) { final SoftwareModule module = findSoftwareModuleWithExceptionIfNotFound(softwareModuleId, null); @@ -139,16 +133,13 @@ public class MgmtSoftwareModuleResource implements MgmtSoftwareModuleRestApi { return ResponseEntity.ok(new ResponseList<>(response)); } - // Exception squid:S3655 - Optional access is checked in - // findSoftwareModuleWithExceptionIfNotFound - // subroutine + // Exception squid:S3655 - Optional access is checked in findSoftwareModuleWithExceptionIfNotFound subroutine @SuppressWarnings("squid:S3655") @Override - @ResponseBody public ResponseEntity getArtifact( - @PathVariable("softwareModuleId") final Long softwareModuleId, - @PathVariable("artifactId") final Long artifactId, - @RequestParam(value = MgmtRestConstants.REQUEST_PARAMETER_USE_ARTIFACT_URL_HANDLER, required = false) final Boolean useArtifactUrlHandler) { + final Long softwareModuleId, + final Long artifactId, + final Boolean useArtifactUrlHandler) { final SoftwareModule module = findSoftwareModuleWithExceptionIfNotFound(softwareModuleId, artifactId); final MgmtArtifact response = MgmtSoftwareModuleMapper.toResponse(module.getArtifact(artifactId).get()); @@ -165,10 +156,9 @@ public class MgmtSoftwareModuleResource implements MgmtSoftwareModuleRestApi { } @Override - @ResponseBody public ResponseEntity deleteArtifact( - @PathVariable("softwareModuleId") final Long softwareModuleId, - @PathVariable("artifactId") final Long artifactId) { + final Long softwareModuleId, + final Long artifactId) { findSoftwareModuleWithExceptionIfNotFound(softwareModuleId, artifactId); artifactManagement.delete(artifactId); @@ -177,10 +167,10 @@ public class MgmtSoftwareModuleResource implements MgmtSoftwareModuleRestApi { @Override public ResponseEntity> getSoftwareModules( - @RequestParam(value = MgmtRestConstants.REQUEST_PARAMETER_PAGING_OFFSET, defaultValue = MgmtRestConstants.REQUEST_PARAMETER_PAGING_DEFAULT_OFFSET) final int pagingOffsetParam, - @RequestParam(value = MgmtRestConstants.REQUEST_PARAMETER_PAGING_LIMIT, defaultValue = MgmtRestConstants.REQUEST_PARAMETER_PAGING_DEFAULT_LIMIT) final int pagingLimitParam, - @RequestParam(value = MgmtRestConstants.REQUEST_PARAMETER_SORTING, required = false) final String sortParam, - @RequestParam(value = MgmtRestConstants.REQUEST_PARAMETER_SEARCH, required = false) final String rsqlParam) { + final int pagingOffsetParam, + final int pagingLimitParam, + final String sortParam, + final String rsqlParam) { final int sanitizedOffsetParam = PagingUtility.sanitizeOffsetParam(pagingOffsetParam); final int sanitizedLimitParam = PagingUtility.sanitizePageLimitParam(pagingLimitParam); final Sort sorting = PagingUtility.sanitizeSoftwareModuleSortParam(sortParam); @@ -202,7 +192,7 @@ public class MgmtSoftwareModuleResource implements MgmtSoftwareModuleRestApi { } @Override - public ResponseEntity getSoftwareModule(@PathVariable("softwareModuleId") final Long softwareModuleId) { + public ResponseEntity getSoftwareModule(final Long softwareModuleId) { final SoftwareModule module = findSoftwareModuleWithExceptionIfNotFound(softwareModuleId, null); final MgmtSoftwareModule response = MgmtSoftwareModuleMapper.toResponse(module); @@ -212,8 +202,7 @@ public class MgmtSoftwareModuleResource implements MgmtSoftwareModuleRestApi { } @Override - public ResponseEntity> createSoftwareModules( - @RequestBody final List softwareModules) { + public ResponseEntity> createSoftwareModules(final List softwareModules) { log.debug("creating {} softwareModules", softwareModules.size()); for (final MgmtSoftwareModuleRequestBodyPost sm : softwareModules) { @@ -236,8 +225,8 @@ public class MgmtSoftwareModuleResource implements MgmtSoftwareModuleRestApi { @Override public ResponseEntity updateSoftwareModule( - @PathVariable("softwareModuleId") final Long softwareModuleId, - @RequestBody final MgmtSoftwareModuleRequestBodyPut restSoftwareModule) { + final Long softwareModuleId, + final MgmtSoftwareModuleRequestBodyPut restSoftwareModule) { final SoftwareModule module = softwareModuleManagement .update(entityFactory.softwareModule().update(softwareModuleId) .description(restSoftwareModule.getDescription()) @@ -251,8 +240,7 @@ public class MgmtSoftwareModuleResource implements MgmtSoftwareModuleRestApi { } @Override - public ResponseEntity deleteSoftwareModule(@PathVariable("softwareModuleId") final Long softwareModuleId) { - + public ResponseEntity deleteSoftwareModule(final Long softwareModuleId) { final SoftwareModule module = findSoftwareModuleWithExceptionIfNotFound(softwareModuleId, null); softwareModuleManagement.delete(module.getId()); @@ -261,12 +249,11 @@ public class MgmtSoftwareModuleResource implements MgmtSoftwareModuleRestApi { @Override public ResponseEntity> getMetadata( - @PathVariable("softwareModuleId") final Long softwareModuleId, - @RequestParam(value = MgmtRestConstants.REQUEST_PARAMETER_PAGING_OFFSET, defaultValue = MgmtRestConstants.REQUEST_PARAMETER_PAGING_DEFAULT_OFFSET) final int pagingOffsetParam, - @RequestParam(value = MgmtRestConstants.REQUEST_PARAMETER_PAGING_LIMIT, defaultValue = MgmtRestConstants.REQUEST_PARAMETER_PAGING_DEFAULT_LIMIT) final int pagingLimitParam, - @RequestParam(value = MgmtRestConstants.REQUEST_PARAMETER_SORTING, required = false) final String sortParam, - @RequestParam(value = MgmtRestConstants.REQUEST_PARAMETER_SEARCH, required = false) final String rsqlParam) { - + final Long softwareModuleId, + final int pagingOffsetParam, + final int pagingLimitParam, + final String sortParam, + final String rsqlParam) { // check if software module exists otherwise throw exception immediately findSoftwareModuleWithExceptionIfNotFound(softwareModuleId, null); @@ -289,9 +276,8 @@ public class MgmtSoftwareModuleResource implements MgmtSoftwareModuleRestApi { @Override public ResponseEntity getMetadataValue( - @PathVariable("softwareModuleId") final Long softwareModuleId, - @PathVariable("metadataKey") final String metadataKey) { - + final Long softwareModuleId, + final String metadataKey) { final SoftwareModuleMetadata findOne = softwareModuleManagement .getMetaDataBySoftwareModuleId(softwareModuleId, metadataKey).orElseThrow( () -> new EntityNotFoundException(SoftwareModuleMetadata.class, softwareModuleId, metadataKey)); @@ -301,9 +287,9 @@ public class MgmtSoftwareModuleResource implements MgmtSoftwareModuleRestApi { @Override public ResponseEntity updateMetadata( - @PathVariable("softwareModuleId") final Long softwareModuleId, - @PathVariable("metadataKey") final String metadataKey, - @RequestBody final MgmtSoftwareModuleMetadataBodyPut metadata) { + final Long softwareModuleId, + final String metadataKey, + final MgmtSoftwareModuleMetadataBodyPut metadata) { final SoftwareModuleMetadata updated = softwareModuleManagement .updateMetaData(entityFactory.softwareModuleMetadata().update(softwareModuleId, metadataKey) .value(metadata.getValue()).targetVisible(metadata.getTargetVisible())); @@ -312,8 +298,9 @@ public class MgmtSoftwareModuleResource implements MgmtSoftwareModuleRestApi { } @Override - public ResponseEntity deleteMetadata(@PathVariable("softwareModuleId") final Long softwareModuleId, - @PathVariable("metadataKey") final String metadataKey) { + public ResponseEntity deleteMetadata( + final Long softwareModuleId, + final String metadataKey) { softwareModuleManagement.deleteMetaData(softwareModuleId, metadataKey); return ResponseEntity.ok().build(); @@ -321,9 +308,8 @@ public class MgmtSoftwareModuleResource implements MgmtSoftwareModuleRestApi { @Override public ResponseEntity> createMetadata( - @PathVariable("softwareModuleId") final Long softwareModuleId, - @RequestBody final List metadataRest) { - + final Long softwareModuleId, + final List metadataRest) { final List created = softwareModuleManagement.createMetaData( MgmtSoftwareModuleMapper.fromRequestSwMetadata(entityFactory, softwareModuleId, metadataRest));