@Override
  public String execute() {

    // set all the needed informations
    PublicPlan publicPlan = new PublicPlan();
    publicPlan.setCSARID(this.csarID);
    publicPlan.setPlanType(this.planType);
    publicPlan.setInternalPlanID(this.internalID);
    publicPlan.setPlanID(
        new QName(
            planID.substring(1, planID.indexOf("}")),
            planID.substring(planID.indexOf("}") + 1, planID.length())));

    // split the parameters, they are stored inside one String due the AJAX
    // call
    for (String str : this.parameters.split("\\$\\$\\$\\$\\$\\$\\$\\$\\$\\$\\$\\$\\$!")) {
      Parameter param = new Parameter();
      String[] str2 = str.split("\\$\\$\\$\\$\\$\\$\\$\\$\\$\\$\\$\\$\\$");
      param.setName(str2[0]);
      param.setValue(str2[1]);
      publicPlan.getInputParameter().add(param);
    }

    System.out.println("invoke build plan " + publicPlan.getPlanID().toString());

    // PUT
    ContainerClient client = ContainerClient.getInstance();
    List<String> result = client.putPublicPlanBUILDInvocation(publicPlan);

    for (String str : result) {
      System.out.println(str);
    }

    return result.get(0);
  }