package eu.eudat.migration.services; import eu.eudat.migration.dao.TemplateRepository; import eu.eudat.migration.dao.UserRepository; import eu.eudat.migration.entities.Template; import eu.eudat.migration.properties.ConfigProperties; import eu.eudat.migration.properties.DefaultEntities; import eu.eudat.models.data.admin.composite.DatasetProfile; import eu.eudat.models.data.datasetwizard.DatasetWizardModel; import eu.eudat.models.data.dmp.DataManagementPlan; import eu.eudat.models.data.dmp.DataManagementPlanEditorModel; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.data.domain.Sort; import org.springframework.stereotype.Service; import java.util.*; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicReference; @Service @ConditionalOnProperty(prefix = "roadmap", name = "database.url") public class DMPRoadmapService { /** DMPRoadmap Repositories*/ private final TemplateRepository templateRepository; private final UserRepository userRepository; /** Default Entities*/ private final DefaultEntities defaultEntities; /** Services */ private final ArgosService argosService; /** Metadata */ private final List datasetProfiles = new ArrayList<>(); private final List dmps = new ArrayList<>(); private final List datasets = new ArrayList<>(); @Autowired public DMPRoadmapService(TemplateRepository templateRepository, UserRepository userRepository, ArgosService argosService, ConfigProperties properties) { this.templateRepository = templateRepository; this.userRepository = userRepository; this.defaultEntities = properties.getEntities(); this.argosService = argosService; } public void login() { this.argosService.login(); } public void logout() { this.argosService.logout(); } public void migrate() { try { templateRepository.findAllGroups().forEach(group -> { List