This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git commit 68aa5c73a10e52deb700f760f487381c19a8d508 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Jul 5 17:39:02 2016 +0200 On n gère pas lors de la synchronisation de la désactivation d'un référentiel (See #7739) --- .../actions/synchro/RemoteReferentialDiff.java | 18 +-------- ...UnidirectionalReferentialSynchronizeEngine.java | 47 ++++------------------ ...alReferentialSynchronizeRemoteServiceTopia.java | 8 ---- .../UnidirectionalSynchronizeReferentialTest.java | 7 +--- 4 files changed, 10 insertions(+), 70 deletions(-) diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/synchro/RemoteReferentialDiff.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/synchro/RemoteReferentialDiff.java index 8900844..b4409f7 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/synchro/RemoteReferentialDiff.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/synchro/RemoteReferentialDiff.java @@ -3,7 +3,6 @@ package fr.ird.observe.services.service.actions.synchro; import com.google.common.collect.ArrayListMultimap; import com.google.common.collect.Multimap; import fr.ird.observe.services.dto.referential.ReferentialDto; -import fr.ird.observe.services.dto.referential.ReferentialReference; import java.io.Serializable; import java.util.Collection; @@ -36,26 +35,21 @@ public class RemoteReferentialDiff implements Serializable { * Les identifiants de référentiels à supprimer (indexé par nom de référentiel). */ private final Multimap<String, String> referentialsToRemove; - /** - * Les références de référentiels à changer (ils sont devenus obsolètes) (indexé par nom de référentiel). - */ - private final Multimap<String, ReferentialReference> referentialsToFix; public RemoteReferentialDiff() { referentialNames = new LinkedHashSet<>(); referentialsToAdd = ArrayListMultimap.create(); referentialsToUpdate = ArrayListMultimap.create(); referentialsToRemove = ArrayListMultimap.create(); - referentialsToFix = ArrayListMultimap.create(); } public boolean isReferentialUsed(String referentialName) { return referentialsToAdd.containsKey(referentialName) || referentialsToUpdate.containsKey(referentialName) - || referentialsToRemove.containsKey(referentialName) - || referentialsToFix.containsKey(referentialName); + || referentialsToRemove.containsKey(referentialName); } + public <R extends ReferentialDto> Collection<R> getReferentialsToAdd(String referentialName) { return (Collection) referentialsToAdd.get(referentialName); } @@ -68,10 +62,6 @@ public class RemoteReferentialDiff implements Serializable { return new HashSet<>(referentialsToRemove.get(referentialName)); } - public <R extends ReferentialDto> Collection<ReferentialReference<R>> getReferentialsToFix(String referentialName) { - return (Collection)referentialsToFix.get(referentialName); - } - public Set<String> getReferentialNames() { return referentialNames; } @@ -91,8 +81,4 @@ public class RemoteReferentialDiff implements Serializable { referentialsToRemove.put(referentialName, id); } - void addReferentialToFix(String referentialName, ReferentialReference referentialReference) { - referentialNames.add(referentialName); - referentialsToFix.put(referentialName, referentialReference); - } } diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/synchro/UnidirectionalReferentialSynchronizeEngine.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/synchro/UnidirectionalReferentialSynchronizeEngine.java index 83be8a9..5c3b8c5 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/synchro/UnidirectionalReferentialSynchronizeEngine.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/synchro/UnidirectionalReferentialSynchronizeEngine.java @@ -92,27 +92,8 @@ public class UnidirectionalReferentialSynchronizeEngine implements Callable<Unid } - Collection<ReferentialReference<R>> referentialsToReplace = remoteReferentialDiff.getReferentialsToFix(referentialName); - Collection<ReferentialReference<R>> blockingReferentialsToReplace = null; - if (CollectionUtils.isNotEmpty(referentialsToReplace)) { - - Set<String> idsToReplace = referentialsToReplace.stream() - .map(ReferentialReference::getId) - .collect(Collectors.toCollection(LinkedHashSet::new)); - - Set<String> blockingIdsToReplace = localService.filterIdsUsedInLocalSource(referentialName, idsToReplace); - - blockingReferentialsToReplace = referentialsToReplace - .stream() - .filter(referentialReference -> blockingIdsToReplace.contains(referentialReference.getId())) - .collect(Collectors.toSet()); - - } - - boolean needCallbackForRemove = CollectionUtils.isNotEmpty(blockingIdsToRemove); - boolean needCallbackForReplace = CollectionUtils.isNotEmpty(blockingReferentialsToReplace); - boolean needCallback = needCallbackForRemove || needCallbackForReplace; + boolean needCallback = CollectionUtils.isNotEmpty(blockingIdsToRemove); if (needCallback) { // calcul de l'univers de référentiels disponibles pour les remplacements @@ -120,26 +101,12 @@ public class UnidirectionalReferentialSynchronizeEngine implements Callable<Unid ReferentialReferenceSet<R> availableReferenceSet = remoteService.getEnabledReferentialReferenceSet(referentialName); Set<ReferentialReference<R>> availableReferentials = availableReferenceSet.getReferences(); - if (needCallbackForRemove) { - - Set<ReferentialReference<R>> blockingReferentialsToRemove = localService.getLocalSourceReferentialToDelete(referentialName, blockingIdsToRemove); - CallbackRequest<R> callbackRequest = CallbackRequest.of(referentialName, blockingReferentialsToRemove, availableReferentials); - Map<String, String> referentialsToRemoveIds = callback.askUserToReplaceRemovedReferentials(callbackRequest); - for (Map.Entry<String, String> entry : referentialsToRemoveIds.entrySet()) { - builder.entityToReplace(entry.getKey(), entry.getValue()); - builder.entityToRemove(entry.getKey()); - } - - } - - if (needCallbackForReplace) { - - CallbackRequest<R> callbackRequest = CallbackRequest.of(referentialName, referentialsToReplace, availableReferentials); - Map<String, String> referentialsToReplaceIds = callback.askUserToReplaceDisabledReferentials(callbackRequest); - for (Map.Entry<String, String> entry : referentialsToReplaceIds.entrySet()) { - builder.entityToReplace(entry.getKey(), entry.getValue()); - } - + Set<ReferentialReference<R>> blockingReferentialsToRemove = localService.getLocalSourceReferentialToDelete(referentialName, blockingIdsToRemove); + CallbackRequest<R> callbackRequest = CallbackRequest.of(referentialName, blockingReferentialsToRemove, availableReferentials); + Map<String, String> referentialsToRemoveIds = callback.askUserToReplaceRemovedReferentials(callbackRequest); + for (Map.Entry<String, String> entry : referentialsToRemoveIds.entrySet()) { + builder.entityToReplace(entry.getKey(), entry.getValue()); + builder.entityToRemove(entry.getKey()); } } diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/actions/synchro/UnidirectionalReferentialSynchronizeRemoteServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/actions/synchro/UnidirectionalReferentialSynchronizeRemoteServiceTopia.java index fb2dcc6..f2e33ac 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/actions/synchro/UnidirectionalReferentialSynchronizeRemoteServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/actions/synchro/UnidirectionalReferentialSynchronizeRemoteServiceTopia.java @@ -9,7 +9,6 @@ import fr.ird.observe.services.ObserveServiceTopia; import fr.ird.observe.services.binder.BinderEngine; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialDto; -import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.ReferentialReferenceSet; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -97,13 +96,6 @@ public class UnidirectionalReferentialSynchronizeRemoteServiceTopia extends Obse result.addReferentialToUpdate(entityName, dto); } - if (centralReferentialEntity.isDisabled() && !localReferentialDisabled.contains(id)) { - - // entité qui passe en mode désactivé, il faudra que l'utilisateur la change - ReferentialReference<ReferentialDto> referentialReference = binderEngine.transformEntityToReferentialReferenceDto(referentialLocale, centralReferentialEntity); - result.addReferentialToFix(entityName, referentialReference); - } - } // entités supprimées diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/synchro/UnidirectionalSynchronizeReferentialTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/synchro/UnidirectionalSynchronizeReferentialTest.java index 6a00f78..8ce1b83 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/synchro/UnidirectionalSynchronizeReferentialTest.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/synchro/UnidirectionalSynchronizeReferentialTest.java @@ -189,7 +189,6 @@ public class UnidirectionalSynchronizeReferentialTest extends AbstractServiceTop Assert.assertTrue(result.getReferentialRemoved(ObserveEntityEnum.Species.name()).isEmpty()); Assert.assertTrue(result.getReferentialReplaced(ObserveEntityEnum.Species.name()).isEmpty()); - } { Assert.assertTrue(referentialNames.contains(ObserveEntityEnum.Person.name())); @@ -203,7 +202,6 @@ public class UnidirectionalSynchronizeReferentialTest extends AbstractServiceTop Assert.assertFalse(referentialReplaced.isEmpty()); Assert.assertEquals(1, referentialReplaced.size()); Assert.assertTrue(referentialReplaced.contains(Pair.of("fr.ird.observe.entities.referentiel.Person#1355399844272#0.32586441962131485","fr.ird.observe.entities.referentiel.Person#1429515754659#0.322074382333085"))); - } { Assert.assertTrue(referentialNames.contains(ObserveEntityEnum.Vessel.name())); @@ -213,10 +211,7 @@ public class UnidirectionalSynchronizeReferentialTest extends AbstractServiceTop Assert.assertEquals(1, referentialUpdated.size()); Assert.assertTrue(referentialUpdated.contains("fr.ird.observe.entities.referentiel.Vessel#1306847717532#0.7435948873477364")); Assert.assertTrue(result.getReferentialRemoved(ObserveEntityEnum.Vessel.name()).isEmpty()); - Collection<Pair<String, String>> referentialReplaced = result.getReferentialReplaced(ObserveEntityEnum.Vessel.name()); - Assert.assertFalse(referentialReplaced.isEmpty()); - Assert.assertEquals(1, referentialReplaced.size()); - Assert.assertTrue(referentialReplaced.contains(Pair.of("fr.ird.observe.entities.referentiel.Vessel#1306847717532#0.7435948873477364", "fr.ird.observe.entities.referentiel.Vessel#1429515781110#0.833177504362538"))); + Assert.assertTrue(result.getReferentialReplaced(ObserveEntityEnum.Vessel.name()).isEmpty()); } } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.