PurgeGlassesDataBackup.java
package com.sintia.ffl.admin.optique.catalogue.batch.tasklet.purgeglasses;
import com.sintia.ffl.admin.optique.catalogue.batch.reporter.PurgeVerreReporter;
import com.sintia.ffl.admin.optique.catalogue.util.Constants;
import com.sintia.ffl.admin.optique.catalogue.util.ScriptCaller;
import lombok.RequiredArgsConstructor;
import org.springframework.batch.core.JobExecutionException;
import org.springframework.batch.core.StepContribution;
import org.springframework.batch.core.scope.context.ChunkContext;
import org.springframework.batch.core.step.tasklet.Tasklet;
import org.springframework.batch.repeat.RepeatStatus;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.lang.NonNull;
import org.springframework.stereotype.Component;
@Component
@RequiredArgsConstructor
public class PurgeGlassesDataBackup implements Tasklet {
private final PurgeVerreReporter purgeVerreReporter;
private final ScriptCaller scriptCaller;
@Value("${glasses.purge.scriptName}")
private String scriptName;
@Override
public RepeatStatus execute(@NonNull StepContribution contribution, @NonNull ChunkContext chunkContext)
throws Exception {
int returnCode = scriptCaller.runScript(scriptName);
if (Constants.SCRIPT_RESULT_OK == returnCode) {
return RepeatStatus.FINISHED;
} else {
purgeVerreReporter.addError("Erreur lors de la sauvegarde de la base de données pré-purge.");
throw new JobExecutionException("Error during the call to the script '" + scriptName + "' return code : " + returnCode);
}
}
}