private void updateData(List<OctopusApplication> octopusApplications) {
    for (OctopusApplication application : octopusApplications) {
      List<EnvironmentComponent> compList = new ArrayList<>();
      List<EnvironmentStatus> statusList = new ArrayList<>();
      long startApp = System.currentTimeMillis();

      List<ApplicationDeploymentHistoryItem> applicationDeploymentHistoryItems =
          octopusClient.getApplicationDeploymentHistory(application);

      LOGGER.info("history ==>" + applicationDeploymentHistoryItems.size());

      compList.addAll(getEnvironmentComponent(applicationDeploymentHistoryItems));

      statusList.addAll(getEnvironmentStatus(applicationDeploymentHistoryItems));

      LOGGER.info("compList ==>" + compList.size());

      LOGGER.info("statusList ==>" + statusList.size());

      if (!compList.isEmpty()) {
        List<EnvironmentComponent> existingComponents =
            envComponentRepository.findByCollectorItemId(application.getId());
        envComponentRepository.delete(existingComponents);
        envComponentRepository.save(compList);
      }
      if (!statusList.isEmpty()) {
        List<EnvironmentStatus> existingStatuses =
            environmentStatusRepository.findByCollectorItemId(application.getId());
        environmentStatusRepository.delete(existingStatuses);
        environmentStatusRepository.save(statusList);
      }

      log(" " + application.getApplicationName(), startApp);
    }
  }
  private void addNewApplications(
      List<OctopusApplication> applications, OctopusCollector collector) {
    long start = System.currentTimeMillis();
    int count = 0;

    log("All apps", start, applications.size());
    for (OctopusApplication application : applications) {

      if (isNewApplication(collector, application)) {
        application.setCollectorId(collector.getId());
        application.setEnabled(false);
        application.setDescription(application.getApplicationName());
        try {
          octopusApplicationRepository.save(application);
        } catch (org.springframework.dao.DuplicateKeyException ce) {
          log("Duplicates items not allowed", 0);
        }
        count++;
      }
    }
    log("New apps", start, count);
  }
 /**
  * Clean up unused deployment collector items
  *
  * @param collector the {@link UDeployCollector}
  */
 @SuppressWarnings("PMD.AvoidDeeplyNestedIfStmts")
 private void clean(OctopusCollector collector) {
   deleteUnwantedJobs(collector);
   Set<ObjectId> uniqueIDs = new HashSet<>();
   for (com.capitalone.dashboard.model.Component comp : dbComponentRepository.findAll()) {
     if (comp.getCollectorItems() == null || comp.getCollectorItems().isEmpty()) continue;
     List<CollectorItem> itemList = comp.getCollectorItems().get(CollectorType.Deployment);
     if (itemList == null) continue;
     for (CollectorItem ci : itemList) {
       if (ci == null) continue;
       uniqueIDs.add(ci.getId());
     }
   }
   List<OctopusApplication> appList = new ArrayList<>();
   Set<ObjectId> udId = new HashSet<>();
   udId.add(collector.getId());
   for (OctopusApplication app : octopusApplicationRepository.findByCollectorIdIn(udId)) {
     if (app != null) {
       app.setEnabled(uniqueIDs.contains(app.getId()));
       appList.add(app);
     }
   }
   octopusApplicationRepository.save(appList);
 }
 private boolean isNewApplication(OctopusCollector collector, OctopusApplication application) {
   return octopusApplicationRepository.findUDeployApplication(
           collector.getId(), octopusSettings.getUrl(), application.getApplicationId())
       == null;
 }