ref 12977: SAI - Force the path of the project folder to be updated to a new format
https://support.d4science.org/issues/12977 Now, when the project is open the path is forced to be updated git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/statistical-algorithms-importer@174888 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
6f9cd6d4a0
commit
3595890e3e
|
@ -74,7 +74,6 @@ public class ProjectBuilder {
|
|||
public static final Logger logger = LoggerFactory.getLogger(ProjectBuilder.class);
|
||||
|
||||
private Project project;
|
||||
private String backupFolderId;
|
||||
private ServiceCredentials serviceCredentials;
|
||||
private SAIDescriptor saiDescriptor;
|
||||
private Path algorithmJava;
|
||||
|
@ -85,17 +84,19 @@ public class ProjectBuilder {
|
|||
this.project = project;
|
||||
this.serviceCredentials = serviceCredentials;
|
||||
this.saiDescriptor = saiDescriptor;
|
||||
this.algorithmJava = null;
|
||||
this.infoTXT = null;
|
||||
}
|
||||
|
||||
public Project buildTarget() throws StatAlgoImporterServiceException {
|
||||
logger.debug("Project Builder: Build Target");
|
||||
checkInfoForBuild();
|
||||
createShareInfo();
|
||||
createBackup();
|
||||
String backupFolderId = createBackupOfPackageProject();
|
||||
createMainCodeIfRequest();
|
||||
createTargetFolder();
|
||||
createDeployFolder();
|
||||
createProjectPackage();
|
||||
createProjectPackage(backupFolderId);
|
||||
createCompileFolder();
|
||||
createAlgorithm();
|
||||
createIntegrationInfo();
|
||||
|
@ -128,16 +129,12 @@ public class ProjectBuilder {
|
|||
public Project buildRepackage() throws StatAlgoImporterServiceException {
|
||||
logger.debug("Project Builder: Repackage");
|
||||
checkInfoForRepackage();
|
||||
createBackupOfPackageProject();
|
||||
String backupFolderId = createBackupOfPackageProject();
|
||||
createMainCodeIfRequest();
|
||||
repackageProjectPackage();
|
||||
repackageProjectPackage(backupFolderId);
|
||||
return project;
|
||||
}
|
||||
|
||||
private void createBackup() throws StatAlgoImporterServiceException {
|
||||
createBackupOfPackageProject();
|
||||
}
|
||||
|
||||
private void createMainCodeIfRequest() throws StatAlgoImporterServiceException {
|
||||
if (project.getProjectConfig() != null && project.getProjectConfig().getProjectSupport() != null
|
||||
&& (project.getProjectConfig().getProjectSupport() instanceof ProjectSupportBlackBox
|
||||
|
@ -160,7 +157,7 @@ public class ProjectBuilder {
|
|||
|
||||
}
|
||||
|
||||
private void repackageProjectPackage() throws StatAlgoImporterServiceException {
|
||||
private void repackageProjectPackage(String backupFolderId) throws StatAlgoImporterServiceException {
|
||||
List<String> idsToExclude = new ArrayList<String>();
|
||||
if (backupFolderId != null && !backupFolderId.isEmpty()) {
|
||||
logger.debug("Exclude Backup Folder Id: " + backupFolderId);
|
||||
|
@ -214,15 +211,16 @@ public class ProjectBuilder {
|
|||
|
||||
}
|
||||
|
||||
private void createBackupOfPackageProject() throws StatAlgoImporterServiceException {
|
||||
private String createBackupOfPackageProject() throws StatAlgoImporterServiceException {
|
||||
|
||||
String backupFolderId = null;
|
||||
if (project.getProjectTarget() != null && project.getProjectTarget().getProjectDeploy() != null
|
||||
&& project.getProjectTarget().getProjectDeploy().getPackageProject() != null
|
||||
&& project.getProjectTarget().getProjectDeploy().getPackageProject().getId() != null
|
||||
&& !project.getProjectTarget().getProjectDeploy().getPackageProject().getId().isEmpty()) {
|
||||
logger.debug("Create Backup of PackageProject");
|
||||
createBackupFolder();
|
||||
|
||||
backupFolderId = createBackupFolder();
|
||||
if (backupFolderId != null && !backupFolderId.isEmpty()) {
|
||||
FilesStorage filesStorage = new FilesStorage();
|
||||
|
||||
GregorianCalendar now = new GregorianCalendar();
|
||||
|
@ -233,9 +231,13 @@ public class ProjectBuilder {
|
|||
filesStorage.copyItemOnFolderWithNewName(serviceCredentials.getUserName(),
|
||||
project.getProjectTarget().getProjectDeploy().getPackageProject().getId(), backupFolderId,
|
||||
packageProjectNewName);
|
||||
} else {
|
||||
logger.debug("BackupFolderId is null, backup not done");
|
||||
}
|
||||
} else {
|
||||
logger.debug("First deploy, no backup needed");
|
||||
}
|
||||
return backupFolderId;
|
||||
|
||||
}
|
||||
|
||||
|
@ -435,7 +437,7 @@ public class ProjectBuilder {
|
|||
|
||||
}
|
||||
|
||||
private void createProjectPackage() throws StatAlgoImporterServiceException {
|
||||
private void createProjectPackage(String backupFolderId) throws StatAlgoImporterServiceException {
|
||||
|
||||
List<String> idsToExclude = new ArrayList<String>();
|
||||
if (backupFolderId != null && !backupFolderId.isEmpty()) {
|
||||
|
@ -514,24 +516,25 @@ public class ProjectBuilder {
|
|||
project.getProjectTarget().setProjectCompile(projectCompile);
|
||||
}
|
||||
|
||||
private void createBackupFolder() throws StatAlgoImporterServiceException {
|
||||
private String createBackupFolder() throws StatAlgoImporterServiceException {
|
||||
FilesStorage filesStorage = new FilesStorage();
|
||||
|
||||
ItemDescription backupFolder = filesStorage.find(serviceCredentials.getUserName(),
|
||||
project.getProjectFolder().getFolder().getId(), STATISTICAL_ALGORITHM_BACKUP_FOLDER_NAME);
|
||||
|
||||
if (backupFolder == null) {
|
||||
String backupFolderId = null;
|
||||
if (backupFolder != null && backupFolder.getId() != null && !backupFolder.getId().isEmpty()) {
|
||||
backupFolderId = backupFolder.getId();
|
||||
} else {
|
||||
ItemDescription newBackupFolder = filesStorage.createFolder(serviceCredentials.getUserName(),
|
||||
project.getProjectFolder().getFolder().getId(), STATISTICAL_ALGORITHM_BACKUP_FOLDER_NAME,
|
||||
STATISTICAL_ALGORITHM_BACKUP_FOLDER_DESCRIPTION);
|
||||
logger.debug("BackupFolder created:" + backupFolder);
|
||||
|
||||
backupFolderId = newBackupFolder.getId();
|
||||
|
||||
} else {
|
||||
backupFolderId = backupFolder.getId();
|
||||
|
||||
}
|
||||
logger.debug("BackupFolderId: " + backupFolderId);
|
||||
return backupFolderId;
|
||||
|
||||
}
|
||||
|
||||
|
@ -552,7 +555,7 @@ public class ProjectBuilder {
|
|||
String pLink = filesStorage.getPublicLink(serviceCredentials.getUserName(), codeSource.getId());
|
||||
codeSource.setPublicLink(pLink);
|
||||
} catch (IOException e) {
|
||||
logger.error(e.getLocalizedMessage(),e);
|
||||
logger.error(e.getLocalizedMessage(), e);
|
||||
throw new StatAlgoImporterServiceException(e.getLocalizedMessage(), e);
|
||||
}
|
||||
|
||||
|
@ -594,7 +597,7 @@ public class ProjectBuilder {
|
|||
try {
|
||||
tempDirectory = Files.createTempDirectory("StatAlgorithmsJar");
|
||||
} catch (IOException e) {
|
||||
logger.error("Error creating temporal directory: " + e.getLocalizedMessage(),e);
|
||||
logger.error("Error creating temporal directory: " + e.getLocalizedMessage(), e);
|
||||
throw new StatAlgoImporterServiceException(e.getLocalizedMessage(), e);
|
||||
}
|
||||
logger.debug("TempDir: " + tempDirectory);
|
||||
|
|
Loading…
Reference in New Issue