From 0444ccc19d7657f6e5ec5d75aec653e53bddc041 Mon Sep 17 00:00:00 2001 From: Kevin Date: Thu, 15 Feb 2024 15:59:43 +0100 Subject: [PATCH] gestion datasource --- pom.xml | 4 +- .../ecandidat/config/JpaConfigApogee.java | 158 ++++++++++++++++++ .../ecandidat/config/JpaConfigEcandidat.java | 39 ++++- .../ecandidat/controllers/TestController.java | 21 +-- .../entities/ecandidat/AlertSva.java | 2 +- .../ecandidat/entities/ecandidat/Batch.java | 6 +- .../entities/ecandidat/BatchHisto.java | 2 +- .../entities/ecandidat/BatchRun.java | 4 +- .../entities/ecandidat/Campagne.java | 6 +- .../entities/ecandidat/Candidat.java | 2 +- .../entities/ecandidat/Candidature.java | 6 +- .../entities/ecandidat/CentreCandidature.java | 6 +- .../entities/ecandidat/Commission.java | 4 +- .../entities/ecandidat/CompteMinima.java | 2 +- .../entities/ecandidat/DroitProfil.java | 4 +- .../entities/ecandidat/DroitProfilInd.java | 2 +- .../ecandidat/entities/ecandidat/Faq.java | 2 +- .../ecandidat/entities/ecandidat/Fichier.java | 2 +- .../ecandidat/FichierFiabilisation.java | 2 +- .../entities/ecandidat/Formation.java | 8 +- .../entities/ecandidat/Formulaire.java | 4 +- .../entities/ecandidat/FormulaireCand.java | 2 +- .../ecandidat/FormulaireCandidat.java | 2 +- .../ecandidat/FormulaireCandidature.java | 2 +- .../ecandidat/entities/ecandidat/Langue.java | 2 +- .../ecandidat/LoadBalancingReloadRunPK.java | 2 +- .../entities/ecandidat/LockCandidat.java | 2 +- .../ecandidat/entities/ecandidat/Mail.java | 4 +- .../ecandidat/entities/ecandidat/Message.java | 4 +- .../entities/ecandidat/MotivationAvis.java | 4 +- .../ecandidat/entities/ecandidat/Opi.java | 2 +- .../entities/ecandidat/Parametre.java | 2 +- .../entities/ecandidat/PieceJustif.java | 4 +- .../ecandidat/entities/ecandidat/PjCand.java | 2 +- .../entities/ecandidat/PjCandidat.java | 2 +- .../ecandidat/entities/ecandidat/PjOpi.java | 2 +- .../ecandidat/entities/ecandidat/PostIt.java | 2 +- .../entities/ecandidat/Question.java | 4 +- .../entities/ecandidat/QuestionCand.java | 2 +- .../entities/ecandidat/SchemaVersion.java | 2 +- .../ecandidat/entities/ecandidat/Tag.java | 2 +- .../entities/ecandidat/TypeDecision.java | 4 +- .../ecandidat/TypeDecisionCandidature.java | 6 +- .../entities/ecandidat/TypeFormation.java | 4 +- .../entities/ecandidat/TypeStatut.java | 4 +- .../entities/ecandidat/TypeStatutPiece.java | 4 +- .../entities/ecandidat/TypeTraitement.java | 4 +- .../ecandidat/entities/ecandidat/Version.java | 2 +- .../tools/EntityPushEntityListener.java | 2 +- .../tools/LocalDatePersistenceConverter.java | 2 +- .../LocalDateTimePersistenceConverter.java | 2 +- .../tools/LocalTimePersistenceConverter.java | 2 +- .../siscol/SiScolApogeeWSServiceImpl.java | 36 ++-- .../utils/JpaConfigApogeeCondition.java | 21 +++ src/main/resources/META-INF/persistence.xml | 34 ---- .../lettre_refus_export_template CE.docx | Bin 0 -> 63833 bytes 56 files changed, 311 insertions(+), 152 deletions(-) create mode 100644 src/main/java/fr/univlorraine/ecandidat/config/JpaConfigApogee.java rename src/main/java/fr/univlorraine/ecandidat/entities/{ => ecandidat}/tools/EntityPushEntityListener.java (97%) rename src/main/java/fr/univlorraine/ecandidat/entities/{ => ecandidat}/tools/LocalDatePersistenceConverter.java (95%) rename src/main/java/fr/univlorraine/ecandidat/entities/{ => ecandidat}/tools/LocalDateTimePersistenceConverter.java (95%) rename src/main/java/fr/univlorraine/ecandidat/entities/{ => ecandidat}/tools/LocalTimePersistenceConverter.java (95%) create mode 100644 src/main/java/fr/univlorraine/ecandidat/utils/JpaConfigApogeeCondition.java delete mode 100644 src/main/resources/META-INF/persistence.xml create mode 100644 src/main/resources/configuration/template/refus-specifique-diplome/lettre_refus_export_template CE.docx diff --git a/pom.xml b/pom.xml index 5f4bf553..12744a55 100644 --- a/pom.xml +++ b/pom.xml @@ -147,7 +147,7 @@ true always - warn + ignore @@ -703,7 +703,7 @@ listeSiScol = siScolService.getListSiScolEtablissement(); - if (listeSiScol == null) { - return; - } - listeSiScol.forEach(etablissement -> { - try { - siScolEtablissementRepository.saveAndFlush(etablissement); - } catch (final Exception e) { - System.out.println(etablissement.getId().getCodEtb() + " / " + etablissement.getLibEtb()); - } - - }); - } catch (final SiScolException ex) { + siScolService.deleteOpiPJ("1628", "DIDEN"); + siScolService.getListSiScolAnneeUni().forEach(e -> System.out.println(e)); + } catch (final SiScolException e) { // TODO Auto-generated catch block - ex.printStackTrace(); + e.printStackTrace(); } logger.debug("Fin des tests"); } diff --git a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/AlertSva.java b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/AlertSva.java index 68b5124b..1961af35 100644 --- a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/AlertSva.java +++ b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/AlertSva.java @@ -28,7 +28,7 @@ import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; -import fr.univlorraine.ecandidat.entities.tools.EntityPushEntityListener; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.EntityPushEntityListener; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Batch.java b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Batch.java index 38698b52..1a03e3e8 100644 --- a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Batch.java +++ b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Batch.java @@ -32,9 +32,9 @@ import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; -import fr.univlorraine.ecandidat.entities.tools.EntityPushEntityListener; -import fr.univlorraine.ecandidat.entities.tools.LocalDateTimePersistenceConverter; -import fr.univlorraine.ecandidat.entities.tools.LocalTimePersistenceConverter; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.EntityPushEntityListener; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.LocalDateTimePersistenceConverter; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.LocalTimePersistenceConverter; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; diff --git a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/BatchHisto.java b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/BatchHisto.java index 8fad8bba..365607da 100644 --- a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/BatchHisto.java +++ b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/BatchHisto.java @@ -32,7 +32,7 @@ import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; -import fr.univlorraine.ecandidat.entities.tools.LocalDateTimePersistenceConverter; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.LocalDateTimePersistenceConverter; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/BatchRun.java b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/BatchRun.java index 455fb9fe..0cdecc22 100644 --- a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/BatchRun.java +++ b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/BatchRun.java @@ -27,8 +27,8 @@ import javax.persistence.Table; import javax.validation.constraints.NotNull; -import fr.univlorraine.ecandidat.entities.tools.EntityPushEntityListener; -import fr.univlorraine.ecandidat.entities.tools.LocalDateTimePersistenceConverter; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.EntityPushEntityListener; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.LocalDateTimePersistenceConverter; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Campagne.java b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Campagne.java index c27bbfd6..34d7c11c 100644 --- a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Campagne.java +++ b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Campagne.java @@ -36,9 +36,9 @@ import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; -import fr.univlorraine.ecandidat.entities.tools.EntityPushEntityListener; -import fr.univlorraine.ecandidat.entities.tools.LocalDatePersistenceConverter; -import fr.univlorraine.ecandidat.entities.tools.LocalDateTimePersistenceConverter; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.EntityPushEntityListener; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.LocalDatePersistenceConverter; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.LocalDateTimePersistenceConverter; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; diff --git a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Candidat.java b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Candidat.java index ddc0fcf9..e5f1931d 100644 --- a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Candidat.java +++ b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Candidat.java @@ -37,7 +37,7 @@ import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; -import fr.univlorraine.ecandidat.entities.tools.LocalDatePersistenceConverter; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.LocalDatePersistenceConverter; import fr.univlorraine.ecandidat.utils.bean.export.ExportListCandidatureAdresse; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Candidature.java b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Candidature.java index fe82e3c4..0e251e5b 100644 --- a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Candidature.java +++ b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Candidature.java @@ -46,9 +46,9 @@ import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; -import fr.univlorraine.ecandidat.entities.tools.EntityPushEntityListener; -import fr.univlorraine.ecandidat.entities.tools.LocalDatePersistenceConverter; -import fr.univlorraine.ecandidat.entities.tools.LocalDateTimePersistenceConverter; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.EntityPushEntityListener; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.LocalDatePersistenceConverter; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.LocalDateTimePersistenceConverter; import fr.univlorraine.ecandidat.utils.ConstanteUtils; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/CentreCandidature.java b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/CentreCandidature.java index 5fb2b1f4..538e98cb 100644 --- a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/CentreCandidature.java +++ b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/CentreCandidature.java @@ -38,9 +38,9 @@ import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; -import fr.univlorraine.ecandidat.entities.tools.EntityPushEntityListener; -import fr.univlorraine.ecandidat.entities.tools.LocalDatePersistenceConverter; -import fr.univlorraine.ecandidat.entities.tools.LocalDateTimePersistenceConverter; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.EntityPushEntityListener; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.LocalDatePersistenceConverter; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.LocalDateTimePersistenceConverter; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; diff --git a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Commission.java b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Commission.java index b23b50e3..f912b99e 100644 --- a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Commission.java +++ b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Commission.java @@ -40,8 +40,8 @@ import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; -import fr.univlorraine.ecandidat.entities.tools.EntityPushEntityListener; -import fr.univlorraine.ecandidat.entities.tools.LocalDateTimePersistenceConverter; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.EntityPushEntityListener; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.LocalDateTimePersistenceConverter; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; diff --git a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/CompteMinima.java b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/CompteMinima.java index bf95392f..dc144a24 100644 --- a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/CompteMinima.java +++ b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/CompteMinima.java @@ -35,7 +35,7 @@ import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; -import fr.univlorraine.ecandidat.entities.tools.LocalDateTimePersistenceConverter; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.LocalDateTimePersistenceConverter; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; diff --git a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/DroitProfil.java b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/DroitProfil.java index 67b4fb3d..e2043595 100644 --- a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/DroitProfil.java +++ b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/DroitProfil.java @@ -36,8 +36,8 @@ import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; -import fr.univlorraine.ecandidat.entities.tools.EntityPushEntityListener; -import fr.univlorraine.ecandidat.entities.tools.LocalDateTimePersistenceConverter; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.EntityPushEntityListener; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.LocalDateTimePersistenceConverter; import fr.univlorraine.ecandidat.utils.NomenclatureUtils; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/DroitProfilInd.java b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/DroitProfilInd.java index 0cd9ef85..f6e53f0c 100644 --- a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/DroitProfilInd.java +++ b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/DroitProfilInd.java @@ -31,7 +31,7 @@ import javax.persistence.Table; import javax.validation.constraints.NotNull; -import fr.univlorraine.ecandidat.entities.tools.EntityPushEntityListener; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.EntityPushEntityListener; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Faq.java b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Faq.java index d76a04e1..921ff1c3 100644 --- a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Faq.java +++ b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Faq.java @@ -31,7 +31,7 @@ import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; -import fr.univlorraine.ecandidat.entities.tools.EntityPushEntityListener; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.EntityPushEntityListener; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; diff --git a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Fichier.java b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Fichier.java index 046b4e4f..2ac477b0 100644 --- a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Fichier.java +++ b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Fichier.java @@ -32,7 +32,7 @@ import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; -import fr.univlorraine.ecandidat.entities.tools.LocalDateTimePersistenceConverter; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.LocalDateTimePersistenceConverter; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/FichierFiabilisation.java b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/FichierFiabilisation.java index ab8e5238..dbf250dc 100644 --- a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/FichierFiabilisation.java +++ b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/FichierFiabilisation.java @@ -30,7 +30,7 @@ import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; -import fr.univlorraine.ecandidat.entities.tools.LocalDateTimePersistenceConverter; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.LocalDateTimePersistenceConverter; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Formation.java b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Formation.java index 7371dc89..7fade429 100644 --- a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Formation.java +++ b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Formation.java @@ -43,10 +43,10 @@ import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; -import fr.univlorraine.ecandidat.entities.tools.EntityPushEntityListener; -import fr.univlorraine.ecandidat.entities.tools.LocalDatePersistenceConverter; -import fr.univlorraine.ecandidat.entities.tools.LocalDateTimePersistenceConverter; -import fr.univlorraine.ecandidat.entities.tools.LocalTimePersistenceConverter; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.EntityPushEntityListener; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.LocalDatePersistenceConverter; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.LocalDateTimePersistenceConverter; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.LocalTimePersistenceConverter; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; diff --git a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Formulaire.java b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Formulaire.java index 890856a7..e70f6510 100644 --- a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Formulaire.java +++ b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Formulaire.java @@ -38,8 +38,8 @@ import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; -import fr.univlorraine.ecandidat.entities.tools.EntityPushEntityListener; -import fr.univlorraine.ecandidat.entities.tools.LocalDateTimePersistenceConverter; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.EntityPushEntityListener; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.LocalDateTimePersistenceConverter; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; diff --git a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/FormulaireCand.java b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/FormulaireCand.java index c1371e48..d8c97640 100644 --- a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/FormulaireCand.java +++ b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/FormulaireCand.java @@ -31,7 +31,7 @@ import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; -import fr.univlorraine.ecandidat.entities.tools.LocalDateTimePersistenceConverter; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.LocalDateTimePersistenceConverter; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/FormulaireCandidat.java b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/FormulaireCandidat.java index a2d3e89c..be70101b 100644 --- a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/FormulaireCandidat.java +++ b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/FormulaireCandidat.java @@ -31,7 +31,7 @@ import javax.persistence.Table; import javax.validation.constraints.NotNull; -import fr.univlorraine.ecandidat.entities.tools.LocalDateTimePersistenceConverter; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.LocalDateTimePersistenceConverter; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; diff --git a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/FormulaireCandidature.java b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/FormulaireCandidature.java index 9b5818d8..0b534fdf 100644 --- a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/FormulaireCandidature.java +++ b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/FormulaireCandidature.java @@ -31,7 +31,7 @@ import javax.persistence.Table; import javax.validation.constraints.NotNull; -import fr.univlorraine.ecandidat.entities.tools.LocalDateTimePersistenceConverter; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.LocalDateTimePersistenceConverter; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; diff --git a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Langue.java b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Langue.java index b688ba07..e2a52a98 100644 --- a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Langue.java +++ b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Langue.java @@ -31,7 +31,7 @@ import com.vaadin.server.ThemeResource; -import fr.univlorraine.ecandidat.entities.tools.EntityPushEntityListener; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.EntityPushEntityListener; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; diff --git a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/LoadBalancingReloadRunPK.java b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/LoadBalancingReloadRunPK.java index a209fc8c..894da9d4 100644 --- a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/LoadBalancingReloadRunPK.java +++ b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/LoadBalancingReloadRunPK.java @@ -24,7 +24,7 @@ import javax.persistence.Embeddable; import javax.validation.constraints.NotNull; -import fr.univlorraine.ecandidat.entities.tools.LocalDateTimePersistenceConverter; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.LocalDateTimePersistenceConverter; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; diff --git a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/LockCandidat.java b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/LockCandidat.java index c3e462cd..8c709b0b 100644 --- a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/LockCandidat.java +++ b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/LockCandidat.java @@ -27,7 +27,7 @@ import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; -import fr.univlorraine.ecandidat.entities.tools.LocalDateTimePersistenceConverter; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.LocalDateTimePersistenceConverter; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Mail.java b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Mail.java index ac0db9a5..398f1601 100644 --- a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Mail.java +++ b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Mail.java @@ -37,8 +37,8 @@ import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; -import fr.univlorraine.ecandidat.entities.tools.EntityPushEntityListener; -import fr.univlorraine.ecandidat.entities.tools.LocalDateTimePersistenceConverter; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.EntityPushEntityListener; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.LocalDateTimePersistenceConverter; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; diff --git a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Message.java b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Message.java index 36e64185..1310e1bf 100644 --- a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Message.java +++ b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Message.java @@ -31,8 +31,8 @@ import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; -import fr.univlorraine.ecandidat.entities.tools.EntityPushEntityListener; -import fr.univlorraine.ecandidat.entities.tools.LocalDateTimePersistenceConverter; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.EntityPushEntityListener; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.LocalDateTimePersistenceConverter; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; diff --git a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/MotivationAvis.java b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/MotivationAvis.java index 53a00398..86a475b1 100644 --- a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/MotivationAvis.java +++ b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/MotivationAvis.java @@ -37,8 +37,8 @@ import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; -import fr.univlorraine.ecandidat.entities.tools.EntityPushEntityListener; -import fr.univlorraine.ecandidat.entities.tools.LocalDateTimePersistenceConverter; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.EntityPushEntityListener; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.LocalDateTimePersistenceConverter; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; diff --git a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Opi.java b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Opi.java index 018ab54f..80f76bf6 100644 --- a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Opi.java +++ b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Opi.java @@ -30,7 +30,7 @@ import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; -import fr.univlorraine.ecandidat.entities.tools.LocalDateTimePersistenceConverter; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.LocalDateTimePersistenceConverter; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Parametre.java b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Parametre.java index f866dd55..6978654f 100644 --- a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Parametre.java +++ b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Parametre.java @@ -26,7 +26,7 @@ import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; -import fr.univlorraine.ecandidat.entities.tools.EntityPushEntityListener; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.EntityPushEntityListener; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/PieceJustif.java b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/PieceJustif.java index 931306dc..a5d45273 100644 --- a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/PieceJustif.java +++ b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/PieceJustif.java @@ -39,8 +39,8 @@ import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; -import fr.univlorraine.ecandidat.entities.tools.EntityPushEntityListener; -import fr.univlorraine.ecandidat.entities.tools.LocalDateTimePersistenceConverter; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.EntityPushEntityListener; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.LocalDateTimePersistenceConverter; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; diff --git a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/PjCand.java b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/PjCand.java index 6e7ef617..86145207 100644 --- a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/PjCand.java +++ b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/PjCand.java @@ -31,7 +31,7 @@ import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; -import fr.univlorraine.ecandidat.entities.tools.LocalDateTimePersistenceConverter; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.LocalDateTimePersistenceConverter; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/PjCandidat.java b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/PjCandidat.java index f8340bb1..52469eed 100644 --- a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/PjCandidat.java +++ b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/PjCandidat.java @@ -30,7 +30,7 @@ import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; -import fr.univlorraine.ecandidat.entities.tools.LocalDateTimePersistenceConverter; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.LocalDateTimePersistenceConverter; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; diff --git a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/PjOpi.java b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/PjOpi.java index f4af8815..56309404 100644 --- a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/PjOpi.java +++ b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/PjOpi.java @@ -28,7 +28,7 @@ import javax.persistence.Table; import javax.validation.constraints.NotNull; -import fr.univlorraine.ecandidat.entities.tools.LocalDateTimePersistenceConverter; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.LocalDateTimePersistenceConverter; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; diff --git a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/PostIt.java b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/PostIt.java index 1dcc8003..4b99d741 100644 --- a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/PostIt.java +++ b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/PostIt.java @@ -32,7 +32,7 @@ import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; -import fr.univlorraine.ecandidat.entities.tools.LocalDateTimePersistenceConverter; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.LocalDateTimePersistenceConverter; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Question.java b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Question.java index 37127e35..8ecf5a73 100644 --- a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Question.java +++ b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Question.java @@ -38,8 +38,8 @@ import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; -import fr.univlorraine.ecandidat.entities.tools.EntityPushEntityListener; -import fr.univlorraine.ecandidat.entities.tools.LocalDateTimePersistenceConverter; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.EntityPushEntityListener; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.LocalDateTimePersistenceConverter; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; diff --git a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/QuestionCand.java b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/QuestionCand.java index 6f6db3ad..90684575 100644 --- a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/QuestionCand.java +++ b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/QuestionCand.java @@ -31,7 +31,7 @@ import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; -import fr.univlorraine.ecandidat.entities.tools.LocalDateTimePersistenceConverter; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.LocalDateTimePersistenceConverter; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; diff --git a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/SchemaVersion.java b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/SchemaVersion.java index 8528b598..98b065bb 100644 --- a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/SchemaVersion.java +++ b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/SchemaVersion.java @@ -26,7 +26,7 @@ import javax.persistence.Table; import javax.persistence.Transient; -import fr.univlorraine.ecandidat.entities.tools.LocalDateTimePersistenceConverter; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.LocalDateTimePersistenceConverter; import fr.univlorraine.ecandidat.utils.migration.RealeaseVersion; import lombok.Data; diff --git a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Tag.java b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Tag.java index 1e010cfb..0dfbf316 100644 --- a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Tag.java +++ b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Tag.java @@ -33,7 +33,7 @@ import com.vaadin.server.StreamResource; -import fr.univlorraine.ecandidat.entities.tools.EntityPushEntityListener; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.EntityPushEntityListener; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/TypeDecision.java b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/TypeDecision.java index 248f6bb6..46a5c260 100644 --- a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/TypeDecision.java +++ b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/TypeDecision.java @@ -37,8 +37,8 @@ import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; -import fr.univlorraine.ecandidat.entities.tools.EntityPushEntityListener; -import fr.univlorraine.ecandidat.entities.tools.LocalDateTimePersistenceConverter; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.EntityPushEntityListener; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.LocalDateTimePersistenceConverter; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; diff --git a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/TypeDecisionCandidature.java b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/TypeDecisionCandidature.java index 5888c815..a7b46821 100644 --- a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/TypeDecisionCandidature.java +++ b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/TypeDecisionCandidature.java @@ -36,9 +36,9 @@ import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; -import fr.univlorraine.ecandidat.entities.tools.LocalDatePersistenceConverter; -import fr.univlorraine.ecandidat.entities.tools.LocalDateTimePersistenceConverter; -import fr.univlorraine.ecandidat.entities.tools.LocalTimePersistenceConverter; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.LocalDatePersistenceConverter; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.LocalDateTimePersistenceConverter; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.LocalTimePersistenceConverter; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; diff --git a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/TypeFormation.java b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/TypeFormation.java index 6045b58e..507ce0e2 100644 --- a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/TypeFormation.java +++ b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/TypeFormation.java @@ -34,8 +34,8 @@ import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; -import fr.univlorraine.ecandidat.entities.tools.EntityPushEntityListener; -import fr.univlorraine.ecandidat.entities.tools.LocalDateTimePersistenceConverter; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.EntityPushEntityListener; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.LocalDateTimePersistenceConverter; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; diff --git a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/TypeStatut.java b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/TypeStatut.java index 72aea311..114f1a50 100644 --- a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/TypeStatut.java +++ b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/TypeStatut.java @@ -33,8 +33,8 @@ import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; -import fr.univlorraine.ecandidat.entities.tools.EntityPushEntityListener; -import fr.univlorraine.ecandidat.entities.tools.LocalDateTimePersistenceConverter; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.EntityPushEntityListener; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.LocalDateTimePersistenceConverter; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; diff --git a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/TypeStatutPiece.java b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/TypeStatutPiece.java index facf1b24..75e293ca 100644 --- a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/TypeStatutPiece.java +++ b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/TypeStatutPiece.java @@ -33,8 +33,8 @@ import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; -import fr.univlorraine.ecandidat.entities.tools.EntityPushEntityListener; -import fr.univlorraine.ecandidat.entities.tools.LocalDateTimePersistenceConverter; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.EntityPushEntityListener; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.LocalDateTimePersistenceConverter; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; diff --git a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/TypeTraitement.java b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/TypeTraitement.java index 707abd93..0afb534d 100644 --- a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/TypeTraitement.java +++ b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/TypeTraitement.java @@ -33,8 +33,8 @@ import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; -import fr.univlorraine.ecandidat.entities.tools.EntityPushEntityListener; -import fr.univlorraine.ecandidat.entities.tools.LocalDateTimePersistenceConverter; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.EntityPushEntityListener; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.LocalDateTimePersistenceConverter; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; diff --git a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Version.java b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Version.java index e76c2858..3637bc3e 100644 --- a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Version.java +++ b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Version.java @@ -29,7 +29,7 @@ import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; -import fr.univlorraine.ecandidat.entities.tools.LocalDateTimePersistenceConverter; +import fr.univlorraine.ecandidat.entities.ecandidat.tools.LocalDateTimePersistenceConverter; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/src/main/java/fr/univlorraine/ecandidat/entities/tools/EntityPushEntityListener.java b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/tools/EntityPushEntityListener.java similarity index 97% rename from src/main/java/fr/univlorraine/ecandidat/entities/tools/EntityPushEntityListener.java rename to src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/tools/EntityPushEntityListener.java index 21564065..78b46dab 100644 --- a/src/main/java/fr/univlorraine/ecandidat/entities/tools/EntityPushEntityListener.java +++ b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/tools/EntityPushEntityListener.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package fr.univlorraine.ecandidat.entities.tools; +package fr.univlorraine.ecandidat.entities.ecandidat.tools; import javax.annotation.Resource; import javax.persistence.PostPersist; diff --git a/src/main/java/fr/univlorraine/ecandidat/entities/tools/LocalDatePersistenceConverter.java b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/tools/LocalDatePersistenceConverter.java similarity index 95% rename from src/main/java/fr/univlorraine/ecandidat/entities/tools/LocalDatePersistenceConverter.java rename to src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/tools/LocalDatePersistenceConverter.java index b184f8ca..13f7c0ce 100644 --- a/src/main/java/fr/univlorraine/ecandidat/entities/tools/LocalDatePersistenceConverter.java +++ b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/tools/LocalDatePersistenceConverter.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package fr.univlorraine.ecandidat.entities.tools; +package fr.univlorraine.ecandidat.entities.ecandidat.tools; import java.sql.Date; import java.time.LocalDate; diff --git a/src/main/java/fr/univlorraine/ecandidat/entities/tools/LocalDateTimePersistenceConverter.java b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/tools/LocalDateTimePersistenceConverter.java similarity index 95% rename from src/main/java/fr/univlorraine/ecandidat/entities/tools/LocalDateTimePersistenceConverter.java rename to src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/tools/LocalDateTimePersistenceConverter.java index 5a6659f3..764a056d 100644 --- a/src/main/java/fr/univlorraine/ecandidat/entities/tools/LocalDateTimePersistenceConverter.java +++ b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/tools/LocalDateTimePersistenceConverter.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package fr.univlorraine.ecandidat.entities.tools; +package fr.univlorraine.ecandidat.entities.ecandidat.tools; import java.sql.Timestamp; import java.time.LocalDateTime; diff --git a/src/main/java/fr/univlorraine/ecandidat/entities/tools/LocalTimePersistenceConverter.java b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/tools/LocalTimePersistenceConverter.java similarity index 95% rename from src/main/java/fr/univlorraine/ecandidat/entities/tools/LocalTimePersistenceConverter.java rename to src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/tools/LocalTimePersistenceConverter.java index 0317a8a3..e85a7139 100644 --- a/src/main/java/fr/univlorraine/ecandidat/entities/tools/LocalTimePersistenceConverter.java +++ b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/tools/LocalTimePersistenceConverter.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package fr.univlorraine.ecandidat.entities.tools; +package fr.univlorraine.ecandidat.entities.ecandidat.tools; import java.sql.Time; import java.time.LocalTime; diff --git a/src/main/java/fr/univlorraine/ecandidat/services/siscol/SiScolApogeeWSServiceImpl.java b/src/main/java/fr/univlorraine/ecandidat/services/siscol/SiScolApogeeWSServiceImpl.java index cac88d4f..704ab5ba 100644 --- a/src/main/java/fr/univlorraine/ecandidat/services/siscol/SiScolApogeeWSServiceImpl.java +++ b/src/main/java/fr/univlorraine/ecandidat/services/siscol/SiScolApogeeWSServiceImpl.java @@ -32,7 +32,6 @@ import javax.annotation.Resource; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; -import javax.persistence.Persistence; import javax.persistence.Query; import org.slf4j.Logger; @@ -167,6 +166,9 @@ public class SiScolApogeeWSServiceImpl implements SiScolGenericService, Serializ /** proxy pour faire appel aux infos PjOPI du WS . */ private PjOpiMetierServiceInterface pjOpiService; + @Resource + private transient EntityManagerFactory entityManagerFactoryApogee; + /** service pour faire appel aux services Rest generiques */ @Resource private transient SiScolRestServiceInterface siScolRestServiceInterface; @@ -229,8 +231,7 @@ public Boolean isImplementationApogee() { */ private List executeQueryListEntity(final Class className) throws SiScolException { try { - final EntityManagerFactory emf = Persistence.createEntityManagerFactory("pun-jpa-siscol"); - final EntityManager em = emf.createEntityManager(); + final EntityManager em = entityManagerFactoryApogee.createEntityManager(); final Query query = em.createQuery("Select a from " + className.getName() + " a", className); final List listeSiScol = query.getResultList(); em.close(); @@ -614,8 +615,7 @@ public String checkBacSpecialiteOption(final CandidatBacOuEqu bac) { return null; } - final EntityManagerFactory emf = Persistence.createEntityManagerFactory("pun-jpa-siscol"); - final EntityManager em = emf.createEntityManager(); + final EntityManager em = entityManagerFactoryApogee.createEntityManager(); final String queryString = "select PKB_BAC.VERIFIER_SPECIALITES_ET_OPTIONS_BAC(?,?,?,?,?,?,?,?,?) from dual"; final Query query = em.createNativeQuery(queryString); query.setParameter(1, bac.getAnneeObtBac()); @@ -629,6 +629,7 @@ public String checkBacSpecialiteOption(final CandidatBacOuEqu bac) { query.setParameter(9, Optional.ofNullable(bac.getSiScolOpt4Bac()).map(e -> e.getId().getCodOptBac()).orElse(null)); final Object res = query.getSingleResult(); + em.close(); return (ConstanteUtils.APO_CHECK_BAC_VALIDE.equals(res) || ConstanteUtils.APO_CHECK_BAC_NO_VERIF.equals(res)) ? null : (String) res; } @@ -641,8 +642,7 @@ public Boolean hasSpecialiteRequired() { @Override public Version getVersion() throws SiScolException { try { - final EntityManagerFactory emf = Persistence.createEntityManagerFactory("pun-jpa-siscol"); - final EntityManager em = emf.createEntityManager(); + final EntityManager em = entityManagerFactoryApogee.createEntityManager(); final Query query = em.createQuery("Select a from VersionApo a where a.datCre is not null order by a.datCre desc", VersionApo.class).setMaxResults(1); final List listeVersionApo = query.getResultList(); em.close(); @@ -663,9 +663,8 @@ public Version getVersion() throws SiScolException { */ @Override public List getListFormationApogee(final String codeCge, String search) throws SiScolException { + final EntityManager em = entityManagerFactoryApogee.createEntityManager(); try { - final EntityManagerFactory emf = Persistence.createEntityManagerFactory("pun-jpa-siscol"); - final EntityManager em = emf.createEntityManager(); if (search != null && search.length() > 0) { search = "%" + search.toLowerCase() + "%"; } @@ -704,6 +703,8 @@ public List getListFormationApogee(final String codeCge, String search) thr } catch (final Exception e) { logger.error("erreur", e); throw new SiScolException("SiScol database error on getListFormationApogee", e.getCause()); + } finally { + em.close(); } } @@ -712,10 +713,8 @@ public List getListFormationApogee(final String codeCge, String search) thr */ @Override public List getListDiplome(final String codEtpVet, final String codVrsVet) throws SiScolException { + final EntityManager em = entityManagerFactoryApogee.createEntityManager(); try { - final EntityManagerFactory emf = Persistence.createEntityManagerFactory("pun-jpa-siscol"); - final EntityManager em = emf.createEntityManager(); - final String sqlString = "select distinct vdi_fractionner_vet.cod_dip, vdi_fractionner_vet.cod_vrs_vdi, diplome.lib_dip from vdi_fractionner_vet, diplome\r\n" + "where vdi_fractionner_vet.cod_dip = diplome.cod_dip\r\n" @@ -730,6 +729,8 @@ public List getListDiplome(final String codEtpVet, final String codVrsV } catch (final Exception e) { logger.error("erreur", e); throw new SiScolException("SiScol database error on getListDiplome", e.getCause()); + } finally { + em.close(); } } @@ -1286,17 +1287,18 @@ else if (listIndOpi.size() == 1) { * @throws SiScolException */ private List getVoeuxApogee(final IndOpi indOpi) throws SiScolException { + final EntityManager em = entityManagerFactoryApogee.createEntityManager(); try { final String queryString = "Select a from VoeuxIns a where a.id.codIndOpi = " + indOpi.getCodIndOpi(); logger.debug("Vérification des voeux " + queryString); - final EntityManagerFactory emf = Persistence.createEntityManagerFactory("pun-jpa-siscol"); - final EntityManager em = emf.createEntityManager(); final Query query = em.createQuery(queryString, VoeuxIns.class); final List listeSiScol = query.getResultList(); em.close(); return listeSiScol; } catch (final Exception e) { throw new SiScolException("SiScol database error on getVoeuxApogee", e); + } finally { + em.close(); } } @@ -1310,8 +1312,7 @@ private List getVoeuxApogee(final IndOpi indOpi) throws SiScolExceptio */ public List findNneIndOpiByCodOpiIntEpo(final String codOpiIntEpo, final Integer codEtuOpi, final MAJEtatCivilDTO2 etatCivil, final LocalDate dateNaissance) { - final EntityManagerFactory emf = Persistence.createEntityManagerFactory("pun-jpa-siscol"); - final EntityManager em = emf.createEntityManager(); + final EntityManager em = entityManagerFactoryApogee.createEntityManager(); /* Verification par codOpiIntEpo ou codEtuOpi ou INE */ String requete = "Select a from IndOpi a where a.codOpiIntEpo='" + codOpiIntEpo + "'"; @@ -1703,8 +1704,7 @@ public void deleteOpiPJ(final String codIndOpi, final String codTpj) throws SiSc if (codIndOpi == null || codTpj == null) { return; } - final EntityManagerFactory emf = Persistence.createEntityManagerFactory("pun-jpa-siscol"); - final EntityManager em = emf.createEntityManager(); + final EntityManager em = entityManagerFactoryApogee.createEntityManager(); em.getTransaction().begin(); final Query query = em.createNativeQuery("DELETE FROM OPI_PJ WHERE COD_IND_OPI = " + codIndOpi + " AND COD_TPJ = '" + codTpj + "'"); query.executeUpdate(); diff --git a/src/main/java/fr/univlorraine/ecandidat/utils/JpaConfigApogeeCondition.java b/src/main/java/fr/univlorraine/ecandidat/utils/JpaConfigApogeeCondition.java new file mode 100644 index 00000000..683b2f8e --- /dev/null +++ b/src/main/java/fr/univlorraine/ecandidat/utils/JpaConfigApogeeCondition.java @@ -0,0 +1,21 @@ +package fr.univlorraine.ecandidat.utils; + +import org.apache.commons.lang.StringUtils; +import org.springframework.context.annotation.Condition; +import org.springframework.context.annotation.ConditionContext; +import org.springframework.core.type.AnnotatedTypeMetadata; +import org.springframework.jdbc.datasource.lookup.JndiDataSourceLookup; + +public class JpaConfigApogeeCondition implements Condition { + + @Override + public boolean matches(final ConditionContext context, final AnnotatedTypeMetadata metadata) { + try { + return StringUtils.isNotBlank(context.getEnvironment().getProperty("datasource.apogee.url")) + || + new JndiDataSourceLookup().getDataSource("java:/comp/env/jdbc/dbSiScol") != null; + } catch (final Exception e) { + return true; + } + } +} \ No newline at end of file diff --git a/src/main/resources/META-INF/persistence.xml b/src/main/resources/META-INF/persistence.xml deleted file mode 100644 index 3d52a62d..00000000 --- a/src/main/resources/META-INF/persistence.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - org.eclipse.persistence.jpa.PersistenceProvider - java:/comp/env/jdbc/dbSiScol - false - - - - - - - - - \ No newline at end of file diff --git a/src/main/resources/configuration/template/refus-specifique-diplome/lettre_refus_export_template CE.docx b/src/main/resources/configuration/template/refus-specifique-diplome/lettre_refus_export_template CE.docx new file mode 100644 index 0000000000000000000000000000000000000000..453b64aa64bc11cc4976252dc95ef8222527dd4c GIT binary patch literal 63833 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 Rdws