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);
|
public static final Logger logger = LoggerFactory.getLogger(ProjectBuilder.class);
|
||||||
|
|
||||||
private Project project;
|
private Project project;
|
||||||
private String backupFolderId;
|
|
||||||
private ServiceCredentials serviceCredentials;
|
private ServiceCredentials serviceCredentials;
|
||||||
private SAIDescriptor saiDescriptor;
|
private SAIDescriptor saiDescriptor;
|
||||||
private Path algorithmJava;
|
private Path algorithmJava;
|
||||||
|
@ -85,17 +84,19 @@ public class ProjectBuilder {
|
||||||
this.project = project;
|
this.project = project;
|
||||||
this.serviceCredentials = serviceCredentials;
|
this.serviceCredentials = serviceCredentials;
|
||||||
this.saiDescriptor = saiDescriptor;
|
this.saiDescriptor = saiDescriptor;
|
||||||
|
this.algorithmJava = null;
|
||||||
|
this.infoTXT = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Project buildTarget() throws StatAlgoImporterServiceException {
|
public Project buildTarget() throws StatAlgoImporterServiceException {
|
||||||
logger.debug("Project Builder: Build Target");
|
logger.debug("Project Builder: Build Target");
|
||||||
checkInfoForBuild();
|
checkInfoForBuild();
|
||||||
createShareInfo();
|
createShareInfo();
|
||||||
createBackup();
|
String backupFolderId = createBackupOfPackageProject();
|
||||||
createMainCodeIfRequest();
|
createMainCodeIfRequest();
|
||||||
createTargetFolder();
|
createTargetFolder();
|
||||||
createDeployFolder();
|
createDeployFolder();
|
||||||
createProjectPackage();
|
createProjectPackage(backupFolderId);
|
||||||
createCompileFolder();
|
createCompileFolder();
|
||||||
createAlgorithm();
|
createAlgorithm();
|
||||||
createIntegrationInfo();
|
createIntegrationInfo();
|
||||||
|
@ -128,16 +129,12 @@ public class ProjectBuilder {
|
||||||
public Project buildRepackage() throws StatAlgoImporterServiceException {
|
public Project buildRepackage() throws StatAlgoImporterServiceException {
|
||||||
logger.debug("Project Builder: Repackage");
|
logger.debug("Project Builder: Repackage");
|
||||||
checkInfoForRepackage();
|
checkInfoForRepackage();
|
||||||
createBackupOfPackageProject();
|
String backupFolderId = createBackupOfPackageProject();
|
||||||
createMainCodeIfRequest();
|
createMainCodeIfRequest();
|
||||||
repackageProjectPackage();
|
repackageProjectPackage(backupFolderId);
|
||||||
return project;
|
return project;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void createBackup() throws StatAlgoImporterServiceException {
|
|
||||||
createBackupOfPackageProject();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void createMainCodeIfRequest() throws StatAlgoImporterServiceException {
|
private void createMainCodeIfRequest() throws StatAlgoImporterServiceException {
|
||||||
if (project.getProjectConfig() != null && project.getProjectConfig().getProjectSupport() != null
|
if (project.getProjectConfig() != null && project.getProjectConfig().getProjectSupport() != null
|
||||||
&& (project.getProjectConfig().getProjectSupport() instanceof ProjectSupportBlackBox
|
&& (project.getProjectConfig().getProjectSupport() instanceof ProjectSupportBlackBox
|
||||||
|
@ -160,13 +157,13 @@ public class ProjectBuilder {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void repackageProjectPackage() throws StatAlgoImporterServiceException {
|
private void repackageProjectPackage(String backupFolderId) throws StatAlgoImporterServiceException {
|
||||||
List<String> idsToExclude = new ArrayList<String>();
|
List<String> idsToExclude = new ArrayList<String>();
|
||||||
if (backupFolderId != null && !backupFolderId.isEmpty()) {
|
if (backupFolderId != null && !backupFolderId.isEmpty()) {
|
||||||
logger.debug("Exclude Backup Folder Id: " + backupFolderId);
|
logger.debug("Exclude Backup Folder Id: " + backupFolderId);
|
||||||
idsToExclude.add(backupFolderId);
|
idsToExclude.add(backupFolderId);
|
||||||
}
|
}
|
||||||
|
|
||||||
FilesStorage filesStorage = new FilesStorage();
|
FilesStorage filesStorage = new FilesStorage();
|
||||||
|
|
||||||
if (project.getProjectTarget() != null && project.getProjectTarget().getFolder() != null
|
if (project.getProjectTarget() != null && project.getProjectTarget().getFolder() != null
|
||||||
|
@ -214,28 +211,33 @@ public class ProjectBuilder {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void createBackupOfPackageProject() throws StatAlgoImporterServiceException {
|
private String createBackupOfPackageProject() throws StatAlgoImporterServiceException {
|
||||||
|
|
||||||
|
String backupFolderId = null;
|
||||||
if (project.getProjectTarget() != null && project.getProjectTarget().getProjectDeploy() != null
|
if (project.getProjectTarget() != null && project.getProjectTarget().getProjectDeploy() != null
|
||||||
&& project.getProjectTarget().getProjectDeploy().getPackageProject() != null
|
&& project.getProjectTarget().getProjectDeploy().getPackageProject() != null
|
||||||
&& project.getProjectTarget().getProjectDeploy().getPackageProject().getId() != null
|
&& project.getProjectTarget().getProjectDeploy().getPackageProject().getId() != null
|
||||||
&& !project.getProjectTarget().getProjectDeploy().getPackageProject().getId().isEmpty()) {
|
&& !project.getProjectTarget().getProjectDeploy().getPackageProject().getId().isEmpty()) {
|
||||||
logger.debug("Create Backup of PackageProject");
|
logger.debug("Create Backup of PackageProject");
|
||||||
createBackupFolder();
|
backupFolderId = createBackupFolder();
|
||||||
|
if (backupFolderId != null && !backupFolderId.isEmpty()) {
|
||||||
|
FilesStorage filesStorage = new FilesStorage();
|
||||||
|
|
||||||
FilesStorage filesStorage = new FilesStorage();
|
GregorianCalendar now = new GregorianCalendar();
|
||||||
|
|
||||||
GregorianCalendar now = new GregorianCalendar();
|
String packageProjectNewName = project.getInputData().getProjectInfo().getAlgorithmNameToClassName()
|
||||||
|
+ "_backup_" + sdf.format(now.getTime()) + PROJECT_PACKAGE_EXTENTION;
|
||||||
|
|
||||||
String packageProjectNewName = project.getInputData().getProjectInfo().getAlgorithmNameToClassName()
|
filesStorage.copyItemOnFolderWithNewName(serviceCredentials.getUserName(),
|
||||||
+ "_backup_" + sdf.format(now.getTime()) + PROJECT_PACKAGE_EXTENTION;
|
project.getProjectTarget().getProjectDeploy().getPackageProject().getId(), backupFolderId,
|
||||||
|
packageProjectNewName);
|
||||||
filesStorage.copyItemOnFolderWithNewName(serviceCredentials.getUserName(),
|
} else {
|
||||||
project.getProjectTarget().getProjectDeploy().getPackageProject().getId(), backupFolderId,
|
logger.debug("BackupFolderId is null, backup not done");
|
||||||
packageProjectNewName);
|
}
|
||||||
} else {
|
} else {
|
||||||
logger.debug("First deploy, no backup needed");
|
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>();
|
List<String> idsToExclude = new ArrayList<String>();
|
||||||
if (backupFolderId != null && !backupFolderId.isEmpty()) {
|
if (backupFolderId != null && !backupFolderId.isEmpty()) {
|
||||||
|
@ -514,24 +516,25 @@ public class ProjectBuilder {
|
||||||
project.getProjectTarget().setProjectCompile(projectCompile);
|
project.getProjectTarget().setProjectCompile(projectCompile);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void createBackupFolder() throws StatAlgoImporterServiceException {
|
private String createBackupFolder() throws StatAlgoImporterServiceException {
|
||||||
FilesStorage filesStorage = new FilesStorage();
|
FilesStorage filesStorage = new FilesStorage();
|
||||||
|
|
||||||
ItemDescription backupFolder = filesStorage.find(serviceCredentials.getUserName(),
|
ItemDescription backupFolder = filesStorage.find(serviceCredentials.getUserName(),
|
||||||
project.getProjectFolder().getFolder().getId(), STATISTICAL_ALGORITHM_BACKUP_FOLDER_NAME);
|
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(),
|
ItemDescription newBackupFolder = filesStorage.createFolder(serviceCredentials.getUserName(),
|
||||||
project.getProjectFolder().getFolder().getId(), STATISTICAL_ALGORITHM_BACKUP_FOLDER_NAME,
|
project.getProjectFolder().getFolder().getId(), STATISTICAL_ALGORITHM_BACKUP_FOLDER_NAME,
|
||||||
STATISTICAL_ALGORITHM_BACKUP_FOLDER_DESCRIPTION);
|
STATISTICAL_ALGORITHM_BACKUP_FOLDER_DESCRIPTION);
|
||||||
logger.debug("BackupFolder created:" + backupFolder);
|
logger.debug("BackupFolder created:" + backupFolder);
|
||||||
|
|
||||||
backupFolderId = newBackupFolder.getId();
|
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());
|
String pLink = filesStorage.getPublicLink(serviceCredentials.getUserName(), codeSource.getId());
|
||||||
codeSource.setPublicLink(pLink);
|
codeSource.setPublicLink(pLink);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
logger.error(e.getLocalizedMessage(),e);
|
logger.error(e.getLocalizedMessage(), e);
|
||||||
throw new StatAlgoImporterServiceException(e.getLocalizedMessage(), e);
|
throw new StatAlgoImporterServiceException(e.getLocalizedMessage(), e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -594,7 +597,7 @@ public class ProjectBuilder {
|
||||||
try {
|
try {
|
||||||
tempDirectory = Files.createTempDirectory("StatAlgorithmsJar");
|
tempDirectory = Files.createTempDirectory("StatAlgorithmsJar");
|
||||||
} catch (IOException e) {
|
} 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);
|
throw new StatAlgoImporterServiceException(e.getLocalizedMessage(), e);
|
||||||
}
|
}
|
||||||
logger.debug("TempDir: " + tempDirectory);
|
logger.debug("TempDir: " + tempDirectory);
|
||||||
|
|
Loading…
Reference in New Issue