This is an automated email from the git hooks/post-receive script. New commit to branch feature/7739 in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git commit bad8e552157019e06b17dcf9e99dda52db26beb8 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Jul 18 11:54:54 2016 +0200 Séparation en deux la préparation des requètes sql à jouer et leur application (See #7739) --- .../observe/ui/admin/save/SaveLocalUIHandler.java | 240 +++------------------ .../ui/admin/synchronize/SynchronizeUIHandler.java | 77 +------ .../observe-application-swing_en_GB.properties | 1 + .../observe-application-swing_es_ES.properties | 1 + .../observe-application-swing_fr_FR.properties | 1 + ...nidirectionalReferentialSynchronizeContext.java | 11 + ...UnidirectionalReferentialSynchronizeEngine.java | 13 +- .../UnidirectionalSynchronizeReferentialTest.java | 10 +- 8 files changed, 59 insertions(+), 295 deletions(-) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/save/SaveLocalUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/save/SaveLocalUIHandler.java index 2fd3ece..5f51ece 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/save/SaveLocalUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/save/SaveLocalUIHandler.java @@ -24,10 +24,13 @@ package fr.ird.observe.ui.admin.save; import fr.ird.observe.db.ObserveSwingDataSource; import fr.ird.observe.services.service.SqlScriptProducerRequest; import fr.ird.observe.services.service.SqlScriptProducerService; +import fr.ird.observe.services.service.actions.synchro.UnidirectionalReferentialSynchronizeContext; +import fr.ird.observe.services.service.actions.synchro.UnidirectionalReferentialSynchronizeEngine; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.admin.AdminStep; import fr.ird.observe.ui.admin.AdminTabUIHandler; import fr.ird.observe.ui.admin.AdminUI; +import fr.ird.observe.ui.admin.synchronize.SynchronizeModel; import jaxx.runtime.swing.wizard.ext.WizardState; import org.apache.commons.io.IOUtils; import org.apache.commons.logging.Log; @@ -36,7 +39,6 @@ import org.apache.commons.logging.LogFactory; import java.io.File; import java.io.FileOutputStream; import java.util.Date; -import java.util.concurrent.Callable; import static org.nuiton.i18n.I18n.t; @@ -125,15 +127,8 @@ public class SaveLocalUIHandler extends AdminTabUIHandler { public void doStartAction() { - addAdminWorker( - getUi().getStartAction().getToolTipText(), - new Callable<WizardState>() { - @Override - public WizardState call() throws Exception { - return doAction(); - } - } - ); + addAdminWorker(getUi().getStartAction().getToolTipText(), this::doAction); + } public WizardState doAction() throws Exception { @@ -169,217 +164,30 @@ public class SaveLocalUIHandler extends AdminTabUIHandler { } -// if (stepModel.containsStepForsave(AdminStep.SYNCHRONIZE)) { -// -// sendMessage("Sauvegarde du référentiel."); -// saveReferentiel(); -// } + if (stepModel.containsStepForsave(AdminStep.SYNCHRONIZE)) { + + sendMessage("Sauvegarde du référentiel."); + saveUnidirectionalSynchronizeReferential(); + } sendMessage(t("observe.message.synchro.operation.done", new Date())); return WizardState.SUCCESSED; } -// public void saveReferentiel() throws Exception { -// -// List<String> ids; -// -// SynchronizeModel stepModel = getModel().getSynchronizeReferentielModel(); -// -// ObserveSwingDataSource referentielSource = stepModel.getTmpSource(); -// if (referentielSource == null) { -// -// // pas de base temporaire -// // on travaille directement sur la base central -// referentielSource = stepModel.getCentralSource(); -// } -// ObserveSwingDataSource targetSource = stepModel.getSource(); -// -// //FIXME -//// DiffState.DiffStateMap diff = stepModel.getDiff(); -//// -//// String txName = "saveReferentiel"; -//// TopiaContext targetTx = beginTransaction(targetSource, txName); -//// try { -//// TopiaContext sourceTx = beginTransaction(referentielSource, txName); -//// try { -//// // ajout des nouvelles entites du referentiel -//// -//// ids = diff.get(DiffState.NEW); -//// if (CollectionUtils.isNotEmpty(ids)) { -//// for (String id : ids) { -//// //FIXME on doit s'assurer de l'orde d'injection des entites -//// TopiaEntity entity = sourceTx.findByTopiaId(id); -//// String message = t("observe.synchro.add.object", id); -//// sendMessage(message); -//// sourceTx.replicateEntity(targetTx, entity); -//// -//// // On est obligé de commiter à chaque ajout sinon si -//// // une autre entité à ajouter depend de celle là, on -//// // ne la retrouve pas -//// // -//// commitTransaction(targetSource, targetTx, txName); -//// if (log.isDebugEnabled()) { -//// log.debug("add [" + id + "] : " + targetTx.findByTopiaId(id)); -//// } -//// } -//// } -//// -//// // mis a jour des entites modifiees -//// -//// ids = diff.get(DiffState.MODIFIED); -//// if (CollectionUtils.isNotEmpty(ids)) { -//// -//// for (String id : ids) { -//// -//// copyEntity(stepModel, sourceTx, targetTx, id); -//// } -//// } -//// -//// // mise à jour des données utilisateurs (remplacements d'objets obsolètes) -//// -//// for (SynchronizeUIHandler.ObsoleteRefReplaceAction action : stepModel.getReplaceActions()) { -//// -//// String message = t("observe.synchro.replaceObsolete.object", action.getObsoleteId()); -//// sendMessage(message); -//// -//// action.doAction(targetTx); -//// } -//// -//// // si on ne commite pas ici, les modifications utilisateurs -//// // sont perdues -//// commitTransaction(targetSource, targetTx, txName); -//// -//// // suppression des entités obsoletes de la base source -//// -//// ids = diff.get(DiffState.REMOVED); -//// if (CollectionUtils.isNotEmpty(ids)) { -//// for (String id : ids) { -//// String message = t("observe.synchro.remove.object", id); -//// sendMessage(message); -//// TopiaEntity entity = targetTx.findByTopiaId(id); -//// getDAO(targetTx, entity).delete(entity); -//// } -//// } -//// -//// Map<TopiaEntity, Long> versionsToUpdate = -//// stepModel.getVersionsToUpdate(); -//// -//// if (MapUtils.isNotEmpty(versionsToUpdate)) { -//// -//// // on applique le patch sur les versions pour bien avoir -//// // la bonne version de topiaversion et pas seulement un incrément -//// // de 1 puisque ce champs est géré par hibernate et qu'il ne nous laisse -//// // pas la possibilité de choisir la valeur qu'on veut attribuer au champs... -//// patchTopiaVersions((TopiaContextImplementor) targetTx, versionsToUpdate); -//// } -//// -//// commitTransaction(targetSource, targetTx, txName); -//// } finally { -//// try { -//// rollbackTransaction(referentielSource, sourceTx, txName); -//// } finally { -//// closeTransaction(referentielSource, sourceTx, txName); -//// } -//// } -//// } catch (Exception e) { -//// rollbackTransaction(targetSource, targetTx, txName); -//// throw e; -//// } finally { -//// closeTransaction(targetSource, targetTx, txName); -//// } -// } - - //FIXME -// protected <E extends TopiaEntity> void copyEntity(SynchronizeModel synchronizeModel, -// TopiaContext sourceTx, -// TopiaContext targetTx, -// String id) throws TopiaException { -// -// E source = (E) sourceTx.findByTopiaId(id); -// -// long sourceVersion = source.getTopiaVersion(); -// -// String message = t("observe.synchro.update.object", source.getTopiaId(), sourceVersion); -// sendMessage(message); -// -// TopiaDAO<E> dao = ObserveDAOHelper.<E, TopiaDAO<E>>getDAO(targetTx, source); -// -// E target = dao.findByTopiaId(source.getTopiaId()); -// -// long targetVersion = target.getTopiaVersion(); -// -// // bind new entity to old one -// copyEntity(targetTx, source, target); -// -// if (targetVersion < sourceVersion) { -// //FIXME chemit : si la version n'est pas exactement celle voulue, -// // on positionner à la main la version( hibernate ne nous permet -// // pas de le faire -// if (log.isDebugEnabled()) { -// message = "register [" + source.getTopiaId() + -// "] to update version " + sourceVersion + -// " to " + targetVersion; -// log.debug(message); -// } -// synchronizeModel.getVersionsToUpdate().put(target, sourceVersion); -// } -// -// // wants to have exactly the same topiaversion after commit -// target.setTopiaVersion(source.getTopiaVersion() - 1); -// -// dao.update(target); -// } -// - //FIXME -// protected <E extends TopiaEntity> void copyEntity(TopiaContext targetTx, E source, E target) throws TopiaException { -// -// getBinderService().simpleCopy(source, target, false); -// -// if (source instanceof Species) { -// -// // Need also to bind ocean -// getDataService().copyAssociation(Species.class, Ocean.class, Species.PROPERTY_OCEAN, (Species) source, (Species) target, targetTx); -// -// } else if (source instanceof SpeciesList) { -// -// // Need also to bind species -// getDataService().copyAssociation(SpeciesList.class, Species.class, SpeciesList.PROPERTY_SPECIES, (SpeciesList) source, (SpeciesList) target, targetTx); -// -// } -// -// } -// - //FIXME -// protected void patchTopiaVersions(TopiaContextImplementor sourceCtxt, -// Map<TopiaEntity, Long> versionsToUpdate) throws TopiaException { -// -// final StringBuilder buffer = new StringBuilder(); -// -// for (Map.Entry<TopiaEntity, Long> entry : -// versionsToUpdate.entrySet()) { -// TopiaEntity entity = entry.getKey(); -// String id = entity.getTopiaId(); -// Long version = entry.getValue(); -// String tableName = Entities.getTableName(entity); -// buffer.append(String.format(UPDATE_VERSION_PATTERN, tableName, version, id)); -// -// } -// sourceCtxt.getHibernate().doWork(new Work() { -// @Override -// public void execute(Connection connection) throws SQLException { -// String sql = buffer.toString(); -// PreparedStatement sta = connection.prepareStatement(sql); -// try { -// if (log.isDebugEnabled()) { -// log.debug("Will execute sql code :\n" + sql); -// } -// sta.executeUpdate(); -// } finally { -// sta.close(); -// } -// } -// }); -// } + public void saveUnidirectionalSynchronizeReferential() throws Exception { + + SynchronizeModel stepModel = getModel().getSynchronizeReferentielModel(); + + UnidirectionalReferentialSynchronizeEngine engine = stepModel.getEngine(); + + UnidirectionalReferentialSynchronizeContext referentialSynchronizeContext = stepModel.getReferentialSynchronizeContext(); + + engine.finish(referentialSynchronizeContext); + + + sendMessage(t("observe.message.synchro.apply.done", new Date())); + + } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/synchronize/SynchronizeUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/synchronize/SynchronizeUIHandler.java index 94fde71..d763900 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/synchronize/SynchronizeUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/synchronize/SynchronizeUIHandler.java @@ -30,6 +30,7 @@ import fr.ird.observe.services.service.actions.synchro.UnidirectionalReferential import fr.ird.observe.services.service.actions.synchro.UnidirectionalReferentialSynchronizeContext; import fr.ird.observe.services.service.actions.synchro.UnidirectionalReferentialSynchronizeEngine; import fr.ird.observe.services.service.actions.synchro.UnidirectionalReferentialSynchronizeResult; +import fr.ird.observe.ui.admin.AdminStep; import fr.ird.observe.ui.admin.AdminTabUIHandler; import fr.ird.observe.ui.admin.AdminUI; import fr.ird.observe.ui.util.decorator.ReferentialReferenceDecorator; @@ -280,7 +281,7 @@ public class SynchronizeUIHandler extends AdminTabUIHandler { UnidirectionalReferentialSynchronizeCallbackResults referentialSynchronizeCallbackResults = stepModel.getReferentialSynchronizeCallbackResults(); - UnidirectionalReferentialSynchronizeResult referentialSynchronizeResult = engine.finish(referentialSynchronizeContext, referentialSynchronizeCallbackResults); + UnidirectionalReferentialSynchronizeResult referentialSynchronizeResult = engine.prepareResult(referentialSynchronizeContext, referentialSynchronizeCallbackResults); stepModel.setReferentialSynchronizeResult(referentialSynchronizeResult); if (referentialSynchronizeResult.isEmpty()) { @@ -333,81 +334,13 @@ public class SynchronizeUIHandler extends AdminTabUIHandler { } + getModel().getSaveLocalModel().setLocalSourceNeedSave(true); + getModel().getSaveLocalModel().addStepForSave(AdminStep.SYNCHRONIZE); + } sendMessage(t("observe.message.synchro.operation.done", new Date())); } - -// public void changeSafeRefsComboBox(ObsoleteReferentialReference referentialReference) { -// -// SynchronizeUI ui = getUi(); -// -// String key = referentialReference.getReferentialName(); -// CardLayout2 safeRefsPanelLayout = ui.getSafeRefsPanelLayout(); -// JPanel safeRefsPanel = ui.getSafeRefsPanel(); -// if (safeRefsPanelLayout.contains(key)) { -// -// // la liste déroulante existe deja pour ce type -// BeanComboBox<?> list = (BeanComboBox<?>) safeRefsPanelLayout.getComponent(safeRefsPanel, key); -// -// if (!getSafeComboBox().equals(list)) { -// -// // on l'affiche -// safeRefsPanelLayout.show(safeRefsPanel, key); -// -// } -// -// } else { -// -// ReferentialReferenceDecorator decorator = getDecoratorService().getReferentialReferenceDecorator(referentialReference.getReferentialReference().getType()); -// -// UnidirectionalReferentialSynchronizeCallbackRequest<?> callbackRequest = getStepModel().getReferentialSynchronizeContext().getCallbackRequests().getCallbackRequest(key); -// ImmutableSet<? extends ReferentialReference<?>> availableReferentials = callbackRequest.getAvailableReferentials(); -// -// List<ReferentialReference> data = new ArrayList<>(availableReferentials); -// -// // la liste n'existe pas encore -// BeanComboBox<ReferentialReference> box = new BeanComboBox<>(ui); -// box.setBean(this); -// box.setProperty("safeEntity"); -// box.setShowReset(true); -// box.addPropertyChangeListener("selectedItem", evt -> updateCanApply()); -// safeRefsPanel.add(box, key); -// box.init(decorator, data); -// -// safeRefsPanelLayout.show(safeRefsPanel, key); -// -// } -// } - -// @Override -// public void updateState(AdminTabUI tabUI, WizardState newState) { -// -// super.updateState(tabUI, newState); -// SynchronizeModel stepModel = getStepModel(); -// -// if (WizardState.NEED_FIX == newState) { -// -// // des références obsolètes ont été détectées, on prépare les interfaces graphiques -// // avec les données à corriger -// -// List<ObsoleteReferentialReference> obsoleteReferentialReferences = new LinkedList<>(); -// UnidirectionalReferentialSynchronizeCallbackRequests callbackRequests = stepModel.getReferentialSynchronizeContext().getCallbackRequests(); -// -// for (UnidirectionalReferentialSynchronizeCallbackRequest<?> callbackRequest : callbackRequests) { -// -// String referentialName = callbackRequest.getReferentialName(); -// -// for (ReferentialReference<?> referentialReference : callbackRequest.getReferentialsToReplace()) { -// obsoleteReferentialReferences.add(new ObsoleteReferentialReference(referentialName, referentialReference)); -// } -// } -// -// getStepModel().setObsoleteReferences(obsoleteReferentialReferences); -// -// } -// } - } \ No newline at end of file diff --git a/observe-application-swing/src/main/resources/i18n/observe-application-swing_en_GB.properties b/observe-application-swing/src/main/resources/i18n/observe-application-swing_en_GB.properties index 89c7d0c..769a44a 100644 --- a/observe-application-swing/src/main/resources/i18n/observe-application-swing_en_GB.properties +++ b/observe-application-swing/src/main/resources/i18n/observe-application-swing_en_GB.properties @@ -1544,6 +1544,7 @@ observe.message.show.usage.for.desactivated= observe.message.show.usage.for.desactivated2= observe.message.show.usage.for.desactivated3= observe.message.show.usages= +observe.message.synchro.apply.done= observe.message.synchro.build.diff= observe.message.synchro.create.temporary.db.to.resolve.obsoletes= observe.message.synchro.local.modification= diff --git a/observe-application-swing/src/main/resources/i18n/observe-application-swing_es_ES.properties b/observe-application-swing/src/main/resources/i18n/observe-application-swing_es_ES.properties index 05b92e9..8035953 100644 --- a/observe-application-swing/src/main/resources/i18n/observe-application-swing_es_ES.properties +++ b/observe-application-swing/src/main/resources/i18n/observe-application-swing_es_ES.properties @@ -1546,6 +1546,7 @@ observe.message.show.usage.for.desactivated=El referencial %1$s "%2$s" se desact observe.message.show.usage.for.desactivated2=Los objetos están usando actualmente las referencias que se enumeran a continuación.. observe.message.show.usage.for.desactivated3=Estos objetos deben usar otro referencial (no desactivado) para poder actualizarse. observe.message.show.usages=Listas de usos de referenciales %1$s \: '%2$s' +observe.message.synchro.apply.done= observe.message.synchro.build.diff=Construcción del diferencial de referenciales desde\: %1$s observe.message.synchro.create.temporary.db.to.resolve.obsoletes=Se han detectado elementos obsoletos, para resolverso se creará una base temporal observe.message.synchro.local.modification=Los datos que han sido modificados en la base local deben ser guardados. diff --git a/observe-application-swing/src/main/resources/i18n/observe-application-swing_fr_FR.properties b/observe-application-swing/src/main/resources/i18n/observe-application-swing_fr_FR.properties index 07ae77a..869b8c0 100644 --- a/observe-application-swing/src/main/resources/i18n/observe-application-swing_fr_FR.properties +++ b/observe-application-swing/src/main/resources/i18n/observe-application-swing_fr_FR.properties @@ -1533,6 +1533,7 @@ observe.message.show.usage.for.desactivated=Le référentiel %1$s "%2$s" va êtr observe.message.show.usage.for.desactivated2=Des objets utilisent actuellement cet entité dont les références sont citées plus bas. observe.message.show.usage.for.desactivated3=Ces objets devront utiliser un autre référentiel (non désactivé) pour pouvoir être mis à jour. observe.message.show.usages=Listes des utilisations du référentiel %1$s \: '%2$s' +observe.message.synchro.apply.done=Référentiel mise à jour le %1$td/%1$tm/%1$tY à %1$tH\:%1$tM\:%1$tS observe.message.synchro.build.diff=Construction du différentiel de référentiel depuis %1$s observe.message.synchro.create.temporary.db.to.resolve.obsoletes=Des entités obsolètes ont été détectées, création d'une base temporaire pour les résoudre. observe.message.synchro.local.modification=Des données ont été modifiées et la base locale doit être sauvée. diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/synchro/UnidirectionalReferentialSynchronizeContext.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/synchro/UnidirectionalReferentialSynchronizeContext.java index 5e9c0b7..799959d 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/synchro/UnidirectionalReferentialSynchronizeContext.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/synchro/UnidirectionalReferentialSynchronizeContext.java @@ -2,6 +2,8 @@ package fr.ird.observe.services.service.actions.synchro; import com.google.common.collect.ImmutableSet; +import java.util.Set; + /** * Created on 12/07/16. * @@ -12,6 +14,7 @@ public class UnidirectionalReferentialSynchronizeContext { private final ImmutableSet<UnidirectionalReferentialSynchronizeRequest.Builder<?>> referentialSynchronizeRequestBuilders; private final UnidirectionalReferentialSynchronizeCallbackRequests callbackRequests; + private Set<String> sqlRequests; public UnidirectionalReferentialSynchronizeContext(ImmutableSet<UnidirectionalReferentialSynchronizeRequest.Builder<?>> referentialSynchronizeRequestBuilders, UnidirectionalReferentialSynchronizeCallbackRequests callbackRequests) { this.referentialSynchronizeRequestBuilders = referentialSynchronizeRequestBuilders; @@ -30,4 +33,12 @@ public class UnidirectionalReferentialSynchronizeContext { public boolean isNeedCallback() { return callbackRequests.isNotEmpty(); } + + public void setSqlRequests(Set<String> sqlRequests) { + this.sqlRequests = sqlRequests; + } + + public Set<String> getSqlRequests() { + return sqlRequests; + } } 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 7cb3bd8..0b83ff9 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 @@ -59,7 +59,7 @@ public class UnidirectionalReferentialSynchronizeEngine { } - public UnidirectionalReferentialSynchronizeResult finish(UnidirectionalReferentialSynchronizeContext context, UnidirectionalReferentialSynchronizeCallbackResults callbackResults) { + public UnidirectionalReferentialSynchronizeResult prepareResult(UnidirectionalReferentialSynchronizeContext context, UnidirectionalReferentialSynchronizeCallbackResults callbackResults) { UnidirectionalReferentialSynchronizeResult result = new UnidirectionalReferentialSynchronizeResult(); @@ -96,12 +96,19 @@ public class UnidirectionalReferentialSynchronizeEngine { } + context.setSqlRequests(sqlRequests); + + return result; + + } + + public void finish(UnidirectionalReferentialSynchronizeContext context) { + + Set<String> sqlRequests = context.getSqlRequests(); localService.applySqlRequests(sqlRequests); //FIXME Mettre à jour la table LastUpdateDate pour les référentiels touchés et les données aussi... - return result; - } private <R extends ReferentialDto> UnidirectionalReferentialSynchronizeRequest.Builder<R> computeReferentialSynchronizeRequestBuilder(String referentialName, RemoteReferentialDiff remoteReferentialDiff, UnidirectionalReferentialSynchronizeCallbackRequests callbackRequests) { 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 0bdb0c0..d53f10a 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 @@ -52,7 +52,8 @@ public class UnidirectionalSynchronizeReferentialTest extends AbstractServiceTop UnidirectionalReferentialSynchronizeEngine referentialSynchronizeEngine = new UnidirectionalReferentialSynchronizeEngine(localService, remoteService); UnidirectionalReferentialSynchronizeContext unidirectionalReferentialSynchronizeContext = referentialSynchronizeEngine.prepareContext(); - UnidirectionalReferentialSynchronizeResult result = referentialSynchronizeEngine.finish(unidirectionalReferentialSynchronizeContext, null); + UnidirectionalReferentialSynchronizeResult result = referentialSynchronizeEngine.prepareResult(unidirectionalReferentialSynchronizeContext, null); + referentialSynchronizeEngine.finish(unidirectionalReferentialSynchronizeContext); Assert.assertNotNull(result); Set<String> referentialNames = result.getReferentialNames(); @@ -82,7 +83,8 @@ public class UnidirectionalSynchronizeReferentialTest extends AbstractServiceTop UnidirectionalReferentialSynchronizeEngine referentialSynchronizeEngine = new UnidirectionalReferentialSynchronizeEngine(localService, remoteService); UnidirectionalReferentialSynchronizeContext unidirectionalReferentialSynchronizeContext = referentialSynchronizeEngine.prepareContext(); - UnidirectionalReferentialSynchronizeResult result = referentialSynchronizeEngine.finish(unidirectionalReferentialSynchronizeContext, null); + UnidirectionalReferentialSynchronizeResult result = referentialSynchronizeEngine.prepareResult(unidirectionalReferentialSynchronizeContext, null); + referentialSynchronizeEngine.finish(unidirectionalReferentialSynchronizeContext); Assert.assertNotNull(result); Set<String> referentialNames = result.getReferentialNames(); @@ -109,14 +111,14 @@ public class UnidirectionalSynchronizeReferentialTest extends AbstractServiceTop public void testSynchronizeWithAllChanges() { - UnidirectionalReferentialSynchronizeEngine referentialSynchronizeEngine = new UnidirectionalReferentialSynchronizeEngine(localService, remoteService); UnidirectionalReferentialSynchronizeContext unidirectionalReferentialSynchronizeContext = referentialSynchronizeEngine.prepareContext(); UnidirectionalReferentialSynchronizeCallbackResults results = new UnidirectionalReferentialSynchronizeCallbackResults(); results.addCallbackResult(ObserveEntityEnum.Person.name(), "fr.ird.observe.entities.referentiel.Person#1355399844272#0.32586441962131485", "fr.ird.observe.entities.referentiel.Person#1429515754659#0.322074382333085"); - UnidirectionalReferentialSynchronizeResult result = referentialSynchronizeEngine.finish(unidirectionalReferentialSynchronizeContext, results); + UnidirectionalReferentialSynchronizeResult result = referentialSynchronizeEngine.prepareResult(unidirectionalReferentialSynchronizeContext, results); + referentialSynchronizeEngine.finish(unidirectionalReferentialSynchronizeContext); Assert.assertNotNull(result); Set<String> referentialNames = result.getReferentialNames(); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.