Add signature from interface to the concret class, because of Spring MVC

and parameter inheritance.
"also actually doesn’t work with Spring MVC in its current form (method
parameter mapping is not inherited"

Signed-off-by: SirWayne <dennis.melzer@bosch-si.com>
This commit is contained in:
SirWayne
2016-04-21 13:00:54 +02:00
parent bb0fb5da8d
commit 2b3d978978
2 changed files with 34 additions and 22 deletions

View File

@@ -32,6 +32,8 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.security.web.bind.annotation.AuthenticationPrincipal;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
/**
@@ -60,8 +62,9 @@ public class DdiArtifactStoreController implements DdiArtifactStoreControllerRes
private HawkbitSecurityProperties securityProperties;
@Override
public ResponseEntity<Void> downloadArtifactByFilename(final String fileName, final HttpServletResponse response,
final HttpServletRequest request, final String targetid) {
public ResponseEntity<Void> downloadArtifactByFilename(@PathVariable("fileName") final String fileName,
final HttpServletResponse response, final HttpServletRequest request,
@AuthenticationPrincipal final String targetid) {
ResponseEntity<Void> result;
final List<LocalArtifact> foundArtifacts = artifactManagement.findLocalArtifactByFilename(fileName);
@@ -98,7 +101,7 @@ public class DdiArtifactStoreController implements DdiArtifactStoreControllerRes
}
@Override
public ResponseEntity<Void> downloadArtifactMD5ByFilename(final String fileName,
public ResponseEntity<Void> downloadArtifactMD5ByFilename(@PathVariable("fileName") final String fileName,
final HttpServletResponse response) {
final List<LocalArtifact> foundArtifacts = artifactManagement.findLocalArtifactByFilename(fileName);

View File

@@ -52,11 +52,12 @@ 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.RestController;
/**
* The {@link DdiRootController} of the hawkBit server DDI API that is queried by
* the hawkBit controller in order to pull {@link Action}s that have to be
* The {@link DdiRootController} of the hawkBit server DDI API that is queried
* by the hawkBit controller in order to pull {@link Action}s that have to be
* fulfilled and report status updates concerning the {@link Action} processing.
*
* Transactional (read-write) as all queries at least update the last poll time.
@@ -90,7 +91,8 @@ public class DdiRootController implements DdiRootControllerRestApi {
@Override
public ResponseEntity<List<org.eclipse.hawkbit.ddi.json.model.DdiArtifact>> getSoftwareModulesArtifacts(
final String targetid, final Long softwareModuleId) {
@PathVariable("targetid") final String targetid,
@PathVariable("softwareModuleId") final Long softwareModuleId) {
LOG.debug("getSoftwareModulesArtifacts({})", targetid);
final SoftwareModule softwareModule = softwareManagement.findSoftwareModuleById(softwareModuleId);
@@ -106,7 +108,7 @@ public class DdiRootController implements DdiRootControllerRestApi {
}
@Override
public ResponseEntity<DdiControllerBase> getControllerBase(final String targetid,
public ResponseEntity<DdiControllerBase> getControllerBase(@PathVariable("targetid") final String targetid,
final HttpServletRequest request) {
LOG.debug("getControllerBase({})", targetid);
@@ -127,8 +129,10 @@ public class DdiRootController implements DdiRootControllerRestApi {
}
@Override
public ResponseEntity<Void> downloadArtifact(final String targetid, final Long softwareModuleId,
final String fileName, final HttpServletResponse response, final HttpServletRequest request) {
public ResponseEntity<Void> downloadArtifact(@PathVariable("targetid") final String targetid,
@PathVariable("softwareModuleId") final Long softwareModuleId,
@PathVariable("fileName") final String fileName, final HttpServletResponse response,
final HttpServletRequest request) {
ResponseEntity<Void> result;
final Target target = controllerManagement.updateLastTargetQuery(targetid,
@@ -179,8 +183,10 @@ public class DdiRootController implements DdiRootControllerRestApi {
}
@Override
public ResponseEntity<Void> downloadArtifactMd5(final String targetid, final Long softwareModuleId,
final String fileName, final HttpServletResponse response, final HttpServletRequest request) {
public ResponseEntity<Void> downloadArtifactMd5(@PathVariable("targetid") final String targetid,
@PathVariable("softwareModuleId") final Long softwareModuleId,
@PathVariable("fileName") final String fileName, final HttpServletResponse response,
final HttpServletRequest request) {
controllerManagement.updateLastTargetQuery(targetid,
IpUtil.getClientIpFromRequest(request, securityProperties.getClients().getRemoteIpHeader()));
@@ -203,8 +209,10 @@ public class DdiRootController implements DdiRootControllerRestApi {
}
@Override
public ResponseEntity<DdiDeploymentBase> getControllerBasedeploymentAction(final String targetid,
final Long actionId, final int resource, final HttpServletRequest request) {
public ResponseEntity<DdiDeploymentBase> getControllerBasedeploymentAction(
@PathVariable("targetid") final String targetid, @PathVariable("actionId") final Long actionId,
@RequestParam(value = "c", required = false, defaultValue = "-1") final int resource,
final HttpServletRequest request) {
LOG.debug("getControllerBasedeploymentAction({},{})", targetid, resource);
final Target target = controllerManagement.updateLastTargetQuery(targetid,
@@ -237,8 +245,9 @@ public class DdiRootController implements DdiRootControllerRestApi {
}
@Override
public ResponseEntity<Void> postBasedeploymentActionFeedback(final DdiActionFeedback feedback,
final String targetid, final Long actionId, final HttpServletRequest request) {
public ResponseEntity<Void> postBasedeploymentActionFeedback(@Valid @RequestBody final DdiActionFeedback feedback,
@PathVariable("targetid") final String targetid, @PathVariable("actionId") @NotEmpty final Long actionId,
final HttpServletRequest request) {
LOG.debug("provideBasedeploymentActionFeedback for target [{},{}]: {}", targetid, actionId, feedback);
final Target target = controllerManagement.updateLastTargetQuery(targetid,
@@ -333,8 +342,8 @@ public class DdiRootController implements DdiRootControllerRestApi {
}
@Override
public ResponseEntity<Void> putConfigData(final DdiConfigData configData, final String targetid,
final HttpServletRequest request) {
public ResponseEntity<Void> putConfigData(@Valid @RequestBody final DdiConfigData configData,
@PathVariable("targetid") final String targetid, final HttpServletRequest request) {
controllerManagement.updateLastTargetQuery(targetid,
IpUtil.getClientIpFromRequest(request, securityProperties.getClients().getRemoteIpHeader()));
@@ -344,8 +353,9 @@ public class DdiRootController implements DdiRootControllerRestApi {
}
@Override
public ResponseEntity<DdiCancel> getControllerCancelAction(final String targetid, final Long actionId,
final HttpServletRequest request) {
public ResponseEntity<DdiCancel> getControllerCancelAction(
@PathVariable("targetid") @NotEmpty final String targetid,
@PathVariable("actionId") @NotEmpty final Long actionId, final HttpServletRequest request) {
LOG.debug("getControllerCancelAction({})", targetid);
final Target target = controllerManagement.updateLastTargetQuery(targetid,
@@ -374,8 +384,8 @@ public class DdiRootController implements DdiRootControllerRestApi {
@Override
public ResponseEntity<Void> postCancelActionFeedback(@Valid @RequestBody final DdiActionFeedback feedback,
@PathVariable @NotEmpty final String targetid, @PathVariable @NotEmpty final Long actionId,
final HttpServletRequest request) {
@PathVariable("targetid") @NotEmpty final String targetid,
@PathVariable("actionId") @NotEmpty final Long actionId, final HttpServletRequest request) {
LOG.debug("provideCancelActionFeedback for target [{}]: {}", targetid, feedback);
final Target target = controllerManagement.updateLastTargetQuery(targetid,
@@ -454,5 +464,4 @@ public class DdiRootController implements DdiRootControllerRestApi {
}
return findAction;
}
}