@RequestMapping(value = "/deployments/{name}", method = RequestMethod.POST)
@ResponseStatus(HttpStatus.CREATED)
public void deploy(@PathVariable("name") String name, @RequestParam(required = false) String properties) {
TaskDefinition taskDefinition = this.repository.findOne(name);
Assert.notNull(taskDefinition, String.format("no task defined: %s", name));
ModuleDefinition module = taskDefinition.getModuleDefinition();
ArtifactRegistration registration = this.registry.find(module.getName(), ArtifactType.task);
if (registration == null) {
throw new IllegalArgumentException(String.format(
"Module %s of type %s not found in registry", module.getName(), ArtifactType.task));
}
ArtifactCoordinates coordinates = registration.getCoordinates();
this.moduleDeployer.deploy(new ModuleDeploymentRequest(module, coordinates));
}