Skip to content

Commit

Permalink
Refactor : mise à jour version java / spring
Browse files Browse the repository at this point in the history
Refonte spring security sur spring boot 3
Refonte spring batch sur spring boot 3 et spring batch 5
Mise à jour Swagger vers OpenApi
  • Loading branch information
pierre-maraval committed Feb 29, 2024
1 parent 3a73681 commit a12ce66
Show file tree
Hide file tree
Showing 54 changed files with 470 additions and 870 deletions.
8 changes: 7 additions & 1 deletion batch/pom.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>itembackoffice</artifactId>
<groupId>fr.abes.item</groupId>
Expand Down Expand Up @@ -31,6 +32,11 @@
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>2.2.224</version>
</dependency>
<!-- ************** RETRY *************************** -->
<dependency>
<groupId>org.springframework.boot</groupId>
Expand Down
2 changes: 1 addition & 1 deletion batch/src/main/java/fr/abes/item/Application.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,6 @@
public class Application {

public static void main(String[] args) {
System.exit(SpringApplication.exit(SpringApplication.run(Application.class, args)));
SpringApplication.exit(SpringApplication.run(Application.class, args));
}
}
34 changes: 13 additions & 21 deletions batch/src/main/java/fr/abes/item/JobConfiguration.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package fr.abes.item;

import fr.abes.item.configuration.BaseXMLConfiguration;
import fr.abes.item.configuration.ItemConfiguration;
import fr.abes.item.constant.Constant;
import fr.abes.item.traitement.*;
import fr.abes.item.traitement.model.LigneFichierDto;
Expand All @@ -17,7 +16,6 @@
import org.springframework.batch.core.Job;
import org.springframework.batch.core.JobParametersIncrementer;
import org.springframework.batch.core.Step;
import org.springframework.batch.core.configuration.annotation.EnableBatchProcessing;
import org.springframework.batch.core.job.builder.JobBuilder;
import org.springframework.batch.core.repository.ExecutionContextSerializer;
import org.springframework.batch.core.repository.JobRepository;
Expand All @@ -37,15 +35,8 @@
@Slf4j
@Configuration
@EnableRetry
@EnableBatchProcessing
@ComponentScans(value = {
@ComponentScan(basePackages = {"fr.abes.item.repository"},
excludeFilters = {
@ComponentScan.Filter(type = FilterType.ANNOTATION, classes = BaseXMLConfiguration.class)
},
includeFilters = {
@ComponentScan.Filter(type = FilterType.ANNOTATION, classes = ItemConfiguration.class)}
),
@ComponentScan(basePackages = {"fr.abes.item.repository.item"}),
@ComponentScan(basePackages = {"fr.abes.item.configuration"},
excludeFilters = {
@ComponentScan.Filter(type = FilterType.ANNOTATION, classes = BaseXMLConfiguration.class)
Expand All @@ -59,6 +50,7 @@ public class JobConfiguration {
@Value("${batch.max.hour}")
int maxHour;


@Bean
public ExecutionContextSerializer configureSerializer() {
return new Jackson2ExecutionContextStringSerializer(LigneFichierDtoModif.class.getName(), LigneFichierDtoRecouv.class.getName(), LigneFichierDtoExemp.class.getName());
Expand Down Expand Up @@ -271,7 +263,7 @@ public Step stepSuppresionDemandesRecouv(JobRepository jobRepository, Tasklet de
// Job de lancement d'un traitement de modification
@Bean
public Job jobTraiterLigneFichier(JobRepository jobRepository, Step stepRecupererNextDemandeModif, Step stepLireLigneFichier, Step stepAuthentifierSurSudoc, Step stepGenererFichier, Step stepTraiterLigneFichier) {
return new JobBuilder(Constant.SPRING_BATCH_JOB_MODIF_NAME, jobRepository ).incrementer(incrementer())
return new JobBuilder("traiterLigneFichierModif", jobRepository ).incrementer(incrementer())
.start(stepRecupererNextDemandeModif).on(Constant.FAILED).end()
.from(stepRecupererNextDemandeModif).on(Constant.AUCUNE_DEMANDE).end()
.from(stepRecupererNextDemandeModif).on(Constant.COMPLETED).to(stepLireLigneFichier)
Expand All @@ -287,7 +279,7 @@ public Job jobTraiterLigneFichier(JobRepository jobRepository, Step stepRecupere
//job de lancement d'un traitement d'exemplarisation
@Bean
public Job jobTraiterLigneFichierExemp(JobRepository jobRepository, Step stepRecupererNextDemandeExemp, Step stepLireLigneFichier, Step stepAuthentifierSurSudoc, Step stepTraiterLigneFichier, Step stepGenererFichier) {
return new JobBuilder(Constant.SPRING_BATCH_JOB_EXEMP_NAME, jobRepository).incrementer(incrementer())
return new JobBuilder("traiterLigneFichierExemp", jobRepository).incrementer(incrementer())
.start(stepRecupererNextDemandeExemp).on(Constant.FAILED).end()
.from(stepRecupererNextDemandeExemp).on(Constant.AUCUNE_DEMANDE).end()
.from(stepRecupererNextDemandeExemp).on(Constant.COMPLETED).to(stepLireLigneFichier)
Expand All @@ -303,7 +295,7 @@ public Job jobTraiterLigneFichierExemp(JobRepository jobRepository, Step stepRec
//job de lancement d'un test de recouvrement
@Bean
public Job jobTraiterLigneFichierRecouv(JobRepository jobRepository, Step stepRecupererNextDemandeRecouv, Step stepLireLigneFichier, Step stepAuthentifierSurSudoc, Step stepTraiterLigneFichier, Step stepGenererFichier) {
return new JobBuilder(Constant.SPRING_BATCH_JOB_RECOU_NAME, jobRepository).incrementer(incrementer())
return new JobBuilder("traiterLigneFichierRecouv", jobRepository).incrementer(incrementer())
.start(stepRecupererNextDemandeRecouv).on(Constant.FAILED).end()
.from(stepRecupererNextDemandeRecouv).on(Constant.AUCUNE_DEMANDE).end()
.from(stepRecupererNextDemandeRecouv).on(Constant.COMPLETED).to(stepLireLigneFichier)
Expand All @@ -320,7 +312,7 @@ public Job jobTraiterLigneFichierRecouv(JobRepository jobRepository, Step stepRe
// Job d'export des statistiques mensuelles
@Bean
public Job jobExportStatistiques(JobRepository jobRepository, Step stepVerifierParams, Step stepExportStatistiques) {
return new JobBuilder(Constant.SPRING_BATCH_JOB_EXPORT_STATISTIQUES_NAME, jobRepository).incrementer(incrementer())
return new JobBuilder("exportStatistiques", jobRepository).incrementer(incrementer())
.start(stepVerifierParams).on(Constant.FAILED).end()
.from(stepVerifierParams).on(Constant.COMPLETED).to(stepExportStatistiques)
.build().build();
Expand All @@ -329,7 +321,7 @@ public Job jobExportStatistiques(JobRepository jobRepository, Step stepVerifierP
//Job d'archivage automatique de toutes les demandes en statut terminé dont la dernière modification à plus de trois mois
@Bean
public Job jobArchivageDemandes(JobRepository jobRepository, Step stepArchivageAutomatiqueDemandesExemp, Step stepArchivageAutomatiqueDemandesModif, Step stepArchivageAutomatiqueDemandesRecouv) {
return new JobBuilder(Constant.SPRING_BATCH_JOB_ARCHIVAGE_DEMANDES_EN_BASE, jobRepository).incrementer(incrementer())
return new JobBuilder("archiverDemandesPlusDeTroisMois", jobRepository).incrementer(incrementer())
.start(stepArchivageAutomatiqueDemandesExemp).on(Constant.FAILED).end()
.from(stepArchivageAutomatiqueDemandesExemp).on(Constant.AUCUNE_DEMANDE).end()
.from(stepArchivageAutomatiqueDemandesExemp).on(Constant.COMPLETED).end()
Expand All @@ -343,8 +335,9 @@ public Job jobArchivageDemandes(JobRepository jobRepository, Step stepArchivageA
}

//Job de placement en statut supprimé de toutes les demandes en statut archivé dont ce statut à plus de trois mois
@Bean Job jobSuppressionMaisConservationEnBaseDemandes(JobRepository jobRepository, Step stepChangementStatutSupprimeDemandesExemp, Step stepChangementStatutSupprimeDemandesModif, Step stepChangementStatutSupprimeDemandesRecouv) {
return new JobBuilder(Constant.SPRING_BATCH_JOB_STATUT_SUPPRIME_DEMANDES_EN_BASE, jobRepository).incrementer(incrementer())
@Bean
public Job jobSuppressionMaisConservationEnBaseDemandes(JobRepository jobRepository, Step stepChangementStatutSupprimeDemandesExemp, Step stepChangementStatutSupprimeDemandesModif, Step stepChangementStatutSupprimeDemandesRecouv) {
return new JobBuilder("statutSupprimeDemandesPlusDeTroisMois", jobRepository).incrementer(incrementer())
.start(stepChangementStatutSupprimeDemandesExemp).on(Constant.FAILED).end()
.from(stepChangementStatutSupprimeDemandesExemp).on(Constant.AUCUNE_DEMANDE).end()
.from(stepChangementStatutSupprimeDemandesExemp).on(Constant.COMPLETED).end()
Expand All @@ -358,8 +351,9 @@ public Job jobArchivageDemandes(JobRepository jobRepository, Step stepArchivageA
}

//Job de suppression définitive en base de donnée de toutes les demandes en statut supprimé, dont ce statut à plus de trois mois
@Bean Job jobSuppressionDefinitiveDemandes(JobRepository jobRepository, Step stepSuppresionDemandesExemp, Step stepSuppresionDemandesModif, Step stepSuppresionDemandesRecouv) {
return new JobBuilder(Constant.SPRING_BATCH_JOB_SUPPRESSION_DEMANDES_EN_BASE, jobRepository).incrementer(incrementer())
@Bean
public Job jobSuppressionDefinitiveDemandes(JobRepository jobRepository, Step stepSuppresionDemandesExemp, Step stepSuppresionDemandesModif, Step stepSuppresionDemandesRecouv) {
return new JobBuilder("suppressionDemandesPlusDeTroisMois", jobRepository).incrementer(incrementer())
.start(stepSuppresionDemandesExemp).on(Constant.FAILED).end()
.from(stepSuppresionDemandesExemp).on(Constant.AUCUNE_DEMANDE).end()
.from(stepSuppresionDemandesExemp).on(Constant.COMPLETED).end()
Expand All @@ -373,8 +367,6 @@ public Job jobArchivageDemandes(JobRepository jobRepository, Step stepArchivageA
}




// ------------------ INCREMENTER ------------------
protected JobParametersIncrementer incrementer() {
return new TimeIncrementer();
Expand Down
6 changes: 3 additions & 3 deletions batch/src/main/java/fr/abes/item/TimeIncrementer.java
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
package fr.abes.item;

import jakarta.annotation.Nullable;
import org.springframework.batch.core.JobParameters;
import org.springframework.batch.core.JobParametersBuilder;
import org.springframework.batch.core.JobParametersIncrementer;

public class TimeIncrementer implements JobParametersIncrementer {

private static String key = "time";

/**
* Increment the time parameter with the currentTimeMillis.
*/
@Override
public JobParameters getNext(JobParameters parameters) {
public JobParameters getNext(@Nullable JobParameters parameters) {

JobParameters params = parameters == null ? new JobParameters() : parameters;

String key = "time";
return new JobParametersBuilder(params).addLong(key, System.currentTimeMillis()).toJobParameters();
}

Expand Down
10 changes: 3 additions & 7 deletions batch/src/main/java/fr/abes/item/mail/IMailer.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,14 @@
import fr.abes.item.entities.item.Demande;

import java.io.File;
import java.util.Date;
import java.util.List;
import java.time.LocalDateTime;

public interface IMailer {
void mailDebutTraitement(String mailDestinataire, Demande demande);

void mailFinTraitement(String mailDestinataire, Demande demande, File f, Date dateDebut, Date dateFin);
void mailFinTraitement(String mailDestinataire, Demande demande, File f, LocalDateTime dateDebut, LocalDateTime dateFin);

void mailEchecTraitement(String mailDestinataire, Demande demande, Date dateDebut);
void mailEchecTraitement(String mailDestinataire, Demande demande, LocalDateTime dateDebut);

void mailAlertAdmin(String mailDestinataire, Demande demande);

void mailRestartJob(List<Integer> listeDemandes);

}
13 changes: 5 additions & 8 deletions batch/src/main/java/fr/abes/item/mail/impl/Mailer.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,13 @@
import com.fasterxml.jackson.databind.ObjectMapper;
import fr.abes.item.constant.Constant;
import fr.abes.item.mail.MailDto;
import fr.abes.item.service.factory.StrategyFactory;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
Expand All @@ -30,12 +28,11 @@ public class Mailer {
@Value("${mail.ws.url}")
protected String url;

@Autowired
protected StrategyFactory factory;

@Value("${mail.admin}")
protected String mailAdmin;


public void sendMail(String requestJson) {
RestTemplate restTemplate = new RestTemplate(); //appel ws qui envoie le mail
HttpHeaders headers = new HttpHeaders();
Expand All @@ -49,7 +46,7 @@ public void sendMail(String requestJson) {
try {
restTemplate.postForObject(url + "htmlMail/", entity, String.class); //appel du ws avec
} catch (Exception e) {
log.error(Constant.ERROR_SENDING_MAIL_END_OF_TREATMENT + e.toString());
log.error(Constant.ERROR_SENDING_MAIL_END_OF_TREATMENT + e);
}
}

Expand All @@ -66,7 +63,7 @@ protected void sendMailWithAttachment(String requestJson, File f) {
f.getName()
);
} catch (FileNotFoundException e) {
log.error(Constant.ERROR_ATTACHMENT_NOT_FOUND + e.toString());
log.error(Constant.ERROR_ATTACHMENT_NOT_FOUND + e);
}

HttpEntity multipart = builder.build();
Expand All @@ -75,7 +72,7 @@ protected void sendMailWithAttachment(String requestJson, File f) {
try (CloseableHttpClient httpClient = HttpClients.createDefault()) {
httpClient.execute(uploadFile);
} catch (IOException e) {
log.error(Constant.ERROR_ATTACHMENT_UNATTACHABLE + e.toString());
log.error(Constant.ERROR_ATTACHMENT_UNATTACHABLE + e);
}
}

Expand All @@ -92,7 +89,7 @@ protected String mailToJSON(String to, String subject, String text) {
try {
json = mapper.writeValueAsString(mail);
} catch (JsonProcessingException e) {
log.error(Constant.ERROR_CONVERSION_MAIL_TO_JSON + e.toString());
log.error(Constant.ERROR_CONVERSION_MAIL_TO_JSON + e);
}
return json;
}
Expand Down
Loading

0 comments on commit a12ce66

Please sign in to comment.