@Override
 public List<Deployed> getDeployedPackageNames(SystemModel system) {
   List<ServiceResponse<Deployed>> list = requestTaskService.list(system.getId());
   List<Deployed> deployedList = new ArrayList<Deployed>();
   for (ServiceResponse<Deployed> response : list) {
     deployedList.add(response.getItem());
   }
   return deployedList;
 }
 @Override
 public List<WebArchive> getWarStatus(Long systemId) {
   List<ServiceResponse<WebArchive>> status = requestTaskService.status(systemId);
   List<WebArchive> webArchives = new ArrayList<WebArchive>();
   for (ServiceResponse<WebArchive> response : status) {
     webArchives.addAll(response.getData());
   }
   return webArchives;
 }
  @Override
  public void undeployPackage(
      PackageModel packageRN, String token, Map<String, DatabaseAction> associatedDatabases) {
    try {
      if (!associatedDatabases.isEmpty()) uninstall(packageRN, associatedDatabases);

      String name = packageRN.getUrlPath();
      if (packageRN.getUrlPath() == null || packageRN.getUrlPath().isEmpty()) name = "ROOT";

      name = name + PackageFileType.APP_WAR.getDotExtension();
      progress.status("... undeploying application: " + name, 1, LogLevel.INFO);
      requestTaskService.undeploy(packageRN.getId(), name);
      progress.status("Uninstallation process has been completed", 1, LogLevel.INFO);
    } catch (Exception e) {
      progress.status("Occurred error" + e.getMessage(), 1, LogLevel.ERROR);
      logger.error(e.getMessage(), e);
    }
  }
  @Override
  public void deployPackage(
      PackageModel packageRN,
      String token,
      InputStream stream,
      Map<String, DatabaseAction> associatedDatabases) {
    try {
      install(stream, packageRN, associatedDatabases);

      String name = packageRN.getUrlPath();
      if (packageRN.getUrlPath() == null || packageRN.getUrlPath().isEmpty()) name = "ROOT";

      name = name + PackageFileType.APP_WAR.getDotExtension();
      String file = packageRN.getName() + PackageFileType.APP_WAR.getDotExtension();
      progress.status("... deploying application: " + name, 1, LogLevel.INFO);
      requestTaskService.deploy(packageRN.getId(), name, file);
      progress.status("Archive version", 2, LogLevel.INFO);
      OPFEngine.RegistryService.archive(packageRN.getId());
      progress.status("Installation process has been completed", 2, LogLevel.INFO);
    } catch (ClientHandlerException e) {
      if (e.getCause() instanceof FileNotFoundException) {
        progress.status("Package archive has not been found", 1, LogLevel.ERROR);
      } else if (e.getCause() instanceof ConnectException) {
        progress.status("Connection refused", 1, LogLevel.ERROR);
      } else {
        progress.status("Occurred error", 1, LogLevel.ERROR);
      }
      logger.error(e.getMessage(), e);
    } catch (Exception e) {
      progress.status("Occurred error", 1, LogLevel.ERROR);
      logger.error(e.getMessage(), e);
    } finally {
      if (stream != null) {
        IOUtils.closeQuietly(stream);
      }
    }
  }
 @Override
 public void restart() {
   requestTaskService.restart();
 }