@Override
 public void undeployAll() {
   // TODO: we should revisit here to check on instance repository
   for (JobDefinition definition : getDefinitionRepository().findAll()) {
     undeploy(definition.getName());
   }
 }
  public void deploy(
      String name,
      String jobParameters,
      String dateFormat,
      String numberFormat,
      Boolean makeUnique) {
    Assert.hasText(name, "name cannot be blank or null");
    JobDefinition definition = getDefinitionRepository().findOne(name);
    if (definition == null) {
      throwNoSuchDefinitionException(name);
    }
    List<ModuleDeploymentRequest> requests = parse(name, definition.getDefinition());
    // If the job definition has trigger then, check if the trigger exists
    // TODO: should we do this at the parser?
    // but currently the parser has reference to StreamDefinitionRepository only.
    if (requests != null
        && requests.get(0).getParameters().containsKey(ModuleType.TRIGGER.getTypeName())) {
      String triggerName = requests.get(0).getParameters().get(ModuleType.TRIGGER.getTypeName());
      if (triggerDefinitionRepository.findOne(triggerName) == null) {
        throwNoSuchDefinitionException(triggerName, ModuleType.TRIGGER.getTypeName());
      }
    }

    for (ModuleDeploymentRequest request : requests) {
      if ("job".equals(request.getType())) {
        if (jobParameters != null) {
          request.setParameter("jobParameters", jobParameters);
        }
        if (dateFormat != null) {
          request.setParameter("dateFormat", dateFormat);
        }
        if (numberFormat != null) {
          request.setParameter("numberFormat", numberFormat);
        }
        if (makeUnique != null) {
          request.setParameter("makeUnique", String.valueOf(makeUnique));
        }
      }
    }

    try {
      sendDeploymentRequests(name, requests);
    } catch (MessageHandlingException mhe) {
      Throwable cause = mhe.getCause();
      if (cause == null) {
        throw mhe;
      }
      String exceptionClassName = cause.getClass().getName();
      if (exceptionClassName.equals(BEAN_CREATION_EXCEPTION)
          || exceptionClassName.equals(BEAN_DEFINITION_EXEPTION)) {
        throw new MissingRequiredDefinitionException(definition.getName(), cause.getMessage());
      } else {
        throw mhe;
      }
    }
  }
 @Override
 public void undeploy(String name) {
   JobDefinition job = getDefinitionRepository().findOne(name);
   if (job == null) {
     throwNoSuchDefinitionException(name);
   }
   List<ModuleDeploymentRequest> requests = parse(name, job.getDefinition());
   for (ModuleDeploymentRequest request : requests) {
     request.setRemove(true);
   }
   try {
     sendDeploymentRequests(name, requests);
   } catch (MessageHandlingException ex) {
     // Job is not deployed.
   }
 }