mailman.cloud.codelutin.com
Sign In Sign Up
Manage this list Sign In Sign Up

Keyboard Shortcuts

Thread View

  • j: Next unread message
  • k: Previous unread message
  • j a: Jump to all threads
  • j l: Jump to MailingList overview

Observe-commits

Thread Start a new thread
Download
Threads by month
  • ----- 2026 -----
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2025 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2024 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2023 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2022 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2021 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2020 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2019 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2018 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2017 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2016 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2015 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2014 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2013 -----
  • December
  • November
  • October
  • September
observe-commits@list.forge.codelutin.com

May 2020

  • 1 participants
  • 77 discussions
[Git][ultreiaio/ird-observe][develop-7.x] 3 commits: [SYNCHRO MAREES] L'assistant demande un remplacement de code manquant, même si...
by Tony CHEMIT 18 May '20

18 May '20
Tony CHEMIT pushed to branch develop-7.x at ultreiaio / ird-observe Commits: 5ad12da3 by Tony Chemit at 2020-05-18T12:41:05+02:00 [SYNCHRO MAREES] L&#39;assistant demande un remplacement de code manquant, même si celui-ci n&#39;est pas utilisé par les données (Do not take account of referential usages) - See #1432 - - - - - 4b175471 by Tony Chemit at 2020-05-18T12:41:21+02:00 Ne pas sauvegarder automatiquement la base locale lors d&#39;une action longue - Close #1487 - - - - - a0611f51 by Tony Chemit at 2020-05-18T12:56:36+02:00 [SYNCHRO MAREES] L&#39;assistant demande un remplacement de code manquant, même si celui-ci n&#39;est pas utilisé par les données (Improve generator code) - See #1432 - - - - - 10 changed files: - client-core/src/main/java/fr/ird/observe/client/ui/admin/AdminUIHandler.java - services-local/src/main/java/fr/ird/observe/services/local/service/actions/synchro/referential/legacy/UnidirectionalReferentialSynchronizeLocalServiceLocal.java - services-local/src/main/java/fr/ird/observe/services/local/service/actions/synchro/referential/ng/ReferentialSynchronizeSqlListRequestBuilder.java - services-local/src/main/java/fr/ird/observe/services/local/service/actions/synchro/referential/sql/InsertSqlGenerator.java - services-local/src/main/java/fr/ird/observe/services/local/service/actions/synchro/referential/sql/InsertSqlStatementGenerator.java - services-local/src/main/java/fr/ird/observe/services/local/service/actions/synchro/referential/sql/InsertSqlWithCascadeStatementGenerator.java - services-local/src/main/java/fr/ird/observe/services/local/service/actions/synchro/referential/sql/UpdateSqlGenerator.java - services-local/src/main/java/fr/ird/observe/services/local/service/actions/synchro/referential/sql/UpdateSqlStatementGenerator.java - services-local/src/main/java/fr/ird/observe/services/local/service/actions/synchro/referential/sql/UpdateSqlWithCascadeStatementGenerator.java - + services-local/src/main/java/fr/ird/observe/services/local/service/actions/synchro/referential/sql/WithCascadeStatementGenerator.java Changes: ===================================== client-core/src/main/java/fr/ird/observe/client/ui/admin/AdminUIHandler.java ===================================== @@ -45,6 +45,7 @@ import org.nuiton.jaxx.runtime.swing.wizard.ext.WizardState; import javax.swing.Icon; import javax.swing.JCheckBox; import javax.swing.JComponent; +import javax.swing.SwingUtilities; import javax.swing.border.TitledBorder; import java.awt.Component; import java.util.Arrays; @@ -281,7 +282,9 @@ public class AdminUIHandler implements UIHandler<AdminUI> { if (ui.getModel().getStepState(AdminStep.SAVE_LOCAL) == WizardState.PENDING) { SaveLocalUI tabUI = (SaveLocalUI) ui.getStepUI(AdminStep.SAVE_LOCAL); - tabUI.getStartAction().doClick(); + if (!tabUI.getStepModel().isLocalSourceNeedSave()) { + SwingUtilities.invokeLater(tabUI.getContinueAction()::doClick); + } } } ===================================== services-local/src/main/java/fr/ird/observe/services/local/service/actions/synchro/referential/legacy/UnidirectionalReferentialSynchronizeLocalServiceLocal.java ===================================== @@ -110,7 +110,7 @@ public class UnidirectionalReferentialSynchronizeLocalServiceLocal extends Obser TopiaMetadataEntity metadataEntity = metadataModel.getEntity(referentielName); if (request.withReferentialToAdd()) { - InsertSqlStatementGenerator<D> sqlStatementGenerator = new InsertSqlStatementGenerator<>(metadataModel, metadataEntity, dtoType); + InsertSqlStatementGenerator sqlStatementGenerator = new InsertSqlStatementGenerator(metadataModel, metadataEntity); ImmutableSet<D> referentialToAdd = request.getReferentialToAdd(); if (ObjectMaterialDto.class.equals(dtoType)) { @@ -127,7 +127,7 @@ public class UnidirectionalReferentialSynchronizeLocalServiceLocal extends Obser if (request.withReferentialToUpdate()) { - UpdateSqlStatementGenerator<D> sqlStatementGenerator = new UpdateSqlStatementGenerator<>(metadataModel, metadataEntity, dtoType); + UpdateSqlStatementGenerator sqlStatementGenerator = new UpdateSqlStatementGenerator(metadataModel, metadataEntity); for (D referentialDto : request.getReferentialToUpdate()) { ImmutableList<String> sql = sqlStatementGenerator.generateSql(referentialDto, null, null); result.addAll(sql); @@ -169,8 +169,11 @@ public class UnidirectionalReferentialSynchronizeLocalServiceLocal extends Obser E e = dao.forTopiaIdEquals(id).findUnique(); Map<Class<? extends TopiaEntity>, List<? extends TopiaEntity>> allUsages = dao.findAllUsages(e); int count = 0; - for (List<? extends TopiaEntity> entities : allUsages.values()) { - count += entities.size(); + for (Map.Entry<Class<? extends TopiaEntity>, List<? extends TopiaEntity>> entry : allUsages.entrySet()) { + if (ObserveReferentialEntity.class.isAssignableFrom(entry.getKey())) { + continue; + } + count+=entry.getValue().size(); } return count; ===================================== services-local/src/main/java/fr/ird/observe/services/local/service/actions/synchro/referential/ng/ReferentialSynchronizeSqlListRequestBuilder.java ===================================== @@ -144,20 +144,13 @@ public class ReferentialSynchronizeSqlListRequestBuilder { Class<E> entityType = binder.getEntityType(); Class<D> dtoType = binder.getDtoType(); List<E> insertEntities = loadEntities(entityType, tasks); - InsertSqlGenerator<D> insertGenerator; + InsertSqlGenerator insertGenerator; if (metadata.withEntities()) { Multimap<Class<? extends ReferentialDto>, String> allIds = ArrayListMultimap.create(request.getIdsOnlyExistingOnThisSide()); allIds.putAll(newIds); - insertGenerator = new InsertSqlWithCascadeStatementGenerator<D>(metadataModel, metadata, dtoType, allIds) { - - @Override - protected <DD extends ReferentialDto> ImmutableList<String> insertMissingReferential(Class<DD> referentialType, String id) { - ReferentialDtoEntityContext<DD, ?, ?> modelContext = DbModelHelper.fromReferentialDto(referentialType); - return addExtraInsertStatement(id, modelContext.toEntityBinder()); - } - }; + insertGenerator = new InsertSqlWithCascadeStatementGenerator(service, metadataModel, metadata, dtoType, allIds); } else { - insertGenerator = new InsertSqlStatementGenerator<>(metadataModel, metadata, dtoType); + insertGenerator = new InsertSqlStatementGenerator(metadataModel, metadata); } for (E entity : insertEntities) { @@ -173,24 +166,13 @@ public class ReferentialSynchronizeSqlListRequestBuilder { private <D extends ReferentialDto, E extends ObserveReferentialEntity> void onUpdate(TopiaMetadataEntity metadata, Set<ReferentialSynchronizeTask> tasks, ReferentialEntityDtoBinderSupport<D, E> binder, Multimap<Class<? extends ReferentialDto>, String> newIds) { - Class<D> dtoType = binder.getDtoType(); - UpdateSqlGenerator<D> updateGenerator; - + UpdateSqlGenerator updateGenerator; if (metadata.withEntities()) { - Multimap<Class<? extends ReferentialDto>, String> allIds = ArrayListMultimap.create(request.getIdsOnlyExistingOnThisSide()); allIds.putAll(newIds); - - updateGenerator = new UpdateSqlWithCascadeStatementGenerator<D>(metadataModel, metadata, dtoType, request.getIdsOnlyExistingOnThisSide()) { - @Override - protected <DD extends ReferentialDto> ImmutableList<String> insertMissingReferential(Class<DD> referentialType, String id) { - ReferentialEntityDtoBinderSupport<DD, ObserveReferentialEntity> binder = DbModelHelper.fromReferentialDto(referentialType).toEntityBinder(); - return addExtraInsertStatement(id, binder); - } - }; - + updateGenerator = new UpdateSqlWithCascadeStatementGenerator(service, metadataModel, metadata, request.getIdsOnlyExistingOnThisSide()); } else { - updateGenerator = new UpdateSqlStatementGenerator<>(metadataModel, metadata, dtoType); + updateGenerator = new UpdateSqlStatementGenerator(metadataModel, metadata); } for (ReferentialSynchronizeTask task : tasks) { @@ -208,7 +190,7 @@ public class ReferentialSynchronizeSqlListRequestBuilder { private <D extends ReferentialDto, E extends ObserveReferentialEntity> void onRevert(TopiaMetadataEntity metadata, Set<ReferentialSynchronizeTask> tasks, ReferentialEntityDtoBinderSupport<D, E> binder) { - UpdateSqlStatementGenerator<D> updateGenerator = new UpdateSqlStatementGenerator<>(metadataModel, metadata, binder.getDtoType()); + UpdateSqlStatementGenerator updateGenerator = new UpdateSqlStatementGenerator(metadataModel, metadata); for (ReferentialSynchronizeTask task : tasks) { E entity = loadEntity(task); D referential = binder.toDto(referentialLocale, entity); @@ -279,20 +261,6 @@ public class ReferentialSynchronizeSqlListRequestBuilder { } - private <D extends ReferentialDto, E extends ObserveReferentialEntity> ImmutableList<String> addExtraInsertStatement(String id, ReferentialEntityDtoBinderSupport<D, E> binder) { - - Class<E> entityType = binder.getEntityType(); - Class<D> dtoType = binder.getDtoType(); - String referentialName = ObserveEntityEnum.valueOf(entityType).name(); - TopiaMetadataEntity metadata = metadataModel.getEntity(referentialName); - - InsertSqlStatementGenerator<D> insertGenerator = new InsertSqlStatementGenerator<>(metadataModel, metadata, dtoType); - D referential = service.loadEntityToReferentialDto(binder, id); - - return insertGenerator.generateSql(referential); - - } - private <E extends ObserveReferentialEntity> List<E> loadEntities(Class<E> entityType, Set<ReferentialSynchronizeTask> tasks) { Set<String> ids = tasks.stream().map(ReferentialSynchronizeTask::getReferentialId).collect(Collectors.toSet()); return service.getTopiaPersistenceContext().loadEntities(entityType, ids); ===================================== services-local/src/main/java/fr/ird/observe/services/local/service/actions/synchro/referential/sql/InsertSqlGenerator.java ===================================== @@ -29,7 +29,7 @@ import fr.ird.observe.dto.referential.ReferentialDto; * @author Tony Chemit - dev(a)tchemit.fr * @since ? */ -public interface InsertSqlGenerator<D extends ReferentialDto> { +public interface InsertSqlGenerator { - ImmutableList<String> generateSql(D referentialDto); + ImmutableList<String> generateSql(ReferentialDto referentialDto); } ===================================== services-local/src/main/java/fr/ird/observe/services/local/service/actions/synchro/referential/sql/InsertSqlStatementGenerator.java ===================================== @@ -48,7 +48,7 @@ import java.util.Set; * * @author Tony Chemit - dev(a)tchemit.fr */ -public class InsertSqlStatementGenerator<D extends ReferentialDto> implements InsertSqlGenerator<D> { +public class InsertSqlStatementGenerator implements InsertSqlGenerator { private final TopiaMetadataEntity metadataEntity; private final Set<TopiaMetadataComposition> compositions; @@ -61,7 +61,7 @@ public class InsertSqlStatementGenerator<D extends ReferentialDto> implements In private final Set<String> primitiveLongPropertyNames; private final Set<String> primitiveFloatPropertyNames; - public InsertSqlStatementGenerator(TopiaMetadataModel topiaMetadataModel, TopiaMetadataEntity metadataEntity, Class<D> dtoType) { + public InsertSqlStatementGenerator(TopiaMetadataModel topiaMetadataModel, TopiaMetadataEntity metadataEntity) { this.metadataEntity = Objects.requireNonNull(metadataEntity); this.compositions = topiaMetadataModel.getCompositions(this.metadataEntity); this.associations = topiaMetadataModel.getAssociations(this.metadataEntity); @@ -79,7 +79,7 @@ public class InsertSqlStatementGenerator<D extends ReferentialDto> implements In @SuppressWarnings("unchecked") @Override - public ImmutableList<String> generateSql(D referentialDto) { + public ImmutableList<String> generateSql(ReferentialDto referentialDto) { ImmutableList.Builder<String> result = ImmutableList.builder(); @@ -153,9 +153,8 @@ public class InsertSqlStatementGenerator<D extends ReferentialDto> implements In for (TopiaMetadataAssociation association : associations) { Collection<ReferentialDtoReference<?, ?>> associationValues = referentialDto.get(association.getTargetPropertyName()); - for (ReferentialDtoReference<?, ?> associationValue : associationValues) { - String insertAssocationSql = TopiaSqlStatements.generateAssociationInsertStatement(association, id, associationValue.getId()); - result.add(TopiaSqlStatements.boxAssociationStatement(insertAssocationSql)); + for (@SuppressWarnings("rawtypes") ReferentialDtoReference associationValue : associationValues) { + addAssociation(association, id, associationValue, result); } } return result.build(); ===================================== services-local/src/main/java/fr/ird/observe/services/local/service/actions/synchro/referential/sql/InsertSqlWithCascadeStatementGenerator.java ===================================== @@ -26,6 +26,7 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.Multimap; import fr.ird.observe.dto.reference.ReferentialDtoReference; import fr.ird.observe.dto.referential.ReferentialDto; +import fr.ird.observe.services.local.service.actions.synchro.referential.ng.ReferentialSynchronizeServiceLocal; import org.nuiton.topia.persistence.metadata.TopiaMetadataAssociation; import org.nuiton.topia.persistence.metadata.TopiaMetadataEntity; import org.nuiton.topia.persistence.metadata.TopiaMetadataModel; @@ -40,16 +41,17 @@ import java.util.List; * @author Tony Chemit - dev(a)tchemit.fr * @since 5.0 */ -public abstract class InsertSqlWithCascadeStatementGenerator<D extends ReferentialDto> implements InsertSqlGenerator<D>{ +public class InsertSqlWithCascadeStatementGenerator extends WithCascadeStatementGenerator implements InsertSqlGenerator { - private final InsertSqlStatementGenerator<D> delegateGenerator; - private final Multimap<Class<? extends ReferentialDto>, String> idsOnlyExistingOnThisSide; + private final InsertSqlStatementGenerator delegateGenerator; - protected InsertSqlWithCascadeStatementGenerator(TopiaMetadataModel topiaMetadataModel, TopiaMetadataEntity metadataEntity, - Class<D> dtoType, + public InsertSqlWithCascadeStatementGenerator(ReferentialSynchronizeServiceLocal service, + TopiaMetadataModel topiaMetadataModel, + TopiaMetadataEntity metadataEntity, + Class<? extends ReferentialDto> dtoType, Multimap<Class<? extends ReferentialDto>, String> idsOnlyExistingOnThisSide) { - this.idsOnlyExistingOnThisSide = idsOnlyExistingOnThisSide; - this.delegateGenerator = new InsertSqlStatementGenerator<D>(topiaMetadataModel, metadataEntity, dtoType) { + super(service, topiaMetadataModel); + this.delegateGenerator = new InsertSqlStatementGenerator(topiaMetadataModel, metadataEntity) { @Override <DD extends ReferentialDto, RR extends ReferentialDtoReference<DD, RR>> void addAssociation(TopiaMetadataAssociation association, @@ -57,45 +59,26 @@ public abstract class InsertSqlWithCascadeStatementGenerator<D extends Referenti RR associationValue, ImmutableList.Builder<String> builder) { super.addAssociation(association, sourceId, associationValue, builder); - addMissingReferentialIfNecessary(associationValue.getDtoType(), associationValue.getId(), builder); + addMissingReferentialIfNecessary(idsOnlyExistingOnThisSide, associationValue.getDtoType(), associationValue.getId(), builder); } @Override protected <DD extends ReferentialDto, RR extends ReferentialDtoReference<DD, RR>> void addReferentialReferenceParameter(RR parameter, List<String> parameters, ImmutableList.Builder<String> result) { super.addReferentialReferenceParameter(parameter, parameters, result); - addMissingReferentialIfNecessary(parameter.getDtoType(), parameter.getId(), result); + addMissingReferentialIfNecessary(idsOnlyExistingOnThisSide, parameter.getDtoType(), parameter.getId(), result); } @Override protected <DD extends ReferentialDto> void addReferentialDtoParameter(DD parameter, List<String> parameters, ImmutableList.Builder<String> result) { super.addReferentialDtoParameter(parameter, parameters, result); - addMissingReferentialIfNecessary(dtoType, parameter.getId(), result); + addMissingReferentialIfNecessary(idsOnlyExistingOnThisSide, dtoType, parameter.getId(), result); } }; } - protected abstract <DD extends ReferentialDto> ImmutableList<String> insertMissingReferential(Class<DD> referentialType, String id); - @Override - public ImmutableList<String> generateSql(D referentialDto) { - + public ImmutableList<String> generateSql(ReferentialDto referentialDto) { return delegateGenerator.generateSql(referentialDto); - - } - - private <DD extends ReferentialDto> void addMissingReferentialIfNecessary(Class<DD> associationType, String associationId, ImmutableList.Builder<String> builder) { - - if (idsOnlyExistingOnThisSide.containsEntry(associationType, associationId)) { - - // il faut insérer aussi ce référentiel - ImmutableList<String> sql = insertMissingReferential(associationType, associationId); - - builder.addAll(sql); - - // ce référentiel est désormais présent dans les deux sources - idsOnlyExistingOnThisSide.remove(associationType, associationId); - - } } } ===================================== services-local/src/main/java/fr/ird/observe/services/local/service/actions/synchro/referential/sql/UpdateSqlGenerator.java ===================================== @@ -32,7 +32,7 @@ import java.util.Date; * @author Tony Chemit - dev(a)tchemit.fr * @since 5 */ -public interface UpdateSqlGenerator<D extends ReferentialDto> { +public interface UpdateSqlGenerator { /** * Generate update sql requests for the given{@code referentialDto}. ===================================== services-local/src/main/java/fr/ird/observe/services/local/service/actions/synchro/referential/sql/UpdateSqlStatementGenerator.java ===================================== @@ -55,7 +55,7 @@ import java.util.stream.Collectors; * * @author Tony Chemit - dev(a)tchemit.fr */ -public class UpdateSqlStatementGenerator<D extends ReferentialDto>implements UpdateSqlGenerator<D> { +public class UpdateSqlStatementGenerator implements UpdateSqlGenerator { private static final Logger log = LogManager.getLogger(UpdateSqlStatementGenerator.class); private final Map<String, String> columnNames; @@ -69,7 +69,7 @@ public class UpdateSqlStatementGenerator<D extends ReferentialDto>implements Upd private final Set<String> primitiveFloatPropertyNames; private final Set<String> primitiveDoublePropertyNames; - public UpdateSqlStatementGenerator(TopiaMetadataModel topiaMetadataModel, TopiaMetadataEntity metadataEntity, Class<D> dtoType) { + public UpdateSqlStatementGenerator(TopiaMetadataModel topiaMetadataModel, TopiaMetadataEntity metadataEntity) { this.metadataEntity = Objects.requireNonNull(metadataEntity); this.compositions = topiaMetadataModel.getCompositions(metadataEntity); this.associations = topiaMetadataModel.getAssociations(metadataEntity); ===================================== services-local/src/main/java/fr/ird/observe/services/local/service/actions/synchro/referential/sql/UpdateSqlWithCascadeStatementGenerator.java ===================================== @@ -27,6 +27,7 @@ import com.google.common.collect.ImmutableSet; import com.google.common.collect.Multimap; import fr.ird.observe.dto.reference.ReferentialDtoReference; import fr.ird.observe.dto.referential.ReferentialDto; +import fr.ird.observe.services.local.service.actions.synchro.referential.ng.ReferentialSynchronizeServiceLocal; import org.nuiton.topia.persistence.metadata.TopiaMetadataAssociation; import org.nuiton.topia.persistence.metadata.TopiaMetadataEntity; import org.nuiton.topia.persistence.metadata.TopiaMetadataModel; @@ -41,17 +42,16 @@ import java.util.Date; * @author Tony Chemit - dev(a)tchemit.fr * @since 5.0 */ -public abstract class UpdateSqlWithCascadeStatementGenerator<D extends ReferentialDto> implements UpdateSqlGenerator<D> { +public class UpdateSqlWithCascadeStatementGenerator extends WithCascadeStatementGenerator implements UpdateSqlGenerator { - private final UpdateSqlStatementGenerator<D> delegateGenerator; - private final Multimap<Class<? extends ReferentialDto>, String> idsOnlyExistingOnThisSide; + private final UpdateSqlStatementGenerator delegateGenerator; - protected UpdateSqlWithCascadeStatementGenerator(TopiaMetadataModel topiaMetadataModel, + public UpdateSqlWithCascadeStatementGenerator(ReferentialSynchronizeServiceLocal service, + TopiaMetadataModel topiaMetadataModel, TopiaMetadataEntity metadataEntity, - Class<D> dtoType, Multimap<Class<? extends ReferentialDto>, String> idsOnlyExistingOnThisSide) { - this.idsOnlyExistingOnThisSide = idsOnlyExistingOnThisSide; - this.delegateGenerator = new UpdateSqlStatementGenerator<D>(topiaMetadataModel, metadataEntity, dtoType) { + super(service, topiaMetadataModel); + this.delegateGenerator = new UpdateSqlStatementGenerator(topiaMetadataModel, metadataEntity) { <DD extends ReferentialDto, RR extends ReferentialDtoReference<DD, RR>> void addAssociation(TopiaMetadataAssociation association, @@ -59,41 +59,25 @@ public abstract class UpdateSqlWithCascadeStatementGenerator<D extends Referenti RR associationValue, ImmutableList.Builder<String> builder) { super.addAssociation(association, sourceId, associationValue, builder); - addMissingReferentialIfNecessary(associationValue.getDtoType(), associationValue.getId(), builder); + addMissingReferentialIfNecessary(idsOnlyExistingOnThisSide, associationValue.getDtoType(), associationValue.getId(), builder); } @Override protected <DD extends ReferentialDto, RR extends ReferentialDtoReference<DD, RR>> void addReferentialReferenceParameter(String columnName, RR parameter, StringBuilder parameters, ImmutableList.Builder<String> result) { super.addReferentialReferenceParameter(columnName, parameter, parameters, result); - addMissingReferentialIfNecessary(parameter.getDtoType(), parameter.getId(), result); + addMissingReferentialIfNecessary(idsOnlyExistingOnThisSide, parameter.getDtoType(), parameter.getId(), result); } @Override protected <DD extends ReferentialDto> void addReferentialDtoParameter(String columnName, DD parameter, StringBuilder parameters, ImmutableList.Builder<String> result) { super.addReferentialDtoParameter(columnName, parameter, parameters, result); - addMissingReferentialIfNecessary(parameter.getClass(), parameter.getId(), result); + addMissingReferentialIfNecessary(idsOnlyExistingOnThisSide, parameter.getClass(), parameter.getId(), result); } }; } - protected abstract <DD extends ReferentialDto> ImmutableList<String> insertMissingReferential(Class<DD> referentialType, String id); - @Override - public ImmutableList<String> generateSql(ReferentialDto referentialDto, ImmutableSet<String> properties, Date addLastUpdateDate) { - return delegateGenerator.generateSql(referentialDto, properties, addLastUpdateDate); + public ImmutableList<String> generateSql(ReferentialDto referentialDto, ImmutableSet<String> properties, Date lastUpdateDate) { + return delegateGenerator.generateSql(referentialDto, properties, lastUpdateDate); } - - private <DD extends ReferentialDto> void addMissingReferentialIfNecessary(Class<DD> associationType, String associationId, ImmutableList.Builder<String> result) { - - if (idsOnlyExistingOnThisSide.containsEntry(associationType, associationId)) { - - // il faut insérer aussi ce référentiel - ImmutableList<String> sqlList = insertMissingReferential(associationType, associationId); - result.addAll(sqlList); - // ce référentiel est désormais présent dans les deux sources - idsOnlyExistingOnThisSide.remove(associationType, associationId); - - } - } - } ===================================== services-local/src/main/java/fr/ird/observe/services/local/service/actions/synchro/referential/sql/WithCascadeStatementGenerator.java ===================================== @@ -0,0 +1,77 @@ +package fr.ird.observe.services.local.service.actions.synchro.referential.sql; + +/*- + * #%L + * ObServe :: Services local + * %% + * Copyright (C) 2008 - 2020 IRD, Code Lutin, Ultreia.io + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import com.google.common.collect.ImmutableList; +import com.google.common.collect.Multimap; +import fr.ird.observe.dto.reference.ReferentialDtoReference; +import fr.ird.observe.dto.referential.ReferentialDto; +import fr.ird.observe.entities.referentiel.ObserveReferentialEntity; +import fr.ird.observe.persistence.ObserveEntityEnum; +import fr.ird.observe.services.local.service.actions.synchro.referential.ng.ReferentialSynchronizeServiceLocal; +import fr.ird.observe.spi.DbModelHelper; +import fr.ird.observe.spi.context.ReferentialDtoEntityContext; +import org.nuiton.topia.persistence.metadata.TopiaMetadataEntity; +import org.nuiton.topia.persistence.metadata.TopiaMetadataModel; + +/** + * Support statement generator when a cascade can be done on adding new referential. + * + * @author Tony Chemit - dev(a)tchemit.fr + * @since 8.0 + */ +public abstract class WithCascadeStatementGenerator { + + private final ReferentialSynchronizeServiceLocal service; + private final TopiaMetadataModel metadataModel; + + protected WithCascadeStatementGenerator(ReferentialSynchronizeServiceLocal service, TopiaMetadataModel metadataModel) { + this.service = service; + this.metadataModel = metadataModel; + } + + public <D extends ReferentialDto> void addMissingReferentialIfNecessary(Multimap<Class<? extends ReferentialDto>, String> idsOnlyExistingOnThisSide, Class<D> associationType, String associationId, ImmutableList.Builder<String> builder) { + + if (idsOnlyExistingOnThisSide.containsEntry(associationType, associationId)) { + // need to add this referential on this other side + ImmutableList<String> sqlList = insertMissingReferential(associationType, associationId); + builder.addAll(sqlList); + // now this referential is on both side + idsOnlyExistingOnThisSide.remove(associationType, associationId); + } + } + + protected <D extends ReferentialDto, R extends ReferentialDtoReference<D, R>, E extends ObserveReferentialEntity> ImmutableList<String> insertMissingReferential(Class<D> referentialType, String id) { + ReferentialDtoEntityContext<D, R, E> modelContext = DbModelHelper.fromReferentialDto(referentialType); + + Class<E> entityType = modelContext.toEntityType(); + String referentialName = ObserveEntityEnum.valueOf(entityType).name(); + TopiaMetadataEntity metadata = metadataModel.getEntity(referentialName); + + InsertSqlStatementGenerator insertGenerator = new InsertSqlStatementGenerator(metadataModel, metadata); + D referential = service.loadEntityToReferentialDto(modelContext.toEntityBinder(), id); + return insertGenerator.generateSql(referential); + } + + +} View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/dd59aa482ecb044c43b38dc3… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/dd59aa482ecb044c43b38dc3… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] Version de base dans tms_version - Closes #1485
by Tony CHEMIT 18 May '20

18 May '20
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 8e064dac by Tony Chemit at 2020-05-18T11:44:45+02:00 Version de base dans tms_version - Closes #1485 - - - - - 12 changed files: - persistence/src/main/java/fr/ird/observe/entities/migration/DataSourceMigrationForVersion_7_5_1.java → persistence/src/main/java/fr/ird/observe/entities/migration/DataSourceMigrationForVersion_7_6.java - − test/src/main/resources/db/7.5.1/dataForTestLongline.sql.gz - − test/src/main/resources/db/7.5.1/dataForTestSeine.sql.gz - − test/src/main/resources/db/7.5.1/referentiel.sql.gz - + test/src/main/resources/db/7.6/dataForTestLongline.sql.gz - + test/src/main/resources/db/7.6/dataForTestSeine.sql.gz - test/src/main/resources/db/7.5.1/empty_h2.sql.gz → test/src/main/resources/db/7.6/empty_h2.sql.gz - test/src/main/resources/db/7.5.1/empty_pg.sql.gz → test/src/main/resources/db/7.6/empty_pg.sql.gz - + test/src/main/resources/db/7.6/referentiel.sql.gz - test/src/main/resources/db/8.0/dataForTestLongline.sql.gz - test/src/main/resources/db/8.0/dataForTestSeine.sql.gz - test/src/main/resources/db/8.0/referentiel.sql.gz Changes: ===================================== persistence/src/main/java/fr/ird/observe/entities/migration/DataSourceMigrationForVersion_7_5_1.java → persistence/src/main/java/fr/ird/observe/entities/migration/DataSourceMigrationForVersion_7_6.java ===================================== @@ -40,10 +40,10 @@ import java.util.Set; * @since 7.5.1 */ @AutoService(MigrationVersionResource.class) -public class DataSourceMigrationForVersion_7_5_1 extends MigrationVersionResource { +public class DataSourceMigrationForVersion_7_6 extends MigrationVersionResource { - public DataSourceMigrationForVersion_7_5_1() { - super(Versions.valueOf("7.5.1")); + public DataSourceMigrationForVersion_7_6() { + super(Versions.valueOf("7.6")); } @Override ===================================== test/src/main/resources/db/7.5.1/dataForTestLongline.sql.gz deleted ===================================== Binary files a/test/src/main/resources/db/7.5.1/dataForTestLongline.sql.gz and /dev/null differ ===================================== test/src/main/resources/db/7.5.1/dataForTestSeine.sql.gz deleted ===================================== Binary files a/test/src/main/resources/db/7.5.1/dataForTestSeine.sql.gz and /dev/null differ ===================================== test/src/main/resources/db/7.5.1/referentiel.sql.gz deleted ===================================== Binary files a/test/src/main/resources/db/7.5.1/referentiel.sql.gz and /dev/null differ ===================================== test/src/main/resources/db/7.6/dataForTestLongline.sql.gz ===================================== Binary files /dev/null and b/test/src/main/resources/db/7.6/dataForTestLongline.sql.gz differ ===================================== test/src/main/resources/db/7.6/dataForTestSeine.sql.gz ===================================== Binary files /dev/null and b/test/src/main/resources/db/7.6/dataForTestSeine.sql.gz differ ===================================== test/src/main/resources/db/7.5.1/empty_h2.sql.gz → test/src/main/resources/db/7.6/empty_h2.sql.gz ===================================== ===================================== test/src/main/resources/db/7.5.1/empty_pg.sql.gz → test/src/main/resources/db/7.6/empty_pg.sql.gz ===================================== ===================================== test/src/main/resources/db/7.6/referentiel.sql.gz ===================================== Binary files /dev/null and b/test/src/main/resources/db/7.6/referentiel.sql.gz differ ===================================== test/src/main/resources/db/8.0/dataForTestLongline.sql.gz ===================================== Binary files a/test/src/main/resources/db/8.0/dataForTestLongline.sql.gz and b/test/src/main/resources/db/8.0/dataForTestLongline.sql.gz differ ===================================== test/src/main/resources/db/8.0/dataForTestSeine.sql.gz ===================================== Binary files a/test/src/main/resources/db/8.0/dataForTestSeine.sql.gz and b/test/src/main/resources/db/8.0/dataForTestSeine.sql.gz differ ===================================== test/src/main/resources/db/8.0/referentiel.sql.gz ===================================== Binary files a/test/src/main/resources/db/8.0/referentiel.sql.gz and b/test/src/main/resources/db/8.0/referentiel.sql.gz differ View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/8e064dac8ff2ed3dfb6e7594e… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/8e064dac8ff2ed3dfb6e7594e… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop-7.x] Prepare version 7.6.0 (Version de base dans tms_version - Closes #1485)
by Tony CHEMIT 18 May '20

18 May '20
Tony CHEMIT pushed to branch develop-7.x at ultreiaio / ird-observe Commits: dd59aa48 by Tony Chemit at 2020-05-18T11:36:59+02:00 Prepare version 7.6.0 (Version de base dans tms_version - Closes #1485) - - - - - 25 changed files: - client-configuration/pom.xml - client-core/pom.xml - client-runner/pom.xml - dto/pom.xml - observe-i18n/pom.xml - observe/pom.xml - persistence/pom.xml - persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_7_5_1.java → persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_7_6.java - pom.xml - server-configuration/pom.xml - server-core/pom.xml - server-runner/pom.xml - services-client/pom.xml - services-local/pom.xml - services/pom.xml - test/pom.xml - − test/src/main/resources/db/7.5.1/dataForTestLongline.sql.gz - − test/src/main/resources/db/7.5.1/dataForTestSeine.sql.gz - − test/src/main/resources/db/7.5.1/referentiel.sql.gz - + test/src/main/resources/db/7.6/dataForTestLongline.sql.gz - + test/src/main/resources/db/7.6/dataForTestSeine.sql.gz - test/src/main/resources/db/7.5.1/empty_h2.sql.gz → test/src/main/resources/db/7.6/empty_h2.sql.gz - test/src/main/resources/db/7.5.1/empty_pg.sql.gz → test/src/main/resources/db/7.6/empty_pg.sql.gz - + test/src/main/resources/db/7.6/referentiel.sql.gz - validation/pom.xml Changes: ===================================== client-configuration/pom.xml ===================================== @@ -26,7 +26,7 @@ <parent> <groupId>fr.ird.observe</groupId> <artifactId>ird-observe</artifactId> - <version>7.5.3-SNAPSHOT</version> + <version>7.6.0-SNAPSHOT</version> </parent> <artifactId>client-configuration</artifactId> @@ -90,7 +90,10 @@ <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> </dependency> - + <dependency> + <groupId>com.google.auto.service</groupId> + <artifactId>auto-service-annotations</artifactId> + </dependency> <dependency> <groupId>com.google.auto.service</groupId> <artifactId>auto-service</artifactId> ===================================== client-core/pom.xml ===================================== @@ -26,7 +26,7 @@ <parent> <groupId>fr.ird.observe</groupId> <artifactId>ird-observe</artifactId> - <version>7.5.3-SNAPSHOT</version> + <version>7.6.0-SNAPSHOT</version> </parent> <artifactId>client-core</artifactId> @@ -488,6 +488,10 @@ <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> </dependency> + <dependency> + <groupId>com.google.auto.service</groupId> + <artifactId>auto-service-annotations</artifactId> + </dependency> <!-- Nuiton --> <dependency> ===================================== client-runner/pom.xml ===================================== @@ -26,7 +26,7 @@ <parent> <groupId>fr.ird.observe</groupId> <artifactId>ird-observe</artifactId> - <version>7.5.3-SNAPSHOT</version> + <version>7.6.0-SNAPSHOT</version> </parent> <artifactId>client-runner</artifactId> ===================================== dto/pom.xml ===================================== @@ -27,7 +27,7 @@ <parent> <groupId>fr.ird.observe</groupId> <artifactId>ird-observe</artifactId> - <version>7.5.3-SNAPSHOT</version> + <version>7.6.0-SNAPSHOT</version> </parent> <artifactId>dto</artifactId> @@ -107,6 +107,10 @@ <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </dependency> + <dependency> + <groupId>com.google.auto.service</groupId> + <artifactId>auto-service-annotations</artifactId> + </dependency> <dependency> <groupId>com.google.auto.service</groupId> <artifactId>auto-service</artifactId> ===================================== observe-i18n/pom.xml ===================================== @@ -26,7 +26,7 @@ <parent> <groupId>fr.ird.observe</groupId> <artifactId>ird-observe</artifactId> - <version>7.5.3-SNAPSHOT</version> + <version>7.6.0-SNAPSHOT</version> </parent> <artifactId>observe-i18n</artifactId> @@ -37,7 +37,10 @@ <i18n.artifactId>observe</i18n.artifactId> </properties> <dependencies> - + <dependency> + <groupId>com.google.auto.service</groupId> + <artifactId>auto-service-annotations</artifactId> + </dependency> <dependency> <groupId>com.google.auto.service</groupId> <artifactId>auto-service</artifactId> ===================================== observe/pom.xml ===================================== @@ -26,7 +26,7 @@ <parent> <groupId>fr.ird.observe</groupId> <artifactId>ird-observe</artifactId> - <version>7.5.3-SNAPSHOT</version> + <version>7.6.0-SNAPSHOT</version> </parent> <artifactId>observe</artifactId> ===================================== persistence/pom.xml ===================================== @@ -26,7 +26,7 @@ <parent> <groupId>fr.ird.observe</groupId> <artifactId>ird-observe</artifactId> - <version>7.5.3-SNAPSHOT</version> + <version>7.6.0-SNAPSHOT</version> </parent> <artifactId>persistence</artifactId> @@ -113,6 +113,10 @@ <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </dependency> + <dependency> + <groupId>com.google.auto.service</groupId> + <artifactId>auto-service-annotations</artifactId> + </dependency> <dependency> <groupId>com.google.auto.service</groupId> <artifactId>auto-service</artifactId> ===================================== persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_7_5_1.java → persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_7_6.java ===================================== @@ -40,10 +40,10 @@ import java.util.Set; * @since 7.5.1 */ @AutoService(MigrationVersionResource.class) -public class DataSourceMigrationForVersion_7_5_1 extends MigrationVersionResource { +public class DataSourceMigrationForVersion_7_6 extends MigrationVersionResource { - public DataSourceMigrationForVersion_7_5_1() { - super(Versions.valueOf("7.5.1")); + public DataSourceMigrationForVersion_7_6() { + super(Versions.valueOf("7.6")); } @Override ===================================== pom.xml ===================================== @@ -26,12 +26,12 @@ <parent> <groupId>io.ultreia.maven</groupId> <artifactId>pom</artifactId> - <version>2020.25</version> + <version>2020.27</version> </parent> <groupId>fr.ird.observe</groupId> <artifactId>ird-observe</artifactId> - <version>7.5.3-SNAPSHOT</version> + <version>7.6.0-SNAPSHOT</version> <packaging>pom</packaging> <name>ObServe :: Pom</name> @@ -149,7 +149,7 @@ <devMode>true</devMode> <!--persistence model version--> - <observe.model.version>7.5.1</observe.model.version> + <observe.model.version>7.6</observe.model.version> <!-- build timestamp configuration --> <maven.build.timestamp.format>dd/MM/yyyy HH:mm z</maven.build.timestamp.format> ===================================== server-configuration/pom.xml ===================================== @@ -26,7 +26,7 @@ <parent> <groupId>fr.ird.observe</groupId> <artifactId>ird-observe</artifactId> - <version>7.5.3-SNAPSHOT</version> + <version>7.6.0-SNAPSHOT</version> </parent> <artifactId>server-configuration</artifactId> @@ -75,6 +75,10 @@ <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </dependency> + <dependency> + <groupId>com.google.auto.service</groupId> + <artifactId>auto-service-annotations</artifactId> + </dependency> <!-- Nuiton --> <dependency> @@ -115,7 +119,7 @@ <dependency> <groupId>fr.ird.observe</groupId> <artifactId>services</artifactId> - <version>7.5.3-SNAPSHOT</version> + <version>7.6.0-SNAPSHOT</version> <scope>compile</scope> </dependency> ===================================== server-core/pom.xml ===================================== @@ -27,7 +27,7 @@ <parent> <groupId>fr.ird.observe</groupId> <artifactId>ird-observe</artifactId> - <version>7.5.3-SNAPSHOT</version> + <version>7.6.0-SNAPSHOT</version> </parent> <artifactId>server-core</artifactId> ===================================== server-runner/pom.xml ===================================== @@ -27,7 +27,7 @@ <parent> <groupId>fr.ird.observe</groupId> <artifactId>ird-observe</artifactId> - <version>7.5.3-SNAPSHOT</version> + <version>7.6.0-SNAPSHOT</version> </parent> <artifactId>server-runner</artifactId> ===================================== services-client/pom.xml ===================================== @@ -27,7 +27,7 @@ <parent> <groupId>fr.ird.observe</groupId> <artifactId>ird-observe</artifactId> - <version>7.5.3-SNAPSHOT</version> + <version>7.6.0-SNAPSHOT</version> </parent> <artifactId>services-client</artifactId> ===================================== services-local/pom.xml ===================================== @@ -27,7 +27,7 @@ <parent> <groupId>fr.ird.observe</groupId> <artifactId>ird-observe</artifactId> - <version>7.5.3-SNAPSHOT</version> + <version>7.6.0-SNAPSHOT</version> </parent> <artifactId>services-local</artifactId> @@ -101,10 +101,7 @@ <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> - </dependency> <!--<dependency>--> - <!--<groupId>commons-io</groupId>--> - <!--<artifactId>commons-io</artifactId>--> - <!--</dependency>--> + </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-collections4</artifactId> @@ -117,7 +114,10 @@ <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </dependency> - + <dependency> + <groupId>com.google.auto.service</groupId> + <artifactId>auto-service-annotations</artifactId> + </dependency> <dependency> <groupId>io.ultreia.java4all.http</groupId> <artifactId>http-api</artifactId> ===================================== services/pom.xml ===================================== @@ -27,7 +27,7 @@ <parent> <groupId>fr.ird.observe</groupId> <artifactId>ird-observe</artifactId> - <version>7.5.3-SNAPSHOT</version> + <version>7.6.0-SNAPSHOT</version> </parent> <artifactId>services</artifactId> @@ -112,7 +112,10 @@ <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </dependency> - + <dependency> + <groupId>com.google.auto.service</groupId> + <artifactId>auto-service-annotations</artifactId> + </dependency> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> ===================================== test/pom.xml ===================================== @@ -26,7 +26,7 @@ <parent> <groupId>fr.ird.observe</groupId> <artifactId>ird-observe</artifactId> - <version>7.5.3-SNAPSHOT</version> + <version>7.6.0-SNAPSHOT</version> </parent> <artifactId>test</artifactId> ===================================== test/src/main/resources/db/7.5.1/dataForTestLongline.sql.gz deleted ===================================== Binary files a/test/src/main/resources/db/7.5.1/dataForTestLongline.sql.gz and /dev/null differ ===================================== test/src/main/resources/db/7.5.1/dataForTestSeine.sql.gz deleted ===================================== Binary files a/test/src/main/resources/db/7.5.1/dataForTestSeine.sql.gz and /dev/null differ ===================================== test/src/main/resources/db/7.5.1/referentiel.sql.gz deleted ===================================== Binary files a/test/src/main/resources/db/7.5.1/referentiel.sql.gz and /dev/null differ ===================================== test/src/main/resources/db/7.6/dataForTestLongline.sql.gz ===================================== Binary files /dev/null and b/test/src/main/resources/db/7.6/dataForTestLongline.sql.gz differ ===================================== test/src/main/resources/db/7.6/dataForTestSeine.sql.gz ===================================== Binary files /dev/null and b/test/src/main/resources/db/7.6/dataForTestSeine.sql.gz differ ===================================== test/src/main/resources/db/7.5.1/empty_h2.sql.gz → test/src/main/resources/db/7.6/empty_h2.sql.gz ===================================== ===================================== test/src/main/resources/db/7.5.1/empty_pg.sql.gz → test/src/main/resources/db/7.6/empty_pg.sql.gz ===================================== ===================================== test/src/main/resources/db/7.6/referentiel.sql.gz ===================================== Binary files /dev/null and b/test/src/main/resources/db/7.6/referentiel.sql.gz differ ===================================== validation/pom.xml ===================================== @@ -26,7 +26,7 @@ <parent> <groupId>fr.ird.observe</groupId> <artifactId>ird-observe</artifactId> - <version>7.5.3-SNAPSHOT</version> + <version>7.6.0-SNAPSHOT</version> </parent> <artifactId>validation</artifactId> @@ -75,6 +75,10 @@ <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </dependency> + <dependency> + <groupId>com.google.auto.service</groupId> + <artifactId>auto-service-annotations</artifactId> + </dependency> <!-- provided dependencies --> <dependency> View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/dd59aa482ecb044c43b38dc39… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/dd59aa482ecb044c43b38dc39… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop-7.x] Prepare version 7.6.0
by Tony CHEMIT 18 May '20

18 May '20
Tony CHEMIT pushed to branch develop-7.x at ultreiaio / ird-observe Commits: 2f0b5783 by Tony Chemit at 2020-05-18T11:35:34+02:00 Prepare version 7.6.0 - - - - - 25 changed files: - client-configuration/pom.xml - client-core/pom.xml - client-runner/pom.xml - dto/pom.xml - observe-i18n/pom.xml - observe/pom.xml - persistence/pom.xml - persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_7_5_1.java → persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_7_6.java - pom.xml - server-configuration/pom.xml - server-core/pom.xml - server-runner/pom.xml - services-client/pom.xml - services-local/pom.xml - services/pom.xml - test/pom.xml - − test/src/main/resources/db/7.5.1/dataForTestLongline.sql.gz - − test/src/main/resources/db/7.5.1/dataForTestSeine.sql.gz - − test/src/main/resources/db/7.5.1/referentiel.sql.gz - + test/src/main/resources/db/7.6/dataForTestLongline.sql.gz - + test/src/main/resources/db/7.6/dataForTestSeine.sql.gz - test/src/main/resources/db/7.5.1/empty_h2.sql.gz → test/src/main/resources/db/7.6/empty_h2.sql.gz - test/src/main/resources/db/7.5.1/empty_pg.sql.gz → test/src/main/resources/db/7.6/empty_pg.sql.gz - + test/src/main/resources/db/7.6/referentiel.sql.gz - validation/pom.xml Changes: ===================================== client-configuration/pom.xml ===================================== @@ -26,7 +26,7 @@ <parent> <groupId>fr.ird.observe</groupId> <artifactId>ird-observe</artifactId> - <version>7.5.3-SNAPSHOT</version> + <version>7.6.0-SNAPSHOT</version> </parent> <artifactId>client-configuration</artifactId> @@ -90,7 +90,10 @@ <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> </dependency> - + <dependency> + <groupId>com.google.auto.service</groupId> + <artifactId>auto-service-annotations</artifactId> + </dependency> <dependency> <groupId>com.google.auto.service</groupId> <artifactId>auto-service</artifactId> ===================================== client-core/pom.xml ===================================== @@ -26,7 +26,7 @@ <parent> <groupId>fr.ird.observe</groupId> <artifactId>ird-observe</artifactId> - <version>7.5.3-SNAPSHOT</version> + <version>7.6.0-SNAPSHOT</version> </parent> <artifactId>client-core</artifactId> @@ -488,6 +488,10 @@ <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> </dependency> + <dependency> + <groupId>com.google.auto.service</groupId> + <artifactId>auto-service-annotations</artifactId> + </dependency> <!-- Nuiton --> <dependency> ===================================== client-runner/pom.xml ===================================== @@ -26,7 +26,7 @@ <parent> <groupId>fr.ird.observe</groupId> <artifactId>ird-observe</artifactId> - <version>7.5.3-SNAPSHOT</version> + <version>7.6.0-SNAPSHOT</version> </parent> <artifactId>client-runner</artifactId> ===================================== dto/pom.xml ===================================== @@ -27,7 +27,7 @@ <parent> <groupId>fr.ird.observe</groupId> <artifactId>ird-observe</artifactId> - <version>7.5.3-SNAPSHOT</version> + <version>7.6.0-SNAPSHOT</version> </parent> <artifactId>dto</artifactId> @@ -107,6 +107,10 @@ <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </dependency> + <dependency> + <groupId>com.google.auto.service</groupId> + <artifactId>auto-service-annotations</artifactId> + </dependency> <dependency> <groupId>com.google.auto.service</groupId> <artifactId>auto-service</artifactId> ===================================== observe-i18n/pom.xml ===================================== @@ -26,7 +26,7 @@ <parent> <groupId>fr.ird.observe</groupId> <artifactId>ird-observe</artifactId> - <version>7.5.3-SNAPSHOT</version> + <version>7.6.0-SNAPSHOT</version> </parent> <artifactId>observe-i18n</artifactId> @@ -37,7 +37,10 @@ <i18n.artifactId>observe</i18n.artifactId> </properties> <dependencies> - + <dependency> + <groupId>com.google.auto.service</groupId> + <artifactId>auto-service-annotations</artifactId> + </dependency> <dependency> <groupId>com.google.auto.service</groupId> <artifactId>auto-service</artifactId> ===================================== observe/pom.xml ===================================== @@ -26,7 +26,7 @@ <parent> <groupId>fr.ird.observe</groupId> <artifactId>ird-observe</artifactId> - <version>7.5.3-SNAPSHOT</version> + <version>7.6.0-SNAPSHOT</version> </parent> <artifactId>observe</artifactId> ===================================== persistence/pom.xml ===================================== @@ -26,7 +26,7 @@ <parent> <groupId>fr.ird.observe</groupId> <artifactId>ird-observe</artifactId> - <version>7.5.3-SNAPSHOT</version> + <version>7.6.0-SNAPSHOT</version> </parent> <artifactId>persistence</artifactId> @@ -113,6 +113,10 @@ <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </dependency> + <dependency> + <groupId>com.google.auto.service</groupId> + <artifactId>auto-service-annotations</artifactId> + </dependency> <dependency> <groupId>com.google.auto.service</groupId> <artifactId>auto-service</artifactId> ===================================== persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_7_5_1.java → persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_7_6.java ===================================== @@ -40,10 +40,10 @@ import java.util.Set; * @since 7.5.1 */ @AutoService(MigrationVersionResource.class) -public class DataSourceMigrationForVersion_7_5_1 extends MigrationVersionResource { +public class DataSourceMigrationForVersion_7_6 extends MigrationVersionResource { - public DataSourceMigrationForVersion_7_5_1() { - super(Versions.valueOf("7.5.1")); + public DataSourceMigrationForVersion_7_6() { + super(Versions.valueOf("7.6")); } @Override ===================================== pom.xml ===================================== @@ -26,12 +26,12 @@ <parent> <groupId>io.ultreia.maven</groupId> <artifactId>pom</artifactId> - <version>2020.25</version> + <version>2020.27</version> </parent> <groupId>fr.ird.observe</groupId> <artifactId>ird-observe</artifactId> - <version>7.5.3-SNAPSHOT</version> + <version>7.6.0-SNAPSHOT</version> <packaging>pom</packaging> <name>ObServe :: Pom</name> @@ -149,7 +149,7 @@ <devMode>true</devMode> <!--persistence model version--> - <observe.model.version>7.5.1</observe.model.version> + <observe.model.version>7.6</observe.model.version> <!-- build timestamp configuration --> <maven.build.timestamp.format>dd/MM/yyyy HH:mm z</maven.build.timestamp.format> ===================================== server-configuration/pom.xml ===================================== @@ -26,7 +26,7 @@ <parent> <groupId>fr.ird.observe</groupId> <artifactId>ird-observe</artifactId> - <version>7.5.3-SNAPSHOT</version> + <version>7.6.0-SNAPSHOT</version> </parent> <artifactId>server-configuration</artifactId> @@ -75,6 +75,10 @@ <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </dependency> + <dependency> + <groupId>com.google.auto.service</groupId> + <artifactId>auto-service-annotations</artifactId> + </dependency> <!-- Nuiton --> <dependency> @@ -115,7 +119,7 @@ <dependency> <groupId>fr.ird.observe</groupId> <artifactId>services</artifactId> - <version>7.5.3-SNAPSHOT</version> + <version>7.6.0-SNAPSHOT</version> <scope>compile</scope> </dependency> ===================================== server-core/pom.xml ===================================== @@ -27,7 +27,7 @@ <parent> <groupId>fr.ird.observe</groupId> <artifactId>ird-observe</artifactId> - <version>7.5.3-SNAPSHOT</version> + <version>7.6.0-SNAPSHOT</version> </parent> <artifactId>server-core</artifactId> ===================================== server-runner/pom.xml ===================================== @@ -27,7 +27,7 @@ <parent> <groupId>fr.ird.observe</groupId> <artifactId>ird-observe</artifactId> - <version>7.5.3-SNAPSHOT</version> + <version>7.6.0-SNAPSHOT</version> </parent> <artifactId>server-runner</artifactId> ===================================== services-client/pom.xml ===================================== @@ -27,7 +27,7 @@ <parent> <groupId>fr.ird.observe</groupId> <artifactId>ird-observe</artifactId> - <version>7.5.3-SNAPSHOT</version> + <version>7.6.0-SNAPSHOT</version> </parent> <artifactId>services-client</artifactId> ===================================== services-local/pom.xml ===================================== @@ -27,7 +27,7 @@ <parent> <groupId>fr.ird.observe</groupId> <artifactId>ird-observe</artifactId> - <version>7.5.3-SNAPSHOT</version> + <version>7.6.0-SNAPSHOT</version> </parent> <artifactId>services-local</artifactId> @@ -101,10 +101,7 @@ <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> - </dependency> <!--<dependency>--> - <!--<groupId>commons-io</groupId>--> - <!--<artifactId>commons-io</artifactId>--> - <!--</dependency>--> + </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-collections4</artifactId> @@ -117,7 +114,10 @@ <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </dependency> - + <dependency> + <groupId>com.google.auto.service</groupId> + <artifactId>auto-service-annotations</artifactId> + </dependency> <dependency> <groupId>io.ultreia.java4all.http</groupId> <artifactId>http-api</artifactId> ===================================== services/pom.xml ===================================== @@ -27,7 +27,7 @@ <parent> <groupId>fr.ird.observe</groupId> <artifactId>ird-observe</artifactId> - <version>7.5.3-SNAPSHOT</version> + <version>7.6.0-SNAPSHOT</version> </parent> <artifactId>services</artifactId> @@ -112,7 +112,10 @@ <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </dependency> - + <dependency> + <groupId>com.google.auto.service</groupId> + <artifactId>auto-service-annotations</artifactId> + </dependency> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> ===================================== test/pom.xml ===================================== @@ -26,7 +26,7 @@ <parent> <groupId>fr.ird.observe</groupId> <artifactId>ird-observe</artifactId> - <version>7.5.3-SNAPSHOT</version> + <version>7.6.0-SNAPSHOT</version> </parent> <artifactId>test</artifactId> ===================================== test/src/main/resources/db/7.5.1/dataForTestLongline.sql.gz deleted ===================================== Binary files a/test/src/main/resources/db/7.5.1/dataForTestLongline.sql.gz and /dev/null differ ===================================== test/src/main/resources/db/7.5.1/dataForTestSeine.sql.gz deleted ===================================== Binary files a/test/src/main/resources/db/7.5.1/dataForTestSeine.sql.gz and /dev/null differ ===================================== test/src/main/resources/db/7.5.1/referentiel.sql.gz deleted ===================================== Binary files a/test/src/main/resources/db/7.5.1/referentiel.sql.gz and /dev/null differ ===================================== test/src/main/resources/db/7.6/dataForTestLongline.sql.gz ===================================== Binary files /dev/null and b/test/src/main/resources/db/7.6/dataForTestLongline.sql.gz differ ===================================== test/src/main/resources/db/7.6/dataForTestSeine.sql.gz ===================================== Binary files /dev/null and b/test/src/main/resources/db/7.6/dataForTestSeine.sql.gz differ ===================================== test/src/main/resources/db/7.5.1/empty_h2.sql.gz → test/src/main/resources/db/7.6/empty_h2.sql.gz ===================================== ===================================== test/src/main/resources/db/7.5.1/empty_pg.sql.gz → test/src/main/resources/db/7.6/empty_pg.sql.gz ===================================== ===================================== test/src/main/resources/db/7.6/referentiel.sql.gz ===================================== Binary files /dev/null and b/test/src/main/resources/db/7.6/referentiel.sql.gz differ ===================================== validation/pom.xml ===================================== @@ -26,7 +26,7 @@ <parent> <groupId>fr.ird.observe</groupId> <artifactId>ird-observe</artifactId> - <version>7.5.3-SNAPSHOT</version> + <version>7.6.0-SNAPSHOT</version> </parent> <artifactId>validation</artifactId> @@ -75,6 +75,10 @@ <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </dependency> + <dependency> + <groupId>com.google.auto.service</groupId> + <artifactId>auto-service-annotations</artifactId> + </dependency> <!-- provided dependencies --> <dependency> View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/2f0b5783a27c70babf1a298d2… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/2f0b5783a27c70babf1a298d2… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] 2 commits: [SYNCHRO MAREES] L'assistant demande un remplacement de code manquant, même si...
by Tony CHEMIT 17 May '20

17 May '20
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 4557a0e8 by Tony Chemit at 2020-05-17T20:43:11+02:00 [SYNCHRO MAREES] L&#39;assistant demande un remplacement de code manquant, même si celui-ci n&#39;est pas utilisé par les données - Closes #1432 (Rethink Usage support from topia-extension) - - - - - 43d79e6a by Tony Chemit at 2020-05-17T20:43:11+02:00 fix if parent file is null (should find out how does that happens) - - - - - 8 changed files: - client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/save/SaveLocalModel.java - persistence/src/main/java/fr/ird/observe/entities/ObserveTopiaApplicationContext.java - persistence/src/main/java/fr/ird/observe/entities/ObserveTopiaPersistenceContext.java - persistence/src/main/java/fr/ird/observe/entities/ObserveTopiaPersistenceContextConstructorParameter.java - pom.xml - services-local/src/main/java/fr/ird/observe/services/local/service/actions/synchro/referential/sql/DeleteSqlStatementGenerator.java - services-local/src/main/java/fr/ird/observe/services/local/service/actions/synchro/referential/sql/ReplaceSqlStatementGenerator.java - services-local/src/main/java/fr/ird/observe/services/local/service/usage/UsageServiceLocal.java Changes: ===================================== client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/save/SaveLocalModel.java ===================================== @@ -132,7 +132,7 @@ public class SaveLocalModel extends AdminActionModel { public boolean isCanSaveLocal() { boolean validate = !doBackup || backupFile != null && - !backupFile.exists() && backupFile.getParentFile().exists() && ObserveUtil.withSqlGzExtension(backupFile.getName()); + !backupFile.exists() && backupFile.getParentFile()!=null && backupFile.getParentFile().exists() && ObserveUtil.withSqlGzExtension(backupFile.getName()); if (validate) { String filename = getBackupFileName(); validate = !filename.isEmpty() && !filename.contains("."); ===================================== persistence/src/main/java/fr/ird/observe/entities/ObserveTopiaApplicationContext.java ===================================== @@ -58,8 +58,9 @@ public class ObserveTopiaApplicationContext extends AbstractObserveTopiaApplicat private static final String INSERT_LAST_UPDATE_PATTERN = "INSERT INTO COMMON.LASTUPDATEDATE (TOPIAID, TOPIAVERSION, TOPIACREATEDATE, TYPE, LASTUPDATEDATE) VALUES ('fr.ird.observe.entities.LastUpdateDate#1236861982132#0.%03d', 0, CURRENT_TIMESTAMP, '%s', CURRENT_TIMESTAMP);"; private static final String CREATE_SCHEMA_SQL = "CREATE SCHEMA %s;"; protected final String authenticationToken; - private transient TopiaMetadataModelSupport topiaMetadataModelSupport; private final TopiaSqlTablesFactory topiaSqlTablesFactory; + private transient TopiaMetadataModelSupport topiaMetadataModelSupport; + private transient ObserveTopiaUsageModel topiaUsageModel; /** * Mise à {@code true} quand au moins une connection a été effectuée. @@ -89,6 +90,7 @@ public class ObserveTopiaApplicationContext extends AbstractObserveTopiaApplicat getSessionRegistry(), getTopiaMetadataModelSupport(), this, + getTopiaUsageModel(), getConfiguration() ) ); @@ -277,7 +279,7 @@ public class ObserveTopiaApplicationContext extends AbstractObserveTopiaApplicat return referentialTables; } - public <E extends ReferentialEntity> TopiaSqlTables getReferentialTable(Class<E> entityType) { + public <E extends ReferentialEntity<?,?>> TopiaSqlTables getReferentialTable(Class<E> entityType) { ObserveEntityEnum entityEnum = ObserveEntityEnum.valueOf(entityType); return referentialTables = topiaSqlTablesFactory.newReplicateEntityTables(new TripReplicateTablesPredicate(), entityEnum); } @@ -286,6 +288,10 @@ public class ObserveTopiaApplicationContext extends AbstractObserveTopiaApplicat return topiaMetadataModelSupport == null ? topiaMetadataModelSupport = newModelSupport() : topiaMetadataModelSupport; } + public ObserveTopiaUsageModel getTopiaUsageModel() { + return topiaUsageModel == null ? topiaUsageModel = new ObserveTopiaUsageModel() : topiaUsageModel; + } + private void executeSqlStatements0(TopiaSqlScript content) { SqlScriptReader scriptLocation = content.getLocation(); @@ -326,7 +332,7 @@ public class ObserveTopiaApplicationContext extends AbstractObserveTopiaApplicat private static class TripReplicateTablesPredicate implements TopiaSqlTablesFactory.TopiaSqlTablesPredicate { - private final Set<TopiaMetadataEntity> dones = new LinkedHashSet<>(); + private final Set<TopiaMetadataEntity> done = new LinkedHashSet<>(); private final Set<String> sections = ImmutableSet.of( ObserveEntityEnum.ll_observation_Branchline.name(), ObserveEntityEnum.ll_observation_Basket.name(), @@ -337,7 +343,7 @@ public class ObserveTopiaApplicationContext extends AbstractObserveTopiaApplicat @Override public boolean acceptEntity(TopiaMetadataEntity metadataEntity) { - return dones.add(metadataEntity); + return done.add(metadataEntity); } @Override ===================================== persistence/src/main/java/fr/ird/observe/entities/ObserveTopiaPersistenceContext.java ===================================== @@ -29,7 +29,6 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.nuiton.topia.persistence.TopiaDao; import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.topia.persistence.TopiaEntityEnumProvider; import org.nuiton.topia.persistence.internal.AbstractTopiaPersistenceContextConstructorParameter; import org.nuiton.topia.persistence.internal.support.TopiaUsageSupportImpl; import org.nuiton.topia.persistence.metadata.TopiaMetadataModel; @@ -39,6 +38,7 @@ import org.nuiton.topia.persistence.script.TopiaSqlScript; import org.nuiton.topia.persistence.support.TopiaMetadataModelSupport; import org.nuiton.topia.persistence.support.TopiaSqlQuery; import org.nuiton.topia.persistence.support.TopiaUsageSupport; +import org.nuiton.topia.persistence.usage.TopiaUsageModel; import java.net.URL; import java.sql.Connection; @@ -57,8 +57,8 @@ public class ObserveTopiaPersistenceContext extends AbstractObserveTopiaPersiste private final boolean showSql; private final TopiaMetadataModelSupport topiaMetadataModelSupport; - private TopiaEntityEnumProvider topiaEntityEnumProvider; - private TopiaUsageSupport topiaUsageSupport; + private final TopiaUsageModel topiaUsageModel; + private transient TopiaUsageSupport topiaUsageSupport; public ObserveTopiaPersistenceContext(AbstractTopiaPersistenceContextConstructorParameter parameter) { super(parameter); @@ -68,17 +68,15 @@ public class ObserveTopiaPersistenceContext extends AbstractObserveTopiaPersiste public ObserveTopiaPersistenceContext(ObserveTopiaPersistenceContextConstructorParameter parameter) { super(parameter); topiaMetadataModelSupport = parameter.getTopiaMetadataModelSupport(); - topiaEntityEnumProvider = parameter.getTopiaEntityEnumProvider(); + topiaUsageModel = parameter.getTopiaUsageModel(); this.showSql = parameter.getConfiguration().isShowSql(); } public <E extends Entity> Date getLastUpdateDate(Class<E> entityType) { - LastUpdateDateTopiaDao dao = getDao(LastUpdateDate.class, LastUpdateDateTopiaDao.class); LastUpdateDate lastUpdateDate = dao.findUniqueByType(entityType.getName()); log.debug("getLastUpdateDate: " + lastUpdateDate.getLastUpdateDate() + " for entity type: " + entityType.getName()); return lastUpdateDate.getLastUpdateDate(); - } public <E extends Entity> void updateLastUpdateDate(E entity, Date date) { @@ -125,7 +123,6 @@ public class ObserveTopiaPersistenceContext extends AbstractObserveTopiaPersiste Objects.requireNonNull(entityEnum, "Entity " + entity + " is not managed by ToPIA"); //noinspection unchecked return (Class<E>) entityEnum.getContract(); - } public <E extends Entity> TopiaDao<E> getDao(E entity) { @@ -173,9 +170,7 @@ public class ObserveTopiaPersistenceContext extends AbstractObserveTopiaPersiste } dao.delete(entity); } - updateLastUpdateDate(entityType, now); - } public void executeSqlScript(URL location) { @@ -201,29 +196,27 @@ public class ObserveTopiaPersistenceContext extends AbstractObserveTopiaPersiste } public TopiaUsageSupport getTopiaUsageSupport() { - if (topiaUsageSupport == null) { - topiaUsageSupport = new TopiaUsageSupportImpl(this, topiaMetadataModelSupport, topiaEntityEnumProvider); - } - return topiaUsageSupport; + return topiaUsageSupport == null ? topiaUsageSupport = new TopiaUsageSupportImpl(this, topiaUsageModel) : topiaUsageSupport; } - public <E extends DataEntity> E getMultipleAssociationParent(Class<E> associationContainerType, String associationName, String associationId) { + public <E extends DataEntity<?, ?>> E getMultipleAssociationParent(Class<E> associationContainerType, String associationName, String associationId) { ObserveEntityEnum parentEntityEnum = ObserveEntityEnum.valueOf(associationContainerType); TopiaMetadataModel metadataModel = topiaMetadataModelSupport.getMetadataModel(); String parentId = metadataModel.getMultipleAssociationParentId(getSqlSupport(), parentEntityEnum, associationName, associationId); return getAssociationParent(associationContainerType, associationName, associationId, parentId); } - public <E extends DataEntity> E getSingleAssociationParent(Class<E> associationContainerType, String associationName, String associationId) { + public <E extends DataEntity<?, ?>> E getSingleAssociationParent(Class<E> associationContainerType, String associationName, String associationId) { ObserveEntityEnum parentEntityEnum = ObserveEntityEnum.valueOf(associationContainerType); TopiaMetadataModel metadataModel = topiaMetadataModelSupport.getMetadataModel(); String parentId = metadataModel.getSingleAssociationParentId(getSqlSupport(), parentEntityEnum, associationName, associationId); return getAssociationParent(associationContainerType, associationName, associationId, parentId); } - private <E extends DataEntity> E getAssociationParent(Class<E> associationContainerType, String associationName, String associationId, String parentId) { + @SuppressWarnings("unchecked") + private <E extends DataEntity<?, ?>> E getAssociationParent(Class<E> associationContainerType, String associationName, String associationId, String parentId) { if (parentId == null) { - @SuppressWarnings("unchecked") + @SuppressWarnings({"rawtypes"}) Class<? extends DataEntity> associationType = getTopiaIdFactory().getClassName(associationId); throw new DataAssociationParentNotFoundException(DbModelHelper.fromDataEntity(associationType).toDtoType(), associationName, associationId); } ===================================== persistence/src/main/java/fr/ird/observe/entities/ObserveTopiaPersistenceContextConstructorParameter.java ===================================== @@ -29,13 +29,16 @@ import org.nuiton.topia.persistence.internal.HibernateProvider; import org.nuiton.topia.persistence.internal.TopiaHibernateSessionRegistry; import org.nuiton.topia.persistence.internal.support.TopiaFiresSupport; import org.nuiton.topia.persistence.support.TopiaMetadataModelSupport; +import org.nuiton.topia.persistence.support.TopiaUsageSupport; +import org.nuiton.topia.persistence.usage.TopiaUsageModel; import java.util.Objects; class ObserveTopiaPersistenceContextConstructorParameter extends AbstractTopiaPersistenceContextConstructorParameter { private final TopiaMetadataModelSupport topiaMetadataModelSupport; - private final TopiaEntityEnumProvider topiaEntityEnumProvider; + private final TopiaEntityEnumProvider<?> topiaEntityEnumProvider; + private final TopiaUsageModel topiaUsageModel; private final ObserveTopiaConfiguration configuration; /** @@ -45,13 +48,15 @@ class ObserveTopiaPersistenceContextConstructorParameter extends AbstractTopiaPe * @param sessionRegistry hibernate session registry * @param topiaMetadataModelSupport metaData model support * @param topiaEntityEnumProvider entity enum provider + * @param topiaUsageModel topia usage support * @param configuration topia configuration */ - public ObserveTopiaPersistenceContextConstructorParameter(HibernateProvider hibernateProvider, TopiaFiresSupport applicationFiresSupport, TopiaIdFactory topiaIdFactory, TopiaHibernateSessionRegistry sessionRegistry, TopiaMetadataModelSupport topiaMetadataModelSupport, TopiaEntityEnumProvider topiaEntityEnumProvider, ObserveTopiaConfiguration configuration) { + public ObserveTopiaPersistenceContextConstructorParameter(HibernateProvider hibernateProvider, TopiaFiresSupport applicationFiresSupport, TopiaIdFactory topiaIdFactory, TopiaHibernateSessionRegistry sessionRegistry, TopiaMetadataModelSupport topiaMetadataModelSupport, TopiaEntityEnumProvider<?> topiaEntityEnumProvider, TopiaUsageModel topiaUsageModel, ObserveTopiaConfiguration configuration) { super(hibernateProvider, applicationFiresSupport, topiaIdFactory, sessionRegistry); this.topiaMetadataModelSupport = Objects.requireNonNull(topiaMetadataModelSupport); - this.topiaEntityEnumProvider = topiaEntityEnumProvider; - this.configuration = configuration; + this.topiaEntityEnumProvider = Objects.requireNonNull(topiaEntityEnumProvider); + this.topiaUsageModel = Objects.requireNonNull(topiaUsageModel); + this.configuration = Objects.requireNonNull(configuration); } public TopiaMetadataModelSupport getTopiaMetadataModelSupport() { @@ -62,7 +67,11 @@ class ObserveTopiaPersistenceContextConstructorParameter extends AbstractTopiaPe return configuration; } - public TopiaEntityEnumProvider getTopiaEntityEnumProvider() { + public TopiaEntityEnumProvider<?> getTopiaEntityEnumProvider() { return topiaEntityEnumProvider; } + + public TopiaUsageModel getTopiaUsageModel() { + return topiaUsageModel; + } } ===================================== pom.xml ===================================== @@ -24,7 +24,7 @@ <parent> <groupId>io.ultreia.maven</groupId> <artifactId>pom</artifactId> - <version>2020.26</version> + <version>2020.27</version> </parent> <groupId>fr.ird.observe</groupId> @@ -162,7 +162,7 @@ <maven.build.timestamp.format>dd/MM/yyyy HH:mm z</maven.build.timestamp.format> <buildDate>${maven.build.timestamp}</buildDate> - <lib.version.toolkit>4.31</lib.version.toolkit> + <lib.version.toolkit>4.32</lib.version.toolkit> <lib.version.nuiton.validation>3.1</lib.version.nuiton.validation> <!--can't use 1.4.197 (date has changed + blob also)--> <lib.version.h2>1.4.196</lib.version.h2> @@ -176,7 +176,7 @@ <!--<lib.version.java4all.i18n>4.0-beta-3-SNAPSHOT</lib.version.java4all.i18n>--> <!--<lib.version.java4all.config>1.0.8-SNAPSHOT</lib.version.java4all.config>--> <!--<lib.version.nuiton.topia>3.4.2-SNAPSHOT</lib.version.nuiton.topia>--> -<!-- <lib.version.java4all.topia>1.20-SNAPSHOT</lib.version.java4all.topia>--> + <lib.version.java4all.topia>1.22</lib.version.java4all.topia> <!--<lib.version.java4all.http>1.0.17-SNAPSHOT</lib.version.java4all.http>--> <!-- license header configuration --> ===================================== services-local/src/main/java/fr/ird/observe/services/local/service/actions/synchro/referential/sql/DeleteSqlStatementGenerator.java ===================================== @@ -51,7 +51,7 @@ public class DeleteSqlStatementGenerator { public DeleteSqlStatementGenerator(TopiaMetadataModel topiaMetadataModel, TopiaMetadataEntity metadataEntity) { this.metadataEntity = Objects.requireNonNull(metadataEntity); this.associations = topiaMetadataModel.getAssociations(metadataEntity); - this.reverseAssociations = topiaMetadataModel.getReverseAssociations(metadataEntity); + this.reverseAssociations = topiaMetadataModel.getReverseManyToManyAssociations(metadataEntity); } public List<String> generateSql(String id) { ===================================== services-local/src/main/java/fr/ird/observe/services/local/service/actions/synchro/referential/sql/ReplaceSqlStatementGenerator.java ===================================== @@ -58,7 +58,7 @@ public class ReplaceSqlStatementGenerator { public ReplaceSqlStatementGenerator(TopiaMetadataModel topiaMetadataModel, TopiaMetadataEntity metadataEntity) { this.compositions = Objects.requireNonNull(topiaMetadataModel).getReverseCompositions(Objects.requireNonNull(metadataEntity)); - this.associations = topiaMetadataModel.getReverseAssociations(metadataEntity); + this.associations = topiaMetadataModel.getReverseManyToManyAssociations(metadataEntity); } public ImmutableList<String> generateSql(String sourceId, String replacementId) { ===================================== services-local/src/main/java/fr/ird/observe/services/local/service/usage/UsageServiceLocal.java ===================================== @@ -44,6 +44,8 @@ import fr.ird.observe.spi.context.DataDtoEntityContext; import fr.ird.observe.spi.context.DtoEntityContext; import fr.ird.observe.spi.context.ReferentialDtoEntityContext; import fr.ird.observe.spi.map.ImmutableTypedMap; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.topia.persistence.support.TopiaUsageSupport; @@ -58,17 +60,33 @@ import java.util.Map; */ public class UsageServiceLocal extends ObserveServiceLocal implements UsageService { + private static final Logger log = LogManager.getLogger(UsageServiceLocal.class); + @Override public <D extends ReferentialDto> DtoUsageCountResult<D> count(DtoUsageCountRequest<D> request) { ReferentialEntity<D, ?> entity = loadEntity(request.getDtoType(), request.getId()); TopiaUsageSupport topiaUsageSupport = serviceContext.getTopiaPersistenceContext().getTopiaUsageSupport(); - Map<Class<? extends TopiaEntity>, Long> compositions = topiaUsageSupport.countReverseCompositions(entity, e -> true); - Map<Class<? extends TopiaEntity>, Long> associations = topiaUsageSupport.countReverseAssociations(entity, DtoModelHelper::isData); - ImmutableTypedMap.Builder<Long> result = ImmutableTypedMap.builder(); - buildCountUsageResult(compositions, result); - buildCountUsageResult(associations, result); + + Map<Class<? extends TopiaEntity>, Long> compositions = topiaUsageSupport.countReverseCompositions(entity, e -> true); + long compositionsSum = compositions.values().stream().reduce(Long::sum).orElse(0L); + if (compositionsSum > 0) { + log.info(String.format("Found %d entity(ies) in reverse composition of entity: %s", compositionsSum, entity.getTopiaId())); + buildCountUsageResult(compositions, result); + } + Map<Class<? extends TopiaEntity>, Long> manyToManyAssociations = topiaUsageSupport.countReverseManyToManyAssociations(entity, DtoModelHelper::isData); + long manyToManyAssociationsSum = manyToManyAssociations.values().stream().reduce(Long::sum).orElse(0L); + if (manyToManyAssociationsSum > 0) { + log.info(String.format("Found %d entity(ies) in reverse many to many association of entity: %s", manyToManyAssociationsSum, entity.getTopiaId())); + buildCountUsageResult(manyToManyAssociations, result); + } + Map<Class<? extends TopiaEntity>, Long> oneToManyAssociations = topiaUsageSupport.countReverseOneToManyAssociations(entity, DtoModelHelper::isData); + long oneToManyAssociationsSum = oneToManyAssociations.values().stream().reduce(Long::sum).orElse(0L); + if (oneToManyAssociationsSum > 0) { + log.info(String.format("Found %d entity(ies) in reverse one to many association of entity: %s", oneToManyAssociationsSum, entity.getTopiaId())); +// buildCountUsageResult(oneToManyAssociations, result); + } return new DtoUsageCountResult<>(request, result.build()); } @@ -81,14 +99,23 @@ public class UsageServiceLocal extends ObserveServiceLocal implements UsageServi Class<T> dtoType = DtoModelHelper.getDtoType(targetType); DtoEntityContext<T, R, Entity, ?> entityContext = DbModelHelper.fromDto(dtoType); Class<Entity> entityType = entityContext.toEntityType(); - - List<Entity> compositions = topiaUsageSupport.findReverseComposition(entity, entityType); - List<Entity> associations = topiaUsageSupport.findReverseAssociation(entity, entityType); - ImmutableSet.Builder<R> result = ImmutableSet.builder(); - buildUsageResult(entityType, compositions, result); - buildUsageResult(entityType, associations, result); + List<Entity> compositions = topiaUsageSupport.findReverseComposition(entity, entityType); + if (compositions.size() > 0) { + log.info(String.format("Found %d entity(ies) in reverse composition of entity: %s for type: %s", compositions.size(), entity.getTopiaId(), entityType.getName())); + buildFindUsageResult(entityType, compositions, result); + } + List<Entity> manyToManyAssociations = topiaUsageSupport.findReverseManyToManyAssociation(entity, entityType); + if (manyToManyAssociations.size() > 0) { + log.info(String.format("Found %d entity(ies) in reverse many to many composition of entity: %s for type: %s", manyToManyAssociations.size(), entity.getTopiaId(), entityType.getName())); + buildFindUsageResult(entityType, manyToManyAssociations, result); + } + List<Entity> oneToManyAssociations = topiaUsageSupport.findReverseOneToManyAssociation(entity, entityType); + if (oneToManyAssociations.size() > 0) { + log.info(String.format("Found %d entity(ies) in reverse one to many composition of entity: %s for type: %s", oneToManyAssociations.size(), entity.getTopiaId(), entityType.getName())); +// buildFindUsageResult(entityType, oneToManyAssociations, result); + } return result.build(); } @@ -106,7 +133,7 @@ public class UsageServiceLocal extends ObserveServiceLocal implements UsageServi } @SuppressWarnings({"rawtypes", "unchecked"}) - private <R extends DtoReference<?, R>> void buildUsageResult(Class<? extends TopiaEntity> type, List<? extends TopiaEntity> entities, ImmutableSet.Builder<R> result) { + private <R extends DtoReference<?, R>> void buildFindUsageResult(Class<? extends TopiaEntity> type, List<? extends TopiaEntity> entities, ImmutableSet.Builder<R> result) { if (ReferentialEntity.class.isAssignableFrom(type)) { addAllReferentialUsage((Class) type, (List) entities, (ImmutableSet.Builder) result); } else { View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/986b5c2cc887c828da90e2a2… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/986b5c2cc887c828da90e2a2… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] 3 commits: Only generate templates when model is init.
by Tony CHEMIT 17 May '20

17 May '20
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 06d206c7 by Tony Chemit at 2020-05-15T12:42:46+02:00 Only generate templates when model is init. - - - - - b1466c3c by Tony Chemit at 2020-05-17T20:31:27+02:00 Rethink Usage support from topia-extension - - - - - 986b5c2c by Tony Chemit at 2020-05-17T20:31:45+02:00 fix if parent file is null (should find out how does that happens) - - - - - 11 changed files: - client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/save/SaveLocalModel.java - client-datasource-editor-api/src/main/java/fr/ird/observe/client/datasource/editor/wizard/connexion/DataSourceSelectorHandler.java - client-datasource-editor-api/src/main/java/fr/ird/observe/client/datasource/editor/wizard/tabs/ChooseDbModeUIHandler.java - client-datasource-editor-api/src/main/java/fr/ird/observe/client/datasource/editor/wizard/tabs/ConfigUIHandler.java - persistence/src/main/java/fr/ird/observe/entities/ObserveTopiaApplicationContext.java - persistence/src/main/java/fr/ird/observe/entities/ObserveTopiaPersistenceContext.java - persistence/src/main/java/fr/ird/observe/entities/ObserveTopiaPersistenceContextConstructorParameter.java - pom.xml - services-local/src/main/java/fr/ird/observe/services/local/service/actions/synchro/referential/sql/DeleteSqlStatementGenerator.java - services-local/src/main/java/fr/ird/observe/services/local/service/actions/synchro/referential/sql/ReplaceSqlStatementGenerator.java - services-local/src/main/java/fr/ird/observe/services/local/service/usage/UsageServiceLocal.java Changes: ===================================== client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/save/SaveLocalModel.java ===================================== @@ -132,7 +132,7 @@ public class SaveLocalModel extends AdminActionModel { public boolean isCanSaveLocal() { boolean validate = !doBackup || backupFile != null && - !backupFile.exists() && backupFile.getParentFile().exists() && ObserveUtil.withSqlGzExtension(backupFile.getName()); + !backupFile.exists() && backupFile.getParentFile()!=null && backupFile.getParentFile().exists() && ObserveUtil.withSqlGzExtension(backupFile.getName()); if (validate) { String filename = getBackupFileName(); validate = !filename.isEmpty() && !filename.contains("."); ===================================== client-datasource-editor-api/src/main/java/fr/ird/observe/client/datasource/editor/wizard/connexion/DataSourceSelectorHandler.java ===================================== @@ -63,7 +63,7 @@ public class DataSourceSelectorHandler implements UIHandler<DataSourceSelector> String text = null; if (valid) { ObserveDataSourceInformation dataSourceInformation = model.getDataSourceInformation(); - if (dataSourceInformation != null && dataSourceInformation.getVersion() != null) { + if (model.isInit() && dataSourceInformation != null && dataSourceInformation.getVersion() != null) { text = ObserveDataSourceInformationTemplate.generate(dataSourceInformation); } } else { ===================================== client-datasource-editor-api/src/main/java/fr/ird/observe/client/datasource/editor/wizard/tabs/ChooseDbModeUIHandler.java ===================================== @@ -52,8 +52,10 @@ class ChooseDbModeUIHandler extends StorageTabUIHandler<ChooseDbModeUI> implemen PropertyChangeListener listener = evt -> { StorageUIModel model = (StorageUIModel) evt.getSource(); - String txt = StorageUIModelTemplate.generateDataSourceSelectModeResume(model); - ui.getResume().setText(txt); + if (model.isInit() && model.isValid()) { + String txt = StorageUIModelTemplate.generateDataSourceSelectModeResume(model); + ui.getResume().setText(txt); + } }; StorageUIModel model = ui.getModel(); model.addPropertyChangeListener(StorageUIModel.DB_MODE_PROPERTY_NAME, listener); ===================================== client-datasource-editor-api/src/main/java/fr/ird/observe/client/datasource/editor/wizard/tabs/ConfigUIHandler.java ===================================== @@ -124,7 +124,10 @@ public class ConfigUIHandler extends StorageTabUIHandler<ConfigUI> implements UI } String updateConnexionStatusText(@SuppressWarnings("unused") ConnexionStatus status) { - return StorageUIModelTemplate.generateConnexionTestResult(ui.getModel()); + if (ui.getModel().isInit()) { + return StorageUIModelTemplate.generateConnexionTestResult(ui.getModel()); + } + return ""; } ===================================== persistence/src/main/java/fr/ird/observe/entities/ObserveTopiaApplicationContext.java ===================================== @@ -58,8 +58,9 @@ public class ObserveTopiaApplicationContext extends AbstractObserveTopiaApplicat private static final String INSERT_LAST_UPDATE_PATTERN = "INSERT INTO COMMON.LASTUPDATEDATE (TOPIAID, TOPIAVERSION, TOPIACREATEDATE, TYPE, LASTUPDATEDATE) VALUES ('fr.ird.observe.entities.LastUpdateDate#1236861982132#0.%03d', 0, CURRENT_TIMESTAMP, '%s', CURRENT_TIMESTAMP);"; private static final String CREATE_SCHEMA_SQL = "CREATE SCHEMA %s;"; protected final String authenticationToken; - private transient TopiaMetadataModelSupport topiaMetadataModelSupport; private final TopiaSqlTablesFactory topiaSqlTablesFactory; + private transient TopiaMetadataModelSupport topiaMetadataModelSupport; + private transient ObserveTopiaUsageModel topiaUsageModel; /** * Mise à {@code true} quand au moins une connection a été effectuée. @@ -89,6 +90,7 @@ public class ObserveTopiaApplicationContext extends AbstractObserveTopiaApplicat getSessionRegistry(), getTopiaMetadataModelSupport(), this, + getTopiaUsageModel(), getConfiguration() ) ); @@ -277,7 +279,7 @@ public class ObserveTopiaApplicationContext extends AbstractObserveTopiaApplicat return referentialTables; } - public <E extends ReferentialEntity> TopiaSqlTables getReferentialTable(Class<E> entityType) { + public <E extends ReferentialEntity<?,?>> TopiaSqlTables getReferentialTable(Class<E> entityType) { ObserveEntityEnum entityEnum = ObserveEntityEnum.valueOf(entityType); return referentialTables = topiaSqlTablesFactory.newReplicateEntityTables(new TripReplicateTablesPredicate(), entityEnum); } @@ -286,6 +288,10 @@ public class ObserveTopiaApplicationContext extends AbstractObserveTopiaApplicat return topiaMetadataModelSupport == null ? topiaMetadataModelSupport = newModelSupport() : topiaMetadataModelSupport; } + public ObserveTopiaUsageModel getTopiaUsageModel() { + return topiaUsageModel == null ? topiaUsageModel = new ObserveTopiaUsageModel() : topiaUsageModel; + } + private void executeSqlStatements0(TopiaSqlScript content) { SqlScriptReader scriptLocation = content.getLocation(); @@ -326,7 +332,7 @@ public class ObserveTopiaApplicationContext extends AbstractObserveTopiaApplicat private static class TripReplicateTablesPredicate implements TopiaSqlTablesFactory.TopiaSqlTablesPredicate { - private final Set<TopiaMetadataEntity> dones = new LinkedHashSet<>(); + private final Set<TopiaMetadataEntity> done = new LinkedHashSet<>(); private final Set<String> sections = ImmutableSet.of( ObserveEntityEnum.ll_observation_Branchline.name(), ObserveEntityEnum.ll_observation_Basket.name(), @@ -337,7 +343,7 @@ public class ObserveTopiaApplicationContext extends AbstractObserveTopiaApplicat @Override public boolean acceptEntity(TopiaMetadataEntity metadataEntity) { - return dones.add(metadataEntity); + return done.add(metadataEntity); } @Override ===================================== persistence/src/main/java/fr/ird/observe/entities/ObserveTopiaPersistenceContext.java ===================================== @@ -29,7 +29,6 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.nuiton.topia.persistence.TopiaDao; import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.topia.persistence.TopiaEntityEnumProvider; import org.nuiton.topia.persistence.internal.AbstractTopiaPersistenceContextConstructorParameter; import org.nuiton.topia.persistence.internal.support.TopiaUsageSupportImpl; import org.nuiton.topia.persistence.metadata.TopiaMetadataModel; @@ -39,6 +38,7 @@ import org.nuiton.topia.persistence.script.TopiaSqlScript; import org.nuiton.topia.persistence.support.TopiaMetadataModelSupport; import org.nuiton.topia.persistence.support.TopiaSqlQuery; import org.nuiton.topia.persistence.support.TopiaUsageSupport; +import org.nuiton.topia.persistence.usage.TopiaUsageModel; import java.net.URL; import java.sql.Connection; @@ -57,8 +57,8 @@ public class ObserveTopiaPersistenceContext extends AbstractObserveTopiaPersiste private final boolean showSql; private final TopiaMetadataModelSupport topiaMetadataModelSupport; - private TopiaEntityEnumProvider topiaEntityEnumProvider; - private TopiaUsageSupport topiaUsageSupport; + private final TopiaUsageModel topiaUsageModel; + private transient TopiaUsageSupport topiaUsageSupport; public ObserveTopiaPersistenceContext(AbstractTopiaPersistenceContextConstructorParameter parameter) { super(parameter); @@ -68,17 +68,15 @@ public class ObserveTopiaPersistenceContext extends AbstractObserveTopiaPersiste public ObserveTopiaPersistenceContext(ObserveTopiaPersistenceContextConstructorParameter parameter) { super(parameter); topiaMetadataModelSupport = parameter.getTopiaMetadataModelSupport(); - topiaEntityEnumProvider = parameter.getTopiaEntityEnumProvider(); + topiaUsageModel = parameter.getTopiaUsageModel(); this.showSql = parameter.getConfiguration().isShowSql(); } public <E extends Entity> Date getLastUpdateDate(Class<E> entityType) { - LastUpdateDateTopiaDao dao = getDao(LastUpdateDate.class, LastUpdateDateTopiaDao.class); LastUpdateDate lastUpdateDate = dao.findUniqueByType(entityType.getName()); log.debug("getLastUpdateDate: " + lastUpdateDate.getLastUpdateDate() + " for entity type: " + entityType.getName()); return lastUpdateDate.getLastUpdateDate(); - } public <E extends Entity> void updateLastUpdateDate(E entity, Date date) { @@ -125,7 +123,6 @@ public class ObserveTopiaPersistenceContext extends AbstractObserveTopiaPersiste Objects.requireNonNull(entityEnum, "Entity " + entity + " is not managed by ToPIA"); //noinspection unchecked return (Class<E>) entityEnum.getContract(); - } public <E extends Entity> TopiaDao<E> getDao(E entity) { @@ -173,9 +170,7 @@ public class ObserveTopiaPersistenceContext extends AbstractObserveTopiaPersiste } dao.delete(entity); } - updateLastUpdateDate(entityType, now); - } public void executeSqlScript(URL location) { @@ -201,29 +196,27 @@ public class ObserveTopiaPersistenceContext extends AbstractObserveTopiaPersiste } public TopiaUsageSupport getTopiaUsageSupport() { - if (topiaUsageSupport == null) { - topiaUsageSupport = new TopiaUsageSupportImpl(this, topiaMetadataModelSupport, topiaEntityEnumProvider); - } - return topiaUsageSupport; + return topiaUsageSupport == null ? topiaUsageSupport = new TopiaUsageSupportImpl(this, topiaUsageModel) : topiaUsageSupport; } - public <E extends DataEntity> E getMultipleAssociationParent(Class<E> associationContainerType, String associationName, String associationId) { + public <E extends DataEntity<?, ?>> E getMultipleAssociationParent(Class<E> associationContainerType, String associationName, String associationId) { ObserveEntityEnum parentEntityEnum = ObserveEntityEnum.valueOf(associationContainerType); TopiaMetadataModel metadataModel = topiaMetadataModelSupport.getMetadataModel(); String parentId = metadataModel.getMultipleAssociationParentId(getSqlSupport(), parentEntityEnum, associationName, associationId); return getAssociationParent(associationContainerType, associationName, associationId, parentId); } - public <E extends DataEntity> E getSingleAssociationParent(Class<E> associationContainerType, String associationName, String associationId) { + public <E extends DataEntity<?, ?>> E getSingleAssociationParent(Class<E> associationContainerType, String associationName, String associationId) { ObserveEntityEnum parentEntityEnum = ObserveEntityEnum.valueOf(associationContainerType); TopiaMetadataModel metadataModel = topiaMetadataModelSupport.getMetadataModel(); String parentId = metadataModel.getSingleAssociationParentId(getSqlSupport(), parentEntityEnum, associationName, associationId); return getAssociationParent(associationContainerType, associationName, associationId, parentId); } - private <E extends DataEntity> E getAssociationParent(Class<E> associationContainerType, String associationName, String associationId, String parentId) { + @SuppressWarnings("unchecked") + private <E extends DataEntity<?, ?>> E getAssociationParent(Class<E> associationContainerType, String associationName, String associationId, String parentId) { if (parentId == null) { - @SuppressWarnings("unchecked") + @SuppressWarnings({"rawtypes"}) Class<? extends DataEntity> associationType = getTopiaIdFactory().getClassName(associationId); throw new DataAssociationParentNotFoundException(DbModelHelper.fromDataEntity(associationType).toDtoType(), associationName, associationId); } ===================================== persistence/src/main/java/fr/ird/observe/entities/ObserveTopiaPersistenceContextConstructorParameter.java ===================================== @@ -29,13 +29,16 @@ import org.nuiton.topia.persistence.internal.HibernateProvider; import org.nuiton.topia.persistence.internal.TopiaHibernateSessionRegistry; import org.nuiton.topia.persistence.internal.support.TopiaFiresSupport; import org.nuiton.topia.persistence.support.TopiaMetadataModelSupport; +import org.nuiton.topia.persistence.support.TopiaUsageSupport; +import org.nuiton.topia.persistence.usage.TopiaUsageModel; import java.util.Objects; class ObserveTopiaPersistenceContextConstructorParameter extends AbstractTopiaPersistenceContextConstructorParameter { private final TopiaMetadataModelSupport topiaMetadataModelSupport; - private final TopiaEntityEnumProvider topiaEntityEnumProvider; + private final TopiaEntityEnumProvider<?> topiaEntityEnumProvider; + private final TopiaUsageModel topiaUsageModel; private final ObserveTopiaConfiguration configuration; /** @@ -45,13 +48,15 @@ class ObserveTopiaPersistenceContextConstructorParameter extends AbstractTopiaPe * @param sessionRegistry hibernate session registry * @param topiaMetadataModelSupport metaData model support * @param topiaEntityEnumProvider entity enum provider + * @param topiaUsageModel topia usage support * @param configuration topia configuration */ - public ObserveTopiaPersistenceContextConstructorParameter(HibernateProvider hibernateProvider, TopiaFiresSupport applicationFiresSupport, TopiaIdFactory topiaIdFactory, TopiaHibernateSessionRegistry sessionRegistry, TopiaMetadataModelSupport topiaMetadataModelSupport, TopiaEntityEnumProvider topiaEntityEnumProvider, ObserveTopiaConfiguration configuration) { + public ObserveTopiaPersistenceContextConstructorParameter(HibernateProvider hibernateProvider, TopiaFiresSupport applicationFiresSupport, TopiaIdFactory topiaIdFactory, TopiaHibernateSessionRegistry sessionRegistry, TopiaMetadataModelSupport topiaMetadataModelSupport, TopiaEntityEnumProvider<?> topiaEntityEnumProvider, TopiaUsageModel topiaUsageModel, ObserveTopiaConfiguration configuration) { super(hibernateProvider, applicationFiresSupport, topiaIdFactory, sessionRegistry); this.topiaMetadataModelSupport = Objects.requireNonNull(topiaMetadataModelSupport); - this.topiaEntityEnumProvider = topiaEntityEnumProvider; - this.configuration = configuration; + this.topiaEntityEnumProvider = Objects.requireNonNull(topiaEntityEnumProvider); + this.topiaUsageModel = Objects.requireNonNull(topiaUsageModel); + this.configuration = Objects.requireNonNull(configuration); } public TopiaMetadataModelSupport getTopiaMetadataModelSupport() { @@ -62,7 +67,11 @@ class ObserveTopiaPersistenceContextConstructorParameter extends AbstractTopiaPe return configuration; } - public TopiaEntityEnumProvider getTopiaEntityEnumProvider() { + public TopiaEntityEnumProvider<?> getTopiaEntityEnumProvider() { return topiaEntityEnumProvider; } + + public TopiaUsageModel getTopiaUsageModel() { + return topiaUsageModel; + } } ===================================== pom.xml ===================================== @@ -24,7 +24,7 @@ <parent> <groupId>io.ultreia.maven</groupId> <artifactId>pom</artifactId> - <version>2020.26</version> + <version>2020.27</version> </parent> <groupId>fr.ird.observe</groupId> @@ -162,7 +162,7 @@ <maven.build.timestamp.format>dd/MM/yyyy HH:mm z</maven.build.timestamp.format> <buildDate>${maven.build.timestamp}</buildDate> - <lib.version.toolkit>4.31</lib.version.toolkit> + <lib.version.toolkit>4.32</lib.version.toolkit> <lib.version.nuiton.validation>3.1</lib.version.nuiton.validation> <!--can't use 1.4.197 (date has changed + blob also)--> <lib.version.h2>1.4.196</lib.version.h2> @@ -176,7 +176,7 @@ <!--<lib.version.java4all.i18n>4.0-beta-3-SNAPSHOT</lib.version.java4all.i18n>--> <!--<lib.version.java4all.config>1.0.8-SNAPSHOT</lib.version.java4all.config>--> <!--<lib.version.nuiton.topia>3.4.2-SNAPSHOT</lib.version.nuiton.topia>--> -<!-- <lib.version.java4all.topia>1.20-SNAPSHOT</lib.version.java4all.topia>--> + <lib.version.java4all.topia>1.22</lib.version.java4all.topia> <!--<lib.version.java4all.http>1.0.17-SNAPSHOT</lib.version.java4all.http>--> <!-- license header configuration --> ===================================== services-local/src/main/java/fr/ird/observe/services/local/service/actions/synchro/referential/sql/DeleteSqlStatementGenerator.java ===================================== @@ -51,7 +51,7 @@ public class DeleteSqlStatementGenerator { public DeleteSqlStatementGenerator(TopiaMetadataModel topiaMetadataModel, TopiaMetadataEntity metadataEntity) { this.metadataEntity = Objects.requireNonNull(metadataEntity); this.associations = topiaMetadataModel.getAssociations(metadataEntity); - this.reverseAssociations = topiaMetadataModel.getReverseAssociations(metadataEntity); + this.reverseAssociations = topiaMetadataModel.getReverseManyToManyAssociations(metadataEntity); } public List<String> generateSql(String id) { ===================================== services-local/src/main/java/fr/ird/observe/services/local/service/actions/synchro/referential/sql/ReplaceSqlStatementGenerator.java ===================================== @@ -58,7 +58,7 @@ public class ReplaceSqlStatementGenerator { public ReplaceSqlStatementGenerator(TopiaMetadataModel topiaMetadataModel, TopiaMetadataEntity metadataEntity) { this.compositions = Objects.requireNonNull(topiaMetadataModel).getReverseCompositions(Objects.requireNonNull(metadataEntity)); - this.associations = topiaMetadataModel.getReverseAssociations(metadataEntity); + this.associations = topiaMetadataModel.getReverseManyToManyAssociations(metadataEntity); } public ImmutableList<String> generateSql(String sourceId, String replacementId) { ===================================== services-local/src/main/java/fr/ird/observe/services/local/service/usage/UsageServiceLocal.java ===================================== @@ -44,6 +44,8 @@ import fr.ird.observe.spi.context.DataDtoEntityContext; import fr.ird.observe.spi.context.DtoEntityContext; import fr.ird.observe.spi.context.ReferentialDtoEntityContext; import fr.ird.observe.spi.map.ImmutableTypedMap; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.topia.persistence.support.TopiaUsageSupport; @@ -58,17 +60,33 @@ import java.util.Map; */ public class UsageServiceLocal extends ObserveServiceLocal implements UsageService { + private static final Logger log = LogManager.getLogger(UsageServiceLocal.class); + @Override public <D extends ReferentialDto> DtoUsageCountResult<D> count(DtoUsageCountRequest<D> request) { ReferentialEntity<D, ?> entity = loadEntity(request.getDtoType(), request.getId()); TopiaUsageSupport topiaUsageSupport = serviceContext.getTopiaPersistenceContext().getTopiaUsageSupport(); - Map<Class<? extends TopiaEntity>, Long> compositions = topiaUsageSupport.countReverseCompositions(entity, e -> true); - Map<Class<? extends TopiaEntity>, Long> associations = topiaUsageSupport.countReverseAssociations(entity, DtoModelHelper::isData); - ImmutableTypedMap.Builder<Long> result = ImmutableTypedMap.builder(); - buildCountUsageResult(compositions, result); - buildCountUsageResult(associations, result); + + Map<Class<? extends TopiaEntity>, Long> compositions = topiaUsageSupport.countReverseCompositions(entity, e -> true); + long compositionsSum = compositions.values().stream().reduce(Long::sum).orElse(0L); + if (compositionsSum > 0) { + log.info(String.format("Found %d entity(ies) in reverse composition of entity: %s", compositionsSum, entity.getTopiaId())); + buildCountUsageResult(compositions, result); + } + Map<Class<? extends TopiaEntity>, Long> manyToManyAssociations = topiaUsageSupport.countReverseManyToManyAssociations(entity, DtoModelHelper::isData); + long manyToManyAssociationsSum = manyToManyAssociations.values().stream().reduce(Long::sum).orElse(0L); + if (manyToManyAssociationsSum > 0) { + log.info(String.format("Found %d entity(ies) in reverse many to many association of entity: %s", manyToManyAssociationsSum, entity.getTopiaId())); + buildCountUsageResult(manyToManyAssociations, result); + } + Map<Class<? extends TopiaEntity>, Long> oneToManyAssociations = topiaUsageSupport.countReverseOneToManyAssociations(entity, DtoModelHelper::isData); + long oneToManyAssociationsSum = oneToManyAssociations.values().stream().reduce(Long::sum).orElse(0L); + if (oneToManyAssociationsSum > 0) { + log.info(String.format("Found %d entity(ies) in reverse one to many association of entity: %s", oneToManyAssociationsSum, entity.getTopiaId())); +// buildCountUsageResult(oneToManyAssociations, result); + } return new DtoUsageCountResult<>(request, result.build()); } @@ -81,14 +99,23 @@ public class UsageServiceLocal extends ObserveServiceLocal implements UsageServi Class<T> dtoType = DtoModelHelper.getDtoType(targetType); DtoEntityContext<T, R, Entity, ?> entityContext = DbModelHelper.fromDto(dtoType); Class<Entity> entityType = entityContext.toEntityType(); - - List<Entity> compositions = topiaUsageSupport.findReverseComposition(entity, entityType); - List<Entity> associations = topiaUsageSupport.findReverseAssociation(entity, entityType); - ImmutableSet.Builder<R> result = ImmutableSet.builder(); - buildUsageResult(entityType, compositions, result); - buildUsageResult(entityType, associations, result); + List<Entity> compositions = topiaUsageSupport.findReverseComposition(entity, entityType); + if (compositions.size() > 0) { + log.info(String.format("Found %d entity(ies) in reverse composition of entity: %s for type: %s", compositions.size(), entity.getTopiaId(), entityType.getName())); + buildFindUsageResult(entityType, compositions, result); + } + List<Entity> manyToManyAssociations = topiaUsageSupport.findReverseManyToManyAssociation(entity, entityType); + if (manyToManyAssociations.size() > 0) { + log.info(String.format("Found %d entity(ies) in reverse many to many composition of entity: %s for type: %s", manyToManyAssociations.size(), entity.getTopiaId(), entityType.getName())); + buildFindUsageResult(entityType, manyToManyAssociations, result); + } + List<Entity> oneToManyAssociations = topiaUsageSupport.findReverseOneToManyAssociation(entity, entityType); + if (oneToManyAssociations.size() > 0) { + log.info(String.format("Found %d entity(ies) in reverse one to many composition of entity: %s for type: %s", oneToManyAssociations.size(), entity.getTopiaId(), entityType.getName())); +// buildFindUsageResult(entityType, oneToManyAssociations, result); + } return result.build(); } @@ -106,7 +133,7 @@ public class UsageServiceLocal extends ObserveServiceLocal implements UsageServi } @SuppressWarnings({"rawtypes", "unchecked"}) - private <R extends DtoReference<?, R>> void buildUsageResult(Class<? extends TopiaEntity> type, List<? extends TopiaEntity> entities, ImmutableSet.Builder<R> result) { + private <R extends DtoReference<?, R>> void buildFindUsageResult(Class<? extends TopiaEntity> type, List<? extends TopiaEntity> entities, ImmutableSet.Builder<R> result) { if (ReferentialEntity.class.isAssignableFrom(type)) { addAllReferentialUsage((Class) type, (List) entities, (ImmutableSet.Builder) result); } else { View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/b3e8d3f6023b88140aa2f82b… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/b3e8d3f6023b88140aa2f82b… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] 3 commits: Ne pas sauvegarder automatiquement la base locale lors d'une action longue - Close #1487
by Tony CHEMIT 15 May '20

15 May '20
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 93b95077 by Tony Chemit at 2020-05-15T11:01:52+02:00 Ne pas sauvegarder automatiquement la base locale lors d&#39;une action longue - Close #1487 - - - - - 1ae23adb by Tony Chemit at 2020-05-15T11:15:21+02:00 [SYNCHRO MAREES] L&#39;assistant demande un remplacement de code manquant, même si celui-ci n&#39;est pas utilisé par les données (Improve generator code) - See #1432 - - - - - b3e8d3f6 by Tony Chemit at 2020-05-15T11:17:06+02:00 [SYNCHRO MAREES] L&#39;assistant demande un remplacement de code manquant, même si celui-ci n&#39;est pas utilisé par les données (Use usage service (do not take account of modification of referential inside antoher referential) - See #1432 - - - - - 9 changed files: - client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/AdminUIHandler.java - services-local/src/main/java/fr/ird/observe/services/local/service/actions/synchro/referential/legacy/UnidirectionalReferentialSynchronizeLocalServiceLocal.java - services-local/src/main/java/fr/ird/observe/services/local/service/actions/synchro/referential/ng/ReferentialSynchronizeSqlListRequestBuilder.java - services-local/src/main/java/fr/ird/observe/services/local/service/actions/synchro/referential/sql/InsertSqlGenerator.java - services-local/src/main/java/fr/ird/observe/services/local/service/actions/synchro/referential/sql/InsertSqlStatementGenerator.java - services-local/src/main/java/fr/ird/observe/services/local/service/actions/synchro/referential/sql/InsertSqlWithCascadeStatementGenerator.java - services-local/src/main/java/fr/ird/observe/services/local/service/actions/synchro/referential/sql/UpdateSqlStatementGenerator.java - services-local/src/main/java/fr/ird/observe/services/local/service/actions/synchro/referential/sql/UpdateSqlWithCascadeStatementGenerator.java - + services-local/src/main/java/fr/ird/observe/services/local/service/actions/synchro/referential/sql/WithCascadeStatementGenerator.java Changes: ===================================== client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/AdminUIHandler.java ===================================== @@ -272,9 +272,7 @@ public class AdminUIHandler implements UIHandler<AdminUI>, WithClientUIContext { if (ui.getModel().getStepState(AdminStep.SAVE_LOCAL) == WizardState.PENDING) { SaveLocalUI tabUI = (SaveLocalUI) ui.getStepUI(AdminStep.SAVE_LOCAL); - if (tabUI.getStepModel().isLocalSourceNeedSave()) { - SwingUtilities.invokeLater(tabUI.getStart()::doClick); - } else { + if (!tabUI.getStepModel().isLocalSourceNeedSave()) { SwingUtilities.invokeLater(tabUI.getContinueAction()::doClick); } } ===================================== services-local/src/main/java/fr/ird/observe/services/local/service/actions/synchro/referential/legacy/UnidirectionalReferentialSynchronizeLocalServiceLocal.java ===================================== @@ -41,10 +41,12 @@ import fr.ird.observe.services.local.service.actions.synchro.referential.sql.Upd import fr.ird.observe.services.service.LastUpdateDateService; import fr.ird.observe.services.service.actions.synchro.referential.legacy.UnidirectionalReferentialSynchronizeLocalService; import fr.ird.observe.services.service.actions.synchro.referential.legacy.UnidirectionalReferentialSynchronizeRequest; +import fr.ird.observe.services.service.usage.DtoUsageCountRequest; +import fr.ird.observe.services.service.usage.DtoUsageCountResult; +import fr.ird.observe.services.service.usage.UsageService; import fr.ird.observe.spi.DbModelHelper; import fr.ird.observe.spi.context.ReferentialDtoEntityContext; import org.nuiton.topia.persistence.TopiaDao; -import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.topia.persistence.metadata.TopiaMetadataEntity; import org.nuiton.topia.persistence.metadata.TopiaMetadataModel; import org.nuiton.topia.persistence.support.TopiaSqlWork; @@ -63,19 +65,20 @@ import java.util.Set; public class UnidirectionalReferentialSynchronizeLocalServiceLocal extends ObserveServiceLocal implements UnidirectionalReferentialSynchronizeLocalService { private LastUpdateDateService lastUpdateDateService; + private UsageService usageService; @Override public void setServiceContext(ObserveServiceContextLocal serviceContext) { super.setServiceContext(serviceContext); lastUpdateDateService = serviceContext.newService(LastUpdateDateService.class); + usageService = serviceContext.newService(UsageService.class); } @Override public <D extends ReferentialDto> ImmutableSet<String> filterIdsUsedInLocalSource(Class<D> dtoType, ImmutableSet<String> ids) { - Class<? extends ReferentialEntity<D, ?>> entityType = DbModelHelper.fromReferentialDtoWeak(dtoType).toEntityType(); Set<String> result = new LinkedHashSet<>(); for (String id : ids) { - int count = countUsage0(entityType, id); + long count = countUsage0(dtoType, id); if (count > 0) { result.add(id); } @@ -101,7 +104,7 @@ public class UnidirectionalReferentialSynchronizeLocalServiceLocal extends Obser TopiaMetadataModel metadataModel = serviceContext.getTopiaApplicationContext().getMetadataModel(); TopiaMetadataEntity metadataEntity = metadataModel.getEntity(referentielName); if (request.withReferentialToAdd()) { - InsertSqlStatementGenerator<D> sqlStatementGenerator = new InsertSqlStatementGenerator<>(metadataModel, metadataEntity, dtoType); + InsertSqlStatementGenerator sqlStatementGenerator = new InsertSqlStatementGenerator(metadataModel, metadataEntity); ImmutableSet<D> referentialToAdd = request.getReferentialToAdd(); if (ObjectMaterialDto.class.equals(dtoType)) { // must reorder to be sure to insert parent before sons @@ -149,15 +152,10 @@ public class UnidirectionalReferentialSynchronizeLocalServiceLocal extends Obser lastUpdateDateService.updateReferentialLastUpdateDates(); } - private <E extends ReferentialEntity<?, ?>> int countUsage0(Class<E> entityType, String id) { - TopiaDao<E> dao = getTopiaPersistenceContext().getDao(entityType); - E e = dao.forTopiaIdEquals(id).findUnique(); - Map<Class<? extends TopiaEntity>, List<? extends TopiaEntity>> allUsages = dao.findAllUsages(e); - int count = 0; - for (List<? extends TopiaEntity> entities : allUsages.values()) { - count += entities.size(); - } - return count; + private <D extends ReferentialDto> long countUsage0(Class<D> dtoType, String id) { + DtoUsageCountRequest<D> request = new DtoUsageCountRequest<>(dtoType, id); + DtoUsageCountResult<?> usageCount = usageService.count(request); + return usageCount.getCount().values().stream().reduce(Long::sum).orElse(0L); } private <E extends ReferentialEntity<D, R>, D extends ReferentialDto, R extends ReferentialDtoReference<D, R>> ReferentialDtoReferenceSet<R> getLocalSourceReferentialToDelete0(Class<E> entityType, Class<R> referenceType, ImmutableSet<String> ids) { ===================================== services-local/src/main/java/fr/ird/observe/services/local/service/actions/synchro/referential/ng/ReferentialSynchronizeSqlListRequestBuilder.java ===================================== @@ -140,20 +140,13 @@ public class ReferentialSynchronizeSqlListRequestBuilder { private <D extends ReferentialDto, R extends ReferentialDtoReference<D, R>, E extends ReferentialEntity<D, R>> void onAdd(TopiaMetadataEntity metadata, Class<D> dtoType, Class<E> entityType, Set<ReferentialSynchronizeTask> tasks, Multimap<Class<? extends ReferentialDto>, String> newIds) { List<E> insertEntities = loadEntities(entityType, tasks); - InsertSqlGenerator<D> insertGenerator; + InsertSqlGenerator insertGenerator; if (metadata.withEntities()) { Multimap<Class<? extends ReferentialDto>, String> allIds = ArrayListMultimap.create(request.getIdsOnlyExistingOnThisSide()); allIds.putAll(newIds); - insertGenerator = new InsertSqlWithCascadeStatementGenerator<D>(metadataModel, metadata, dtoType, allIds) { - - @Override - protected <DD extends ReferentialDto> ImmutableList<String> insertMissingReferential(Class<DD> referentialType, String id) { - ReferentialDtoEntityContext<DD, ?, ?, ?> modelContext = DbModelHelper.fromReferentialDto(referentialType); - return addExtraInsertStatement(modelContext, id); - } - }; + insertGenerator = new InsertSqlWithCascadeStatementGenerator(service, metadataModel, metadata, dtoType, allIds); } else { - insertGenerator = new InsertSqlStatementGenerator<>(metadataModel, metadata, dtoType); + insertGenerator = new InsertSqlStatementGenerator(metadataModel, metadata); } for (E entity : insertEntities) { @@ -173,15 +166,7 @@ public class ReferentialSynchronizeSqlListRequestBuilder { if (metadata.withEntities()) { Multimap<Class<? extends ReferentialDto>, String> allIds = ArrayListMultimap.create(request.getIdsOnlyExistingOnThisSide()); allIds.putAll(newIds); - updateGenerator = new UpdateSqlWithCascadeStatementGenerator<D>(metadataModel, metadata, request.getIdsOnlyExistingOnThisSide()) { - - @Override - protected <DD extends ReferentialDto> ImmutableList<String> insertMissingReferential(Class<DD> referentialType, String id) { - ReferentialDtoEntityContext<DD, ?, ?, ?> modelContext = DbModelHelper.fromReferentialDto(referentialType); - return addExtraInsertStatement(modelContext, id); - } - }; - + updateGenerator = new UpdateSqlWithCascadeStatementGenerator(service, metadataModel, metadata, request.getIdsOnlyExistingOnThisSide()); } else { updateGenerator = new UpdateSqlStatementGenerator(metadataModel, metadata); } @@ -256,7 +241,6 @@ public class ReferentialSynchronizeSqlListRequestBuilder { } } - private <D extends ReferentialDto> void onDeactivateWithReplacement(TopiaMetadataEntity metadata, Class<D> dtoType, Set<ReferentialSynchronizeTask> tasks) { ReplaceSqlStatementGenerator replaceGenerator = new ReplaceSqlStatementGenerator(metadataModel, metadata); @@ -277,18 +261,6 @@ public class ReferentialSynchronizeSqlListRequestBuilder { } } - private <D extends ReferentialDto, E extends ReferentialEntity<D, ?>> ImmutableList<String> addExtraInsertStatement(ReferentialDtoEntityContext<D, ?, E, ?> binder, String id) { - - Class<E> entityType = binder.toEntityType(); - Class<D> dtoType = binder.toDtoType(); - String referentialName = ObserveEntityEnum.valueOf(entityType).name(); - TopiaMetadataEntity metadata = metadataModel.getEntity(referentialName); - - InsertSqlStatementGenerator<D> insertGenerator = new InsertSqlStatementGenerator<>(metadataModel, metadata, dtoType); - D referential = service.loadEntityToReferentialDto(binder, id); - return insertGenerator.generateSql(referential); - } - private <E extends ReferentialEntity> List<E> loadEntities(Class<E> entityType, Set<ReferentialSynchronizeTask> tasks) { Set<String> ids = tasks.stream().map(ReferentialSynchronizeTask::getReferentialId).collect(Collectors.toSet()); return service.getTopiaPersistenceContext().loadEntities(entityType, ids); ===================================== services-local/src/main/java/fr/ird/observe/services/local/service/actions/synchro/referential/sql/InsertSqlGenerator.java ===================================== @@ -29,7 +29,7 @@ import fr.ird.observe.dto.referential.ReferentialDto; * @author Tony Chemit - dev(a)tchemit.fr * @since ? */ -public interface InsertSqlGenerator<D extends ReferentialDto> { +public interface InsertSqlGenerator { - ImmutableList<String> generateSql(D referentialDto); + ImmutableList<String> generateSql(ReferentialDto referentialDto); } ===================================== services-local/src/main/java/fr/ird/observe/services/local/service/actions/synchro/referential/sql/InsertSqlStatementGenerator.java ===================================== @@ -48,7 +48,7 @@ import java.util.Set; * * @author Tony Chemit - dev(a)tchemit.fr */ -public class InsertSqlStatementGenerator<D extends ReferentialDto> implements InsertSqlGenerator<D> { +public class InsertSqlStatementGenerator implements InsertSqlGenerator { private final TopiaMetadataEntity metadataEntity; private final Set<TopiaMetadataComposition> compositions; @@ -61,7 +61,7 @@ public class InsertSqlStatementGenerator<D extends ReferentialDto> implements In private final Set<String> primitiveLongPropertyNames; private final Set<String> primitiveFloatPropertyNames; - public InsertSqlStatementGenerator(TopiaMetadataModel topiaMetadataModel, TopiaMetadataEntity metadataEntity, Class<D> dtoType) { + public InsertSqlStatementGenerator(TopiaMetadataModel topiaMetadataModel, TopiaMetadataEntity metadataEntity) { this.metadataEntity = Objects.requireNonNull(metadataEntity); this.compositions = topiaMetadataModel.getCompositions(this.metadataEntity); this.associations = topiaMetadataModel.getAssociations(this.metadataEntity); @@ -79,7 +79,7 @@ public class InsertSqlStatementGenerator<D extends ReferentialDto> implements In @SuppressWarnings("unchecked") @Override - public ImmutableList<String> generateSql(D referentialDto) { + public ImmutableList<String> generateSql(ReferentialDto referentialDto) { ImmutableList.Builder<String> result = ImmutableList.builder(); @@ -152,22 +152,27 @@ public class InsertSqlStatementGenerator<D extends ReferentialDto> implements In for (TopiaMetadataAssociation association : associations) { Collection<ReferentialDtoReference<?, ?>> associationValues = referentialDto.get(association.getTargetPropertyName()); - for (ReferentialDtoReference<?, ?> associationValue : associationValues) { - String insertAssocationSql = TopiaSqlStatements.generateAssociationInsertStatement(association, id, associationValue.getId()); - result.add(TopiaSqlStatements.boxAssociationStatement(insertAssocationSql)); + for (@SuppressWarnings("rawtypes") ReferentialDtoReference associationValue : associationValues) { + addAssociation(association, id, associationValue, result); } } return result.build(); + } + protected <DD extends ReferentialDto, RR extends ReferentialDtoReference<DD, RR>> void addAssociation(TopiaMetadataAssociation association, + String sourceId, + RR associationValue, + ImmutableList.Builder<String> builder) { + String insertSql = TopiaSqlStatements.generateAssociationInsertStatement(association, sourceId, associationValue.getId()); + builder.add(TopiaSqlStatements.boxAssociationStatement(insertSql)); } + protected <DD extends ReferentialDto, RR extends ReferentialDtoReference<DD, RR>> void addReferentialReferenceParameter(RR parameter, List<String> parameters, ImmutableList.Builder<String> result) { + addStringParameter(parameter.getId(), parameters); + } - <DD extends ReferentialDto, RR extends ReferentialDtoReference<DD, RR>> void addAssociation(TopiaMetadataAssociation association, - String sourceId, - RR associationValue, - ImmutableList.Builder<String> builder) { - String insertAssocationSql = TopiaSqlStatements.generateAssociationInsertStatement(association, sourceId, associationValue.getId()); - builder.add(TopiaSqlStatements.boxAssociationStatement(insertAssocationSql)); + protected <DD extends ReferentialDto> void addReferentialDtoParameter(DD parameter, List<String> parameters, ImmutableList.Builder<String> result) { + addStringParameter(parameter.getId(), parameters); } private Set<String> computeColumnNames(TopiaMetadataEntity metadataEntity, @@ -227,12 +232,4 @@ public class InsertSqlStatementGenerator<D extends ReferentialDto> implements In parameters.add("" + parameter); } - protected <DD extends ReferentialDto, RR extends ReferentialDtoReference<DD, RR>> void addReferentialReferenceParameter(RR parameter, List<String> parameters, ImmutableList.Builder<String> result) { - addStringParameter(parameter.getId(), parameters); - } - - protected <DD extends ReferentialDto> void addReferentialDtoParameter(DD parameter, List<String> parameters, ImmutableList.Builder<String> result) { - addStringParameter(parameter.getId(), parameters); - } - } ===================================== services-local/src/main/java/fr/ird/observe/services/local/service/actions/synchro/referential/sql/InsertSqlWithCascadeStatementGenerator.java ===================================== @@ -26,6 +26,7 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.Multimap; import fr.ird.observe.dto.reference.ReferentialDtoReference; import fr.ird.observe.dto.referential.ReferentialDto; +import fr.ird.observe.services.local.service.actions.synchro.referential.ng.ReferentialSynchronizeServiceLocal; import org.nuiton.topia.persistence.metadata.TopiaMetadataAssociation; import org.nuiton.topia.persistence.metadata.TopiaMetadataEntity; import org.nuiton.topia.persistence.metadata.TopiaMetadataModel; @@ -40,62 +41,43 @@ import java.util.List; * @author Tony Chemit - dev(a)tchemit.fr * @since 5.0 */ -public abstract class InsertSqlWithCascadeStatementGenerator<D extends ReferentialDto> implements InsertSqlGenerator<D>{ +public class InsertSqlWithCascadeStatementGenerator extends WithCascadeStatementGenerator implements InsertSqlGenerator { - private final InsertSqlStatementGenerator<D> delegateGenerator; - private final Multimap<Class<? extends ReferentialDto>, String> idsOnlyExistingOnThisSide; + private final InsertSqlStatementGenerator delegateGenerator; - protected InsertSqlWithCascadeStatementGenerator(TopiaMetadataModel topiaMetadataModel, TopiaMetadataEntity metadataEntity, - Class<D> dtoType, + public InsertSqlWithCascadeStatementGenerator(ReferentialSynchronizeServiceLocal service, + TopiaMetadataModel topiaMetadataModel, + TopiaMetadataEntity metadataEntity, + Class<? extends ReferentialDto> dtoType, Multimap<Class<? extends ReferentialDto>, String> idsOnlyExistingOnThisSide) { - this.idsOnlyExistingOnThisSide = idsOnlyExistingOnThisSide; - this.delegateGenerator = new InsertSqlStatementGenerator<D>(topiaMetadataModel, metadataEntity, dtoType) { - + super(service, topiaMetadataModel); + this.delegateGenerator = new InsertSqlStatementGenerator(topiaMetadataModel, metadataEntity) { @Override - <DD extends ReferentialDto, RR extends ReferentialDtoReference<DD, RR>> void addAssociation(TopiaMetadataAssociation association, - String sourceId, - RR associationValue, - ImmutableList.Builder<String> builder) { + protected <DD extends ReferentialDto, RR extends ReferentialDtoReference<DD, RR>> void addAssociation(TopiaMetadataAssociation association, + String sourceId, + RR associationValue, + ImmutableList.Builder<String> builder) { super.addAssociation(association, sourceId, associationValue, builder); - addMissingReferentialIfNecessary(associationValue.getDtoType(), associationValue.getId(), builder); + addMissingReferentialIfNecessary(idsOnlyExistingOnThisSide, associationValue.getDtoType(), associationValue.getId(), builder); } @Override - protected <DD extends ReferentialDto, RR extends ReferentialDtoReference<DD, RR>> void addReferentialReferenceParameter(RR parameter, List<String> parameters, ImmutableList.Builder<String> result) { - super.addReferentialReferenceParameter(parameter, parameters, result); - addMissingReferentialIfNecessary(parameter.getDtoType(), parameter.getId(), result); + protected <DD extends ReferentialDto, RR extends ReferentialDtoReference<DD, RR>> void addReferentialReferenceParameter(RR parameter, List<String> parameters, ImmutableList.Builder<String> builder) { + super.addReferentialReferenceParameter(parameter, parameters, builder); + addMissingReferentialIfNecessary(idsOnlyExistingOnThisSide, parameter.getDtoType(), parameter.getId(), builder); } @Override - protected <DD extends ReferentialDto> void addReferentialDtoParameter(DD parameter, List<String> parameters, ImmutableList.Builder<String> result) { - super.addReferentialDtoParameter(parameter, parameters, result); - addMissingReferentialIfNecessary(dtoType, parameter.getId(), result); + protected <DD extends ReferentialDto> void addReferentialDtoParameter(DD parameter, List<String> parameters, ImmutableList.Builder<String> builder) { + super.addReferentialDtoParameter(parameter, parameters, builder); + addMissingReferentialIfNecessary(idsOnlyExistingOnThisSide, dtoType, parameter.getId(), builder); } }; } - protected abstract <DD extends ReferentialDto> ImmutableList<String> insertMissingReferential(Class<DD> referentialType, String id); - @Override - public ImmutableList<String> generateSql(D referentialDto) { - + public ImmutableList<String> generateSql(ReferentialDto referentialDto) { return delegateGenerator.generateSql(referentialDto); - - } - - private <DD extends ReferentialDto> void addMissingReferentialIfNecessary(Class<DD> associationType, String associationId, ImmutableList.Builder<String> builder) { - - if (idsOnlyExistingOnThisSide.containsEntry(associationType, associationId)) { - - // il faut insérer aussi ce référentiel - ImmutableList<String> sql = insertMissingReferential(associationType, associationId); - - builder.addAll(sql); - - // ce référentiel est désormais présent dans les deux sources - idsOnlyExistingOnThisSide.remove(associationType, associationId); - - } } } ===================================== services-local/src/main/java/fr/ird/observe/services/local/service/actions/synchro/referential/sql/UpdateSqlStatementGenerator.java ===================================== @@ -208,14 +208,22 @@ public class UpdateSqlStatementGenerator implements UpdateSqlGenerator { return result.build(); } - <DD extends ReferentialDto, RR extends ReferentialDtoReference<DD, RR>> void addAssociation(TopiaMetadataAssociation association, - String sourceId, - RR associationValue, - ImmutableList.Builder<String> builder) { + protected <DD extends ReferentialDto, RR extends ReferentialDtoReference<DD, RR>> void addAssociation(TopiaMetadataAssociation association, + String sourceId, + RR associationValue, + ImmutableList.Builder<String> builder) { String insertSql = TopiaSqlStatements.generateAssociationInsertStatement(association, sourceId, associationValue.getId()); builder.add(TopiaSqlStatements.boxAssociationStatement(insertSql)); } + protected <DD extends ReferentialDto, RR extends ReferentialDtoReference<DD, RR>> void addReferentialReferenceParameter(String columnName, RR parameter, StringBuilder parameters, ImmutableList.Builder<String> result) { + addStringParameter(columnName, parameter.getId(), parameters); + } + + protected <DD extends ReferentialDto> void addReferentialDtoParameter(String columnName, DD parameter, StringBuilder parameters, ImmutableList.Builder<String> result) { + addStringParameter(columnName, parameter.getId(), parameters); + } + private Map<String, String> computeColumnNames(TopiaMetadataEntity metadataEntity, String[] simplePropertyNames, String[] compositionPropertyNames) { Map<String, String> columnNames = new TreeMap<>(); @@ -252,14 +260,6 @@ public class UpdateSqlStatementGenerator implements UpdateSqlGenerator { addParameter0(columnName, "" + parameter, parameters); } - protected <DD extends ReferentialDto, RR extends ReferentialDtoReference<DD, RR>> void addReferentialReferenceParameter(String columnName, RR parameter, StringBuilder parameters, ImmutableList.Builder<String> result) { - addStringParameter(columnName, parameter.getId(), parameters); - } - - protected <DD extends ReferentialDto> void addReferentialDtoParameter(String columnName, DD parameter, StringBuilder parameters, ImmutableList.Builder<String> result) { - addStringParameter(columnName, parameter.getId(), parameters); - } - private void addParameter0(String columnName, String value, StringBuilder parameters) { parameters.append(", ").append(columnName).append(" = ").append(value); } ===================================== services-local/src/main/java/fr/ird/observe/services/local/service/actions/synchro/referential/sql/UpdateSqlWithCascadeStatementGenerator.java ===================================== @@ -27,6 +27,7 @@ import com.google.common.collect.ImmutableSet; import com.google.common.collect.Multimap; import fr.ird.observe.dto.reference.ReferentialDtoReference; import fr.ird.observe.dto.referential.ReferentialDto; +import fr.ird.observe.services.local.service.actions.synchro.referential.ng.ReferentialSynchronizeServiceLocal; import org.nuiton.topia.persistence.metadata.TopiaMetadataAssociation; import org.nuiton.topia.persistence.metadata.TopiaMetadataEntity; import org.nuiton.topia.persistence.metadata.TopiaMetadataModel; @@ -41,58 +42,41 @@ import java.util.Date; * @author Tony Chemit - dev(a)tchemit.fr * @since 5.0 */ -public abstract class UpdateSqlWithCascadeStatementGenerator<D extends ReferentialDto> implements UpdateSqlGenerator { +public class UpdateSqlWithCascadeStatementGenerator extends WithCascadeStatementGenerator implements UpdateSqlGenerator { private final UpdateSqlStatementGenerator delegateGenerator; - private final Multimap<Class<? extends ReferentialDto>, String> idsOnlyExistingOnThisSide; - protected UpdateSqlWithCascadeStatementGenerator(TopiaMetadataModel topiaMetadataModel, - TopiaMetadataEntity metadataEntity, - Multimap<Class<? extends ReferentialDto>, String> idsOnlyExistingOnThisSide) { - this.idsOnlyExistingOnThisSide = idsOnlyExistingOnThisSide; + public UpdateSqlWithCascadeStatementGenerator(ReferentialSynchronizeServiceLocal service, + TopiaMetadataModel topiaMetadataModel, + TopiaMetadataEntity metadataEntity, + Multimap<Class<? extends ReferentialDto>, String> idsOnlyExistingOnThisSide) { + super(service, topiaMetadataModel); this.delegateGenerator = new UpdateSqlStatementGenerator(topiaMetadataModel, metadataEntity) { - - - <DD extends ReferentialDto, RR extends ReferentialDtoReference<DD, RR>> void addAssociation(TopiaMetadataAssociation association, - String sourceId, - RR associationValue, - ImmutableList.Builder<String> builder) { + @Override + protected <DD extends ReferentialDto, RR extends ReferentialDtoReference<DD, RR>> void addAssociation(TopiaMetadataAssociation association, + String sourceId, + RR associationValue, + ImmutableList.Builder<String> builder) { super.addAssociation(association, sourceId, associationValue, builder); - addMissingReferentialIfNecessary(associationValue.getDtoType(), associationValue.getId(), builder); + addMissingReferentialIfNecessary(idsOnlyExistingOnThisSide, associationValue.getDtoType(), associationValue.getId(), builder); } @Override - protected <DD extends ReferentialDto, RR extends ReferentialDtoReference<DD, RR>> void addReferentialReferenceParameter(String columnName, RR parameter, StringBuilder parameters, ImmutableList.Builder<String> result) { - super.addReferentialReferenceParameter(columnName, parameter, parameters, result); - addMissingReferentialIfNecessary(parameter.getDtoType(), parameter.getId(), result); + protected <DD extends ReferentialDto, RR extends ReferentialDtoReference<DD, RR>> void addReferentialReferenceParameter(String columnName, RR parameter, StringBuilder parameters, ImmutableList.Builder<String> builder) { + super.addReferentialReferenceParameter(columnName, parameter, parameters, builder); + addMissingReferentialIfNecessary(idsOnlyExistingOnThisSide, parameter.getDtoType(), parameter.getId(), builder); } @Override - protected <DD extends ReferentialDto> void addReferentialDtoParameter(String columnName, DD parameter, StringBuilder parameters, ImmutableList.Builder<String> result) { - super.addReferentialDtoParameter(columnName, parameter, parameters, result); - addMissingReferentialIfNecessary(parameter.getClass(), parameter.getId(), result); + protected <DD extends ReferentialDto> void addReferentialDtoParameter(String columnName, DD parameter, StringBuilder parameters, ImmutableList.Builder<String> builder) { + super.addReferentialDtoParameter(columnName, parameter, parameters, builder); + addMissingReferentialIfNecessary(idsOnlyExistingOnThisSide, parameter.getClass(), parameter.getId(), builder); } }; } - protected abstract <DD extends ReferentialDto> ImmutableList<String> insertMissingReferential(Class<DD> referentialType, String id); - @Override public ImmutableList<String> generateSql(ReferentialDto referentialDto, ImmutableSet<String> properties, Date lastUpdateDate) { return delegateGenerator.generateSql(referentialDto, properties, lastUpdateDate); } - - private <DD extends ReferentialDto> void addMissingReferentialIfNecessary(Class<DD> associationType, String associationId, ImmutableList.Builder<String> result) { - - if (idsOnlyExistingOnThisSide.containsEntry(associationType, associationId)) { - - // il faut insérer aussi ce référentiel - ImmutableList<String> sqlList = insertMissingReferential(associationType, associationId); - result.addAll(sqlList); - // ce référentiel est désormais présent dans les deux sources - idsOnlyExistingOnThisSide.remove(associationType, associationId); - - } - } - } ===================================== services-local/src/main/java/fr/ird/observe/services/local/service/actions/synchro/referential/sql/WithCascadeStatementGenerator.java ===================================== @@ -0,0 +1,77 @@ +package fr.ird.observe.services.local.service.actions.synchro.referential.sql; + +/*- + * #%L + * ObServe :: Services local + * %% + * Copyright (C) 2008 - 2020 IRD, Code Lutin, Ultreia.io + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import com.google.common.collect.ImmutableList; +import com.google.common.collect.Multimap; +import fr.ird.observe.dto.reference.ReferentialDtoReference; +import fr.ird.observe.dto.referential.ReferentialDto; +import fr.ird.observe.entities.ObserveEntityEnum; +import fr.ird.observe.entities.referential.ReferentialEntity; +import fr.ird.observe.services.local.service.actions.synchro.referential.ng.ReferentialSynchronizeServiceLocal; +import fr.ird.observe.spi.DbModelHelper; +import fr.ird.observe.spi.context.ReferentialDtoEntityContext; +import org.nuiton.topia.persistence.metadata.TopiaMetadataEntity; +import org.nuiton.topia.persistence.metadata.TopiaMetadataModel; + +/** + * Support statement generator when a cascade can be done on adding new referential. + * + * @author Tony Chemit - dev(a)tchemit.fr + * @since 8.0 + */ +public abstract class WithCascadeStatementGenerator { + + private final ReferentialSynchronizeServiceLocal service; + private final TopiaMetadataModel metadataModel; + + protected WithCascadeStatementGenerator(ReferentialSynchronizeServiceLocal service, TopiaMetadataModel metadataModel) { + this.service = service; + this.metadataModel = metadataModel; + } + + public <D extends ReferentialDto> void addMissingReferentialIfNecessary(Multimap<Class<? extends ReferentialDto>, String> idsOnlyExistingOnThisSide, Class<D> associationType, String associationId, ImmutableList.Builder<String> builder) { + + if (idsOnlyExistingOnThisSide.containsEntry(associationType, associationId)) { + // need to add this referential on this other side + ImmutableList<String> sqlList = insertMissingReferential(associationType, associationId); + builder.addAll(sqlList); + // now this referential is on both side + idsOnlyExistingOnThisSide.remove(associationType, associationId); + } + } + + protected <D extends ReferentialDto, R extends ReferentialDtoReference<D, R>, E extends ReferentialEntity<D, R>> ImmutableList<String> insertMissingReferential(Class<D> referentialType, String id) { + ReferentialDtoEntityContext<D, R, E, ?> modelContext = DbModelHelper.fromReferentialDto(referentialType); + + Class<E> entityType = modelContext.toEntityType(); + String referentialName = ObserveEntityEnum.valueOf(entityType).name(); + TopiaMetadataEntity metadata = metadataModel.getEntity(referentialName); + + InsertSqlStatementGenerator insertGenerator = new InsertSqlStatementGenerator(metadataModel, metadata); + D referential = service.loadEntityToReferentialDto(modelContext, id); + return insertGenerator.generateSql(referential); + } + + +} View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/27f5f925a42849f4eeb6887c… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/27f5f925a42849f4eeb6887c… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] Impossible d'éditer un référentiel :( - Closes #1486
by Tony CHEMIT 15 May '20

15 May '20
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 27f5f925 by Tony Chemit at 2020-05-15T09:38:16+02:00 Impossible d&#39;éditer un référentiel :( - Closes #1486 - - - - - 26 changed files: - client-configuration/pom.xml - client-core/pom.xml - client-datasource-actions/pom.xml - client-datasource-editor-api/pom.xml - client-datasource-editor-api/src/main/java/fr/ird/observe/client/datasource/editor/content/ref/actions/Save.java - client-datasource-editor-api/src/main/java/fr/ird/observe/client/datasource/editor/content/spi/ContentUIReferenceCache.java - client-datasource-editor-common/pom.xml - client-datasource-editor-ll/pom.xml - client-datasource-editor-ps/pom.xml - client-runner/pom.xml - dto-spi/pom.xml - dto/pom.xml - observe-i18n/pom.xml - persistence-spi/pom.xml - persistence/pom.xml - pom.xml - server-configuration/pom.xml - server-core/pom.xml - services-client/pom.xml - services-local/pom.xml - services-local/src/main/java/fr/ird/observe/services/local/service/referential/ReferentialServiceLocal.java - services-validation/pom.xml - services/pom.xml - test-config/pom.xml - test/pom.xml - validation/pom.xml Changes: ===================================== client-configuration/pom.xml ===================================== @@ -97,8 +97,7 @@ </dependency> <dependency> <groupId>com.google.auto.service</groupId> - <artifactId>auto-service</artifactId> - <scope>provided</scope> + <artifactId>auto-service-annotations</artifactId> </dependency> <dependency> ===================================== client-core/pom.xml ===================================== @@ -207,6 +207,11 @@ <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> </dependency> + <dependency> + <groupId>com.google.auto.service</groupId> + <artifactId>auto-service-annotations</artifactId> + </dependency> + <dependency> <groupId>io.ultreia.java4all.config</groupId> <artifactId>config-api</artifactId> ===================================== client-datasource-actions/pom.xml ===================================== @@ -29,8 +29,8 @@ <artifactId>client-datasource-actions</artifactId> - <name>ObServe :: Client DataSource actions</name> - <description>ObServe Client DataSource actions module</description> + <name>ObServe :: Client DataSource Actions</name> + <description>ObServe Client DataSource Actions module</description> <dependencies> @@ -162,6 +162,10 @@ <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </dependency> + <dependency> + <groupId>com.google.auto.service</groupId> + <artifactId>auto-service-annotations</artifactId> + </dependency> <dependency> <groupId>org.nuiton</groupId> @@ -200,11 +204,6 @@ <groupId>junit</groupId> <artifactId>junit</artifactId> </dependency> - <dependency> - <groupId>com.google.auto.service</groupId> - <artifactId>auto-service</artifactId> - <scope>provided</scope> - </dependency> </dependencies> ===================================== client-datasource-editor-api/pom.xml ===================================== @@ -185,6 +185,10 @@ <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </dependency> + <dependency> + <groupId>com.google.auto.service</groupId> + <artifactId>auto-service-annotations</artifactId> + </dependency> <dependency> <groupId>org.nuiton</groupId> @@ -235,11 +239,6 @@ <groupId>junit</groupId> <artifactId>junit</artifactId> </dependency> - <dependency> - <groupId>com.google.auto.service</groupId> - <artifactId>auto-service</artifactId> - <scope>provided</scope> - </dependency> </dependencies> ===================================== client-datasource-editor-api/src/main/java/fr/ird/observe/client/datasource/editor/content/ref/actions/Save.java ===================================== @@ -75,7 +75,14 @@ public class Save<D extends ReferentialDto, R extends ReferentialDtoReference<D, try { boolean ok = doSave(ui, model.getBean(), notPersisted); if (ok) { - afterSave(ui, model.getBean(), notPersisted); + try { + model.setResetEdit(true); + afterSave(ui, model.getBean(), notPersisted); + } finally { + SwingValidatorUtil.setValidatorChanged(ui, false); + model.setResetEdit(false); + model.setModified(false); + } } } catch (Exception e) { UIHelper.handlingError(e); @@ -153,7 +160,6 @@ public class Save<D extends ReferentialDto, R extends ReferentialDtoReference<D, } private void afterSave(U ui, D bean, boolean notPersisted) { - SwingValidatorUtil.setValidatorChanged(ui, false); getDataSource().setModified(true); NavigationTree tree = getDataSourceEditor().getNavigationUI().getTree(); ===================================== client-datasource-editor-api/src/main/java/fr/ird/observe/client/datasource/editor/content/spi/ContentUIReferenceCache.java ===================================== @@ -226,7 +226,7 @@ public class ContentUIReferenceCache { log.debug(String.format("Filter referential references (type %s - property %s), original size: %d", dtoType.getSimpleName(), propertyName, incomingReferences.size())); - if (hideDisabledReferential && !propertyName.equals("referentialListHeader")) { + if (hideDisabledReferential && !propertyName.equals(FormDefinition.REFERENTIAL_LIST_HEADER)) { incomingReferences = DtoReferenceCollection.filterEnabled(incomingReferences); log.debug(String.format("Filter referential references (type %s - property %s), without disabled size: %d", dtoType.getSimpleName(), propertyName, incomingReferences.size())); } @@ -300,7 +300,7 @@ public class ContentUIReferenceCache { Boolean noLoad = (Boolean) list.getClientProperty(JaxxObjectInitializer.CLIENT_PROPERTY_LIST_NO_LOAD); List<R> data; String propertyName = list.getName(); - if (!"referentialListHeader".equals(propertyName) && (Objects.equals(true, noLoad) || form == null)) { + if (!FormDefinition.REFERENTIAL_LIST_HEADER.equals(propertyName) && (Objects.equals(true, noLoad) || form == null)) { log.debug(String.format("Skip loading of BeanListHeader [%s-%s] (listNoLoad property found or form is null)", dtoClass.getSimpleName(), propertyName)); data = Collections.emptyList(); } else { ===================================== client-datasource-editor-common/pom.xml ===================================== @@ -134,6 +134,10 @@ <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </dependency> + <dependency> + <groupId>com.google.auto.service</groupId> + <artifactId>auto-service-annotations</artifactId> + </dependency> <dependency> @@ -189,11 +193,6 @@ <groupId>junit</groupId> <artifactId>junit</artifactId> </dependency> - <dependency> - <groupId>com.google.auto.service</groupId> - <artifactId>auto-service</artifactId> - <scope>provided</scope> - </dependency> </dependencies> ===================================== client-datasource-editor-ll/pom.xml ===================================== @@ -170,6 +170,10 @@ <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </dependency> + <dependency> + <groupId>com.google.auto.service</groupId> + <artifactId>auto-service-annotations</artifactId> + </dependency> <dependency> <groupId>org.nuiton</groupId> @@ -241,11 +245,6 @@ <groupId>org.jetbrains</groupId> <artifactId>annotations</artifactId> </dependency> - <dependency> - <groupId>com.google.auto.service</groupId> - <artifactId>auto-service</artifactId> - <scope>provided</scope> - </dependency> </dependencies> ===================================== client-datasource-editor-ps/pom.xml ===================================== @@ -163,6 +163,10 @@ <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </dependency> + <dependency> + <groupId>com.google.auto.service</groupId> + <artifactId>auto-service-annotations</artifactId> + </dependency> <dependency> <groupId>org.nuiton</groupId> @@ -244,11 +248,6 @@ <groupId>org.jetbrains</groupId> <artifactId>annotations</artifactId> </dependency> - <dependency> - <groupId>com.google.auto.service</groupId> - <artifactId>auto-service</artifactId> - <scope>provided</scope> - </dependency> </dependencies> ===================================== client-runner/pom.xml ===================================== @@ -198,6 +198,16 @@ <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </dependency> + <dependency> + <groupId>com.google.auto.service</groupId> + <artifactId>auto-service-annotations</artifactId> + </dependency> + + <dependency> + <groupId>com.google.auto.service</groupId> + <artifactId>auto-service</artifactId> + <scope>provided</scope> + </dependency> <dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils</artifactId> @@ -217,11 +227,6 @@ <groupId>junit</groupId> <artifactId>junit</artifactId> </dependency> - <dependency> - <groupId>com.google.auto.service</groupId> - <artifactId>auto-service</artifactId> - <scope>provided</scope> - </dependency> </dependencies> ===================================== dto-spi/pom.xml ===================================== @@ -39,6 +39,10 @@ <groupId>fr.ird.observe.toolkit</groupId> <artifactId>common-dto</artifactId> </dependency> + <dependency> + <groupId>com.google.auto.service</groupId> + <artifactId>auto-service-annotations</artifactId> + </dependency> <dependency> <groupId>com.google.auto.service</groupId> ===================================== dto/pom.xml ===================================== @@ -115,6 +115,10 @@ <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </dependency> + <dependency> + <groupId>com.google.auto.service</groupId> + <artifactId>auto-service-annotations</artifactId> + </dependency> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> ===================================== observe-i18n/pom.xml ===================================== @@ -35,11 +35,9 @@ <i18n.artifactId>observe</i18n.artifactId> </properties> <dependencies> - <dependency> <groupId>com.google.auto.service</groupId> - <artifactId>auto-service</artifactId> - <scope>provided</scope> + <artifactId>auto-service-annotations</artifactId> </dependency> <dependency> <groupId>com.google.guava</groupId> ===================================== persistence-spi/pom.xml ===================================== @@ -50,12 +50,15 @@ <artifactId>common-persistence</artifactId> </dependency> + <dependency> + <groupId>com.google.auto.service</groupId> + <artifactId>auto-service-annotations</artifactId> + </dependency> <dependency> <groupId>com.google.auto.service</groupId> <artifactId>auto-service</artifactId> <scope>provided</scope> </dependency> - <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> ===================================== persistence/pom.xml ===================================== @@ -133,11 +133,16 @@ <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </dependency> + <dependency> + <groupId>com.google.auto.service</groupId> + <artifactId>auto-service-annotations</artifactId> + </dependency> <dependency> <groupId>com.google.auto.service</groupId> <artifactId>auto-service</artifactId> <scope>provided</scope> </dependency> + <dependency> <groupId>javax.persistence</groupId> <artifactId>javax.persistence-api</artifactId> ===================================== pom.xml ===================================== @@ -24,7 +24,7 @@ <parent> <groupId>io.ultreia.maven</groupId> <artifactId>pom</artifactId> - <version>2020.25</version> + <version>2020.26</version> </parent> <groupId>fr.ird.observe</groupId> @@ -162,7 +162,7 @@ <maven.build.timestamp.format>dd/MM/yyyy HH:mm z</maven.build.timestamp.format> <buildDate>${maven.build.timestamp}</buildDate> - <lib.version.toolkit>4.30</lib.version.toolkit> + <lib.version.toolkit>4.31</lib.version.toolkit> <lib.version.nuiton.validation>3.1</lib.version.nuiton.validation> <!--can't use 1.4.197 (date has changed + blob also)--> <lib.version.h2>1.4.196</lib.version.h2> ===================================== server-configuration/pom.xml ===================================== @@ -78,14 +78,9 @@ <groupId>org.apache.commons</groupId> <artifactId>commons-collections4</artifactId> </dependency> - <!-- <dependency>--> - <!-- <groupId>com.google.guava</groupId>--> - <!-- <artifactId>guava</artifactId>--> - <!-- </dependency>--> <dependency> <groupId>com.google.auto.service</groupId> <artifactId>auto-service-annotations</artifactId> - <scope>provided</scope> </dependency> <dependency> ===================================== server-core/pom.xml ===================================== @@ -113,7 +113,6 @@ <dependency> <groupId>com.google.auto.service</groupId> <artifactId>auto-service-annotations</artifactId> - <scope>provided</scope> </dependency> <dependency> @@ -193,12 +192,12 @@ <groupId>junit</groupId> <artifactId>junit</artifactId> </dependency> - <dependency> <groupId>com.google.auto.service</groupId> <artifactId>auto-service</artifactId> <scope>provided</scope> </dependency> + <dependency> <groupId>javax.annotation</groupId> <artifactId>jsr250-api</artifactId> ===================================== services-client/pom.xml ===================================== @@ -133,12 +133,6 @@ <groupId>junit</groupId> <artifactId>junit</artifactId> </dependency> - - <dependency> - <groupId>com.google.auto.service</groupId> - <artifactId>auto-service</artifactId> - <scope>provided</scope> - </dependency> <dependency> <groupId>javax.annotation</groupId> <artifactId>jsr250-api</artifactId> ===================================== services-local/pom.xml ===================================== @@ -19,7 +19,8 @@ #L% --> -<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"> <modelVersion>4.0.0</modelVersion> <parent> @@ -119,6 +120,10 @@ <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </dependency> + <dependency> + <groupId>com.google.auto.service</groupId> + <artifactId>auto-service-annotations</artifactId> + </dependency> <dependency> <groupId>javax.persistence</groupId> @@ -258,14 +263,18 @@ <executions> <execution> <id>update-test-dbs</id> - <goals><goal>test</goal></goals> + <goals> + <goal>test</goal> + </goals> <configuration> <test>fr.ird.observe.services.local.service.sql.MigrateTestsDatabases</test> </configuration> </execution> <execution> <id>default-test</id> - <goals><goal>test</goal></goals> + <goals> + <goal>test</goal> + </goals> <configuration> <skip>true</skip> </configuration> ===================================== services-local/src/main/java/fr/ird/observe/services/local/service/referential/ReferentialServiceLocal.java ===================================== @@ -187,7 +187,7 @@ public class ReferentialServiceLocal extends ObserveServiceLocal implements Refe public <D extends ReferentialDto> SaveResultDto save(D bean) { ReferentialDtoEntityContext<D, ?, ?, ?> spi = DbModelHelper.fromReferentialDtoWeak(bean); ReferentialEntity<D, ?> entity = loadOrCreateEntityFromReferentialDto(spi, bean); - entity.toDto(getReferentialLocale(), bean); + entity.fromDto(getReferentialLocale(), bean); return saveEntity(entity); } ===================================== services-validation/pom.xml ===================================== @@ -19,7 +19,8 @@ #L% --> -<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"> <modelVersion>4.0.0</modelVersion> <parent> @@ -68,10 +69,10 @@ <artifactId>common-validation</artifactId> </dependency> - <dependency> - <groupId>org.nuiton</groupId> - <artifactId>nuiton-decorator</artifactId> - </dependency> + <dependency> + <groupId>org.nuiton</groupId> + <artifactId>nuiton-decorator</artifactId> + </dependency> <dependency> <groupId>org.nuiton</groupId> <artifactId>nuiton-validator</artifactId> @@ -88,6 +89,10 @@ <groupId>io.ultreia.java4all</groupId> <artifactId>java-util</artifactId> </dependency> + <dependency> + <groupId>com.google.auto.service</groupId> + <artifactId>auto-service-annotations</artifactId> + </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> @@ -131,37 +136,37 @@ </dependencies> <build> - <plugins> - <plugin> - <groupId>io.ultreia.java4all.http</groupId> - <artifactId>http-maven-plugin</artifactId> - <executions> - <execution> - <id>default-generate-services-provider</id> - <goals> - <goal>generate-services-provider</goal> - </goals> - <configuration> - <packageName>fr.ird.observe.services</packageName> - <serviceType>fr.ird.observe.services.service.ObserveService</serviceType> - <classPrefix>Observe</classPrefix> - <methodNameTranslatorName>package</methodNameTranslatorName> - </configuration> - </execution> - </executions> - <dependencies> - <dependency> - <groupId>fr.ird.observe.toolkit</groupId> - <artifactId>common-service</artifactId> - <version>${lib.version.toolkit}</version> - </dependency> - <dependency> - <groupId>${project.groupId}</groupId> - <artifactId>services</artifactId> - <version>${project.version}</version> - </dependency> - </dependencies> - </plugin> - </plugins> + <plugins> + <plugin> + <groupId>io.ultreia.java4all.http</groupId> + <artifactId>http-maven-plugin</artifactId> + <executions> + <execution> + <id>default-generate-services-provider</id> + <goals> + <goal>generate-services-provider</goal> + </goals> + <configuration> + <packageName>fr.ird.observe.services</packageName> + <serviceType>fr.ird.observe.services.service.ObserveService</serviceType> + <classPrefix>Observe</classPrefix> + <methodNameTranslatorName>package</methodNameTranslatorName> + </configuration> + </execution> + </executions> + <dependencies> + <dependency> + <groupId>fr.ird.observe.toolkit</groupId> + <artifactId>common-service</artifactId> + <version>${lib.version.toolkit}</version> + </dependency> + <dependency> + <groupId>${project.groupId}</groupId> + <artifactId>services</artifactId> + <version>${project.version}</version> + </dependency> + </dependencies> + </plugin> + </plugins> </build> </project> ===================================== services/pom.xml ===================================== @@ -122,6 +122,10 @@ <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> </dependency> + <dependency> + <groupId>com.google.auto.service</groupId> + <artifactId>auto-service-annotations</artifactId> + </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> ===================================== test-config/pom.xml ===================================== @@ -48,12 +48,15 @@ <artifactId>common-dto</artifactId> </dependency> + <dependency> + <groupId>com.google.auto.service</groupId> + <artifactId>auto-service-annotations</artifactId> + </dependency> <dependency> <groupId>com.google.auto.service</groupId> <artifactId>auto-service</artifactId> <scope>provided</scope> </dependency> - <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> ===================================== test/pom.xml ===================================== @@ -38,12 +38,6 @@ <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </dependency> - <dependency> - <groupId>com.google.auto.service</groupId> - <artifactId>auto-service</artifactId> - <scope>provided</scope> - </dependency> - <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> ===================================== validation/pom.xml ===================================== @@ -18,7 +18,8 @@ <http://www.gnu.org/licenses/gpl-3.0.html>. #L% --> -<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"> <modelVersion>4.0.0</modelVersion> <parent> @@ -62,10 +63,10 @@ <scope>test</scope> </dependency> -<dependency> - <groupId>org.nuiton</groupId> - <artifactId>nuiton-validator</artifactId> -</dependency> + <dependency> + <groupId>org.nuiton</groupId> + <artifactId>nuiton-validator</artifactId> + </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> @@ -81,6 +82,10 @@ <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </dependency> + <dependency> + <groupId>com.google.auto.service</groupId> + <artifactId>auto-service-annotations</artifactId> + </dependency> <dependency> <groupId>fr.ird.observe.toolkit</groupId> View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/27f5f925a42849f4eeb6887c6… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/27f5f925a42849f4eeb6887c6… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] Impossible d'éditer un référentiel :( - Closes #1486
by Tony CHEMIT 15 May '20

15 May '20
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: b347c0bc by Tony Chemit at 2020-05-15T08:35:56+02:00 Impossible d&#39;éditer un référentiel :( - Closes #1486 - - - - - 26 changed files: - client-configuration/pom.xml - client-core/pom.xml - client-datasource-actions/pom.xml - client-datasource-editor-api/pom.xml - client-datasource-editor-api/src/main/java/fr/ird/observe/client/datasource/editor/content/ref/actions/Save.java - client-datasource-editor-api/src/main/java/fr/ird/observe/client/datasource/editor/content/spi/ContentUIReferenceCache.java - client-datasource-editor-common/pom.xml - client-datasource-editor-ll/pom.xml - client-datasource-editor-ps/pom.xml - client-runner/pom.xml - dto-spi/pom.xml - dto/pom.xml - observe-i18n/pom.xml - persistence-spi/pom.xml - persistence/pom.xml - pom.xml - server-configuration/pom.xml - server-core/pom.xml - services-client/pom.xml - services-local/pom.xml - services-local/src/main/java/fr/ird/observe/services/local/service/referential/ReferentialServiceLocal.java - services-validation/pom.xml - services/pom.xml - test-config/pom.xml - test/pom.xml - validation/pom.xml Changes: ===================================== client-configuration/pom.xml ===================================== @@ -97,8 +97,7 @@ </dependency> <dependency> <groupId>com.google.auto.service</groupId> - <artifactId>auto-service</artifactId> - <scope>provided</scope> + <artifactId>auto-service-annotations</artifactId> </dependency> <dependency> ===================================== client-core/pom.xml ===================================== @@ -207,6 +207,11 @@ <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> </dependency> + <dependency> + <groupId>com.google.auto.service</groupId> + <artifactId>auto-service-annotations</artifactId> + </dependency> + <dependency> <groupId>io.ultreia.java4all.config</groupId> <artifactId>config-api</artifactId> ===================================== client-datasource-actions/pom.xml ===================================== @@ -29,8 +29,8 @@ <artifactId>client-datasource-actions</artifactId> - <name>ObServe :: Client DataSource actions</name> - <description>ObServe Client DataSource actions module</description> + <name>ObServe :: Client DataSource Actions</name> + <description>ObServe Client DataSource Actions module</description> <dependencies> @@ -162,6 +162,10 @@ <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </dependency> + <dependency> + <groupId>com.google.auto.service</groupId> + <artifactId>auto-service-annotations</artifactId> + </dependency> <dependency> <groupId>org.nuiton</groupId> @@ -200,11 +204,6 @@ <groupId>junit</groupId> <artifactId>junit</artifactId> </dependency> - <dependency> - <groupId>com.google.auto.service</groupId> - <artifactId>auto-service</artifactId> - <scope>provided</scope> - </dependency> </dependencies> ===================================== client-datasource-editor-api/pom.xml ===================================== @@ -185,6 +185,10 @@ <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </dependency> + <dependency> + <groupId>com.google.auto.service</groupId> + <artifactId>auto-service-annotations</artifactId> + </dependency> <dependency> <groupId>org.nuiton</groupId> @@ -235,11 +239,6 @@ <groupId>junit</groupId> <artifactId>junit</artifactId> </dependency> - <dependency> - <groupId>com.google.auto.service</groupId> - <artifactId>auto-service</artifactId> - <scope>provided</scope> - </dependency> </dependencies> ===================================== client-datasource-editor-api/src/main/java/fr/ird/observe/client/datasource/editor/content/ref/actions/Save.java ===================================== @@ -75,7 +75,14 @@ public class Save<D extends ReferentialDto, R extends ReferentialDtoReference<D, try { boolean ok = doSave(ui, model.getBean(), notPersisted); if (ok) { - afterSave(ui, model.getBean(), notPersisted); + try { + model.setResetEdit(true); + afterSave(ui, model.getBean(), notPersisted); + } finally { + SwingValidatorUtil.setValidatorChanged(ui, false); + model.setResetEdit(false); + model.setModified(false); + } } } catch (Exception e) { UIHelper.handlingError(e); @@ -153,7 +160,6 @@ public class Save<D extends ReferentialDto, R extends ReferentialDtoReference<D, } private void afterSave(U ui, D bean, boolean notPersisted) { - SwingValidatorUtil.setValidatorChanged(ui, false); getDataSource().setModified(true); NavigationTree tree = getDataSourceEditor().getNavigationUI().getTree(); ===================================== client-datasource-editor-api/src/main/java/fr/ird/observe/client/datasource/editor/content/spi/ContentUIReferenceCache.java ===================================== @@ -226,7 +226,7 @@ public class ContentUIReferenceCache { log.debug(String.format("Filter referential references (type %s - property %s), original size: %d", dtoType.getSimpleName(), propertyName, incomingReferences.size())); - if (hideDisabledReferential && !propertyName.equals("referentialListHeader")) { + if (hideDisabledReferential && !propertyName.equals(FormDefinition.REFERENTIAL_LIST_HEADER)) { incomingReferences = DtoReferenceCollection.filterEnabled(incomingReferences); log.debug(String.format("Filter referential references (type %s - property %s), without disabled size: %d", dtoType.getSimpleName(), propertyName, incomingReferences.size())); } @@ -300,7 +300,7 @@ public class ContentUIReferenceCache { Boolean noLoad = (Boolean) list.getClientProperty(JaxxObjectInitializer.CLIENT_PROPERTY_LIST_NO_LOAD); List<R> data; String propertyName = list.getName(); - if (!"referentialListHeader".equals(propertyName) && (Objects.equals(true, noLoad) || form == null)) { + if (!FormDefinition.REFERENTIAL_LIST_HEADER.equals(propertyName) && (Objects.equals(true, noLoad) || form == null)) { log.debug(String.format("Skip loading of BeanListHeader [%s-%s] (listNoLoad property found or form is null)", dtoClass.getSimpleName(), propertyName)); data = Collections.emptyList(); } else { ===================================== client-datasource-editor-common/pom.xml ===================================== @@ -134,6 +134,10 @@ <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </dependency> + <dependency> + <groupId>com.google.auto.service</groupId> + <artifactId>auto-service-annotations</artifactId> + </dependency> <dependency> @@ -189,11 +193,6 @@ <groupId>junit</groupId> <artifactId>junit</artifactId> </dependency> - <dependency> - <groupId>com.google.auto.service</groupId> - <artifactId>auto-service</artifactId> - <scope>provided</scope> - </dependency> </dependencies> ===================================== client-datasource-editor-ll/pom.xml ===================================== @@ -170,6 +170,10 @@ <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </dependency> + <dependency> + <groupId>com.google.auto.service</groupId> + <artifactId>auto-service-annotations</artifactId> + </dependency> <dependency> <groupId>org.nuiton</groupId> @@ -241,11 +245,6 @@ <groupId>org.jetbrains</groupId> <artifactId>annotations</artifactId> </dependency> - <dependency> - <groupId>com.google.auto.service</groupId> - <artifactId>auto-service</artifactId> - <scope>provided</scope> - </dependency> </dependencies> ===================================== client-datasource-editor-ps/pom.xml ===================================== @@ -163,6 +163,10 @@ <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </dependency> + <dependency> + <groupId>com.google.auto.service</groupId> + <artifactId>auto-service-annotations</artifactId> + </dependency> <dependency> <groupId>org.nuiton</groupId> @@ -244,11 +248,6 @@ <groupId>org.jetbrains</groupId> <artifactId>annotations</artifactId> </dependency> - <dependency> - <groupId>com.google.auto.service</groupId> - <artifactId>auto-service</artifactId> - <scope>provided</scope> - </dependency> </dependencies> ===================================== client-runner/pom.xml ===================================== @@ -198,6 +198,16 @@ <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </dependency> + <dependency> + <groupId>com.google.auto.service</groupId> + <artifactId>auto-service-annotations</artifactId> + </dependency> + + <dependency> + <groupId>com.google.auto.service</groupId> + <artifactId>auto-service</artifactId> + <scope>provided</scope> + </dependency> <dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils</artifactId> @@ -217,11 +227,6 @@ <groupId>junit</groupId> <artifactId>junit</artifactId> </dependency> - <dependency> - <groupId>com.google.auto.service</groupId> - <artifactId>auto-service</artifactId> - <scope>provided</scope> - </dependency> </dependencies> ===================================== dto-spi/pom.xml ===================================== @@ -39,6 +39,10 @@ <groupId>fr.ird.observe.toolkit</groupId> <artifactId>common-dto</artifactId> </dependency> + <dependency> + <groupId>com.google.auto.service</groupId> + <artifactId>auto-service-annotations</artifactId> + </dependency> <dependency> <groupId>com.google.auto.service</groupId> ===================================== dto/pom.xml ===================================== @@ -115,6 +115,10 @@ <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </dependency> + <dependency> + <groupId>com.google.auto.service</groupId> + <artifactId>auto-service-annotations</artifactId> + </dependency> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> ===================================== observe-i18n/pom.xml ===================================== @@ -35,11 +35,9 @@ <i18n.artifactId>observe</i18n.artifactId> </properties> <dependencies> - <dependency> <groupId>com.google.auto.service</groupId> - <artifactId>auto-service</artifactId> - <scope>provided</scope> + <artifactId>auto-service-annotations</artifactId> </dependency> <dependency> <groupId>com.google.guava</groupId> ===================================== persistence-spi/pom.xml ===================================== @@ -50,12 +50,15 @@ <artifactId>common-persistence</artifactId> </dependency> + <dependency> + <groupId>com.google.auto.service</groupId> + <artifactId>auto-service-annotations</artifactId> + </dependency> <dependency> <groupId>com.google.auto.service</groupId> <artifactId>auto-service</artifactId> <scope>provided</scope> </dependency> - <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> ===================================== persistence/pom.xml ===================================== @@ -133,11 +133,16 @@ <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </dependency> + <dependency> + <groupId>com.google.auto.service</groupId> + <artifactId>auto-service-annotations</artifactId> + </dependency> <dependency> <groupId>com.google.auto.service</groupId> <artifactId>auto-service</artifactId> <scope>provided</scope> </dependency> + <dependency> <groupId>javax.persistence</groupId> <artifactId>javax.persistence-api</artifactId> ===================================== pom.xml ===================================== @@ -24,7 +24,7 @@ <parent> <groupId>io.ultreia.maven</groupId> <artifactId>pom</artifactId> - <version>2020.25</version> + <version>2020.26</version> </parent> <groupId>fr.ird.observe</groupId> @@ -162,7 +162,7 @@ <maven.build.timestamp.format>dd/MM/yyyy HH:mm z</maven.build.timestamp.format> <buildDate>${maven.build.timestamp}</buildDate> - <lib.version.toolkit>4.30</lib.version.toolkit> + <lib.version.toolkit>4.31</lib.version.toolkit> <lib.version.nuiton.validation>3.1</lib.version.nuiton.validation> <!--can't use 1.4.197 (date has changed + blob also)--> <lib.version.h2>1.4.196</lib.version.h2> ===================================== server-configuration/pom.xml ===================================== @@ -78,14 +78,9 @@ <groupId>org.apache.commons</groupId> <artifactId>commons-collections4</artifactId> </dependency> - <!-- <dependency>--> - <!-- <groupId>com.google.guava</groupId>--> - <!-- <artifactId>guava</artifactId>--> - <!-- </dependency>--> <dependency> <groupId>com.google.auto.service</groupId> <artifactId>auto-service-annotations</artifactId> - <scope>provided</scope> </dependency> <dependency> ===================================== server-core/pom.xml ===================================== @@ -194,11 +194,6 @@ <artifactId>junit</artifactId> </dependency> - <dependency> - <groupId>com.google.auto.service</groupId> - <artifactId>auto-service</artifactId> - <scope>provided</scope> - </dependency> <dependency> <groupId>javax.annotation</groupId> <artifactId>jsr250-api</artifactId> ===================================== services-client/pom.xml ===================================== @@ -133,12 +133,6 @@ <groupId>junit</groupId> <artifactId>junit</artifactId> </dependency> - - <dependency> - <groupId>com.google.auto.service</groupId> - <artifactId>auto-service</artifactId> - <scope>provided</scope> - </dependency> <dependency> <groupId>javax.annotation</groupId> <artifactId>jsr250-api</artifactId> ===================================== services-local/pom.xml ===================================== @@ -19,7 +19,8 @@ #L% --> -<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"> <modelVersion>4.0.0</modelVersion> <parent> @@ -119,6 +120,10 @@ <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </dependency> + <dependency> + <groupId>com.google.auto.service</groupId> + <artifactId>auto-service-annotations</artifactId> + </dependency> <dependency> <groupId>javax.persistence</groupId> @@ -258,14 +263,18 @@ <executions> <execution> <id>update-test-dbs</id> - <goals><goal>test</goal></goals> + <goals> + <goal>test</goal> + </goals> <configuration> <test>fr.ird.observe.services.local.service.sql.MigrateTestsDatabases</test> </configuration> </execution> <execution> <id>default-test</id> - <goals><goal>test</goal></goals> + <goals> + <goal>test</goal> + </goals> <configuration> <skip>true</skip> </configuration> ===================================== services-local/src/main/java/fr/ird/observe/services/local/service/referential/ReferentialServiceLocal.java ===================================== @@ -187,7 +187,7 @@ public class ReferentialServiceLocal extends ObserveServiceLocal implements Refe public <D extends ReferentialDto> SaveResultDto save(D bean) { ReferentialDtoEntityContext<D, ?, ?, ?> spi = DbModelHelper.fromReferentialDtoWeak(bean); ReferentialEntity<D, ?> entity = loadOrCreateEntityFromReferentialDto(spi, bean); - entity.toDto(getReferentialLocale(), bean); + entity.fromDto(getReferentialLocale(), bean); return saveEntity(entity); } ===================================== services-validation/pom.xml ===================================== @@ -19,7 +19,8 @@ #L% --> -<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"> <modelVersion>4.0.0</modelVersion> <parent> @@ -68,10 +69,10 @@ <artifactId>common-validation</artifactId> </dependency> - <dependency> - <groupId>org.nuiton</groupId> - <artifactId>nuiton-decorator</artifactId> - </dependency> + <dependency> + <groupId>org.nuiton</groupId> + <artifactId>nuiton-decorator</artifactId> + </dependency> <dependency> <groupId>org.nuiton</groupId> <artifactId>nuiton-validator</artifactId> @@ -88,6 +89,10 @@ <groupId>io.ultreia.java4all</groupId> <artifactId>java-util</artifactId> </dependency> + <dependency> + <groupId>com.google.auto.service</groupId> + <artifactId>auto-service-annotations</artifactId> + </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> @@ -131,37 +136,37 @@ </dependencies> <build> - <plugins> - <plugin> - <groupId>io.ultreia.java4all.http</groupId> - <artifactId>http-maven-plugin</artifactId> - <executions> - <execution> - <id>default-generate-services-provider</id> - <goals> - <goal>generate-services-provider</goal> - </goals> - <configuration> - <packageName>fr.ird.observe.services</packageName> - <serviceType>fr.ird.observe.services.service.ObserveService</serviceType> - <classPrefix>Observe</classPrefix> - <methodNameTranslatorName>package</methodNameTranslatorName> - </configuration> - </execution> - </executions> - <dependencies> - <dependency> - <groupId>fr.ird.observe.toolkit</groupId> - <artifactId>common-service</artifactId> - <version>${lib.version.toolkit}</version> - </dependency> - <dependency> - <groupId>${project.groupId}</groupId> - <artifactId>services</artifactId> - <version>${project.version}</version> - </dependency> - </dependencies> - </plugin> - </plugins> + <plugins> + <plugin> + <groupId>io.ultreia.java4all.http</groupId> + <artifactId>http-maven-plugin</artifactId> + <executions> + <execution> + <id>default-generate-services-provider</id> + <goals> + <goal>generate-services-provider</goal> + </goals> + <configuration> + <packageName>fr.ird.observe.services</packageName> + <serviceType>fr.ird.observe.services.service.ObserveService</serviceType> + <classPrefix>Observe</classPrefix> + <methodNameTranslatorName>package</methodNameTranslatorName> + </configuration> + </execution> + </executions> + <dependencies> + <dependency> + <groupId>fr.ird.observe.toolkit</groupId> + <artifactId>common-service</artifactId> + <version>${lib.version.toolkit}</version> + </dependency> + <dependency> + <groupId>${project.groupId}</groupId> + <artifactId>services</artifactId> + <version>${project.version}</version> + </dependency> + </dependencies> + </plugin> + </plugins> </build> </project> ===================================== services/pom.xml ===================================== @@ -122,6 +122,10 @@ <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> </dependency> + <dependency> + <groupId>com.google.auto.service</groupId> + <artifactId>auto-service-annotations</artifactId> + </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> ===================================== test-config/pom.xml ===================================== @@ -48,12 +48,15 @@ <artifactId>common-dto</artifactId> </dependency> + <dependency> + <groupId>com.google.auto.service</groupId> + <artifactId>auto-service-annotations</artifactId> + </dependency> <dependency> <groupId>com.google.auto.service</groupId> <artifactId>auto-service</artifactId> <scope>provided</scope> </dependency> - <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> ===================================== test/pom.xml ===================================== @@ -38,12 +38,6 @@ <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </dependency> - <dependency> - <groupId>com.google.auto.service</groupId> - <artifactId>auto-service</artifactId> - <scope>provided</scope> - </dependency> - <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> ===================================== validation/pom.xml ===================================== @@ -18,7 +18,8 @@ <http://www.gnu.org/licenses/gpl-3.0.html>. #L% --> -<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"> <modelVersion>4.0.0</modelVersion> <parent> @@ -62,10 +63,10 @@ <scope>test</scope> </dependency> -<dependency> - <groupId>org.nuiton</groupId> - <artifactId>nuiton-validator</artifactId> -</dependency> + <dependency> + <groupId>org.nuiton</groupId> + <artifactId>nuiton-validator</artifactId> + </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> @@ -81,6 +82,10 @@ <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </dependency> + <dependency> + <groupId>com.google.auto.service</groupId> + <artifactId>auto-service-annotations</artifactId> + </dependency> <dependency> <groupId>fr.ird.observe.toolkit</groupId> View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/b347c0bc2a476f10d314297c6… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/b347c0bc2a476f10d314297c6… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][pages] Site checkin for project ObServe :: Pom
by Tony CHEMIT 13 May '20

13 May '20
Tony CHEMIT pushed to branch pages at ultreiaio / ird-observe Commits: ddb726dc by 166231 at 2020-05-13T16:23:06+00:00 Site checkin for project ObServe :: Pom - - - - - 6 changed files: - administration-web.html - architecture-logicielle.html - index.html - install-serverPG.html - install.html - synchro-referential.html Changes: ===================================== administration-web.html ===================================== @@ -1,6 +1,6 @@ <!DOCTYPE html> <!-- - | Generated by Apache Maven Doxia Site Renderer 1.9.2 from src/site/markdown/administration-web.md.vm at 2020-03-26 + | Generated by Apache Maven Doxia Site Renderer 1.9.2 from src/site/markdown/administration-web.md.vm at 2020-05-13 | Rendered using Apache Maven Fluido Skin 1.8 --> <html xmlns="http://www.w3.org/1999/xhtml" lang="fr"> @@ -27,8 +27,8 @@ <ul class="breadcrumb"> <li class=""><a href="https://ultreiaio.gitlab.io/ird-observe/index.html" class="externalLink" title="ObServe :: Pom">ObServe :: Pom</a><span class="divider">»</span></li> <li class="active ">Installation de lapplication web</li> - <li id="publishDate" class="pull-right"><span class="divider">|</span> Dernière publication: 2020-03-26</li> - <li id="projectVersion" class="pull-right"><span class="divider">|</span>Version: 7.4.0</li> + <li id="publishDate" class="pull-right"><span class="divider">|</span> Dernière publication: 2020-05-13</li> + <li id="projectVersion" class="pull-right"><span class="divider">|</span>Version: 7.5.2</li> <li class="pull-right"><span class="divider">|</span> <a href="http://ultreia.io" class="externalLink" title="Ultreia.io">Ultreia.io</a></li> <li class="pull-right"><a href="https://gitlab.com/ultreiaio/ird-observe" class="externalLink" title="GitLab">GitLab</a></li> @@ -102,7 +102,7 @@ <div class="source"><pre class="prettyprint linenums"> /var/local/observeweb/{contextPath} |-- databases.yml # configuration des bases de donn&#xe9;es |-- log - | `-- observeweb-7.4.0.log # logs de l'application + | `-- observeweb-7.5.2.log # logs de l'application |-- observeweb-log4j2.xml # configuration des logs |-- temp # r&#xe9;pertoire temporaire `-- users.yml # configuration des utilisateurs ===================================== architecture-logicielle.html ===================================== @@ -1,6 +1,6 @@ <!DOCTYPE html> <!-- - | Generated by Apache Maven Doxia Site Renderer 1.9.2 from src/site/markdown/architecture-logicielle.md at 2020-03-26 + | Generated by Apache Maven Doxia Site Renderer 1.9.2 from src/site/markdown/architecture-logicielle.md at 2020-05-13 | Rendered using Apache Maven Fluido Skin 1.8 --> <html xmlns="http://www.w3.org/1999/xhtml" lang="fr"> @@ -27,8 +27,8 @@ <ul class="breadcrumb"> <li class=""><a href="https://ultreiaio.gitlab.io/ird-observe/index.html" class="externalLink" title="ObServe :: Pom">ObServe :: Pom</a><span class="divider">»</span></li> <li class="active ">Architecture logicielle dObServe</li> - <li id="publishDate" class="pull-right"><span class="divider">|</span> Dernière publication: 2020-03-26</li> - <li id="projectVersion" class="pull-right"><span class="divider">|</span>Version: 7.4.0</li> + <li id="publishDate" class="pull-right"><span class="divider">|</span> Dernière publication: 2020-05-13</li> + <li id="projectVersion" class="pull-right"><span class="divider">|</span>Version: 7.5.2</li> <li class="pull-right"><span class="divider">|</span> <a href="http://ultreia.io" class="externalLink" title="Ultreia.io">Ultreia.io</a></li> <li class="pull-right"><a href="https://gitlab.com/ultreiaio/ird-observe" class="externalLink" title="GitLab">GitLab</a></li> ===================================== index.html ===================================== @@ -1,6 +1,6 @@ <!DOCTYPE html> <!-- - | Generated by Apache Maven Doxia Site Renderer 1.9.2 from src/site/markdown/index.md at 2020-03-26 + | Generated by Apache Maven Doxia Site Renderer 1.9.2 from src/site/markdown/index.md at 2020-05-13 | Rendered using Apache Maven Fluido Skin 1.8 --> <html xmlns="http://www.w3.org/1999/xhtml" lang="fr"> @@ -27,8 +27,8 @@ <ul class="breadcrumb"> <li class=""><a href="https://ultreiaio.gitlab.io/ird-observe/index.html" class="externalLink" title="ObServe :: Pom">ObServe :: Pom</a><span class="divider">»</span></li> <li class="active ">ObServe</li> - <li id="publishDate" class="pull-right"><span class="divider">|</span> Dernière publication: 2020-03-26</li> - <li id="projectVersion" class="pull-right"><span class="divider">|</span>Version: 7.4.0</li> + <li id="publishDate" class="pull-right"><span class="divider">|</span> Dernière publication: 2020-05-13</li> + <li id="projectVersion" class="pull-right"><span class="divider">|</span>Version: 7.5.2</li> <li class="pull-right"><span class="divider">|</span> <a href="http://ultreia.io" class="externalLink" title="Ultreia.io">Ultreia.io</a></li> <li class="pull-right"><a href="https://gitlab.com/ultreiaio/ird-observe" class="externalLink" title="GitLab">GitLab</a></li> ===================================== install-serverPG.html ===================================== @@ -1,6 +1,6 @@ <!DOCTYPE html> <!-- - | Generated by Apache Maven Doxia Site Renderer 1.9.2 from src/site/markdown/install-serverPG.md at 2020-03-26 + | Generated by Apache Maven Doxia Site Renderer 1.9.2 from src/site/markdown/install-serverPG.md at 2020-05-13 | Rendered using Apache Maven Fluido Skin 1.8 --> <html xmlns="http://www.w3.org/1999/xhtml" lang="fr"> @@ -27,8 +27,8 @@ <ul class="breadcrumb"> <li class=""><a href="https://ultreiaio.gitlab.io/ird-observe/index.html" class="externalLink" title="ObServe :: Pom">ObServe :: Pom</a><span class="divider">»</span></li> <li class="active ">Installation du serveur Obstuna</li> - <li id="publishDate" class="pull-right"><span class="divider">|</span> Dernière publication: 2020-03-26</li> - <li id="projectVersion" class="pull-right"><span class="divider">|</span>Version: 7.4.0</li> + <li id="publishDate" class="pull-right"><span class="divider">|</span> Dernière publication: 2020-05-13</li> + <li id="projectVersion" class="pull-right"><span class="divider">|</span>Version: 7.5.2</li> <li class="pull-right"><span class="divider">|</span> <a href="http://ultreia.io" class="externalLink" title="Ultreia.io">Ultreia.io</a></li> <li class="pull-right"><a href="https://gitlab.com/ultreiaio/ird-observe" class="externalLink" title="GitLab">GitLab</a></li> ===================================== install.html ===================================== @@ -1,6 +1,6 @@ <!DOCTYPE html> <!-- - | Generated by Apache Maven Doxia Site Renderer 1.9.2 from src/site/markdown/install.md at 2020-03-26 + | Generated by Apache Maven Doxia Site Renderer 1.9.2 from src/site/markdown/install.md at 2020-05-13 | Rendered using Apache Maven Fluido Skin 1.8 --> <html xmlns="http://www.w3.org/1999/xhtml" lang="fr"> @@ -27,8 +27,8 @@ <ul class="breadcrumb"> <li class=""><a href="https://ultreiaio.gitlab.io/ird-observe/index.html" class="externalLink" title="ObServe :: Pom">ObServe :: Pom</a><span class="divider">»</span></li> <li class="active ">Installation dObServe</li> - <li id="publishDate" class="pull-right"><span class="divider">|</span> Dernière publication: 2020-03-26</li> - <li id="projectVersion" class="pull-right"><span class="divider">|</span>Version: 7.4.0</li> + <li id="publishDate" class="pull-right"><span class="divider">|</span> Dernière publication: 2020-05-13</li> + <li id="projectVersion" class="pull-right"><span class="divider">|</span>Version: 7.5.2</li> <li class="pull-right"><span class="divider">|</span> <a href="http://ultreia.io" class="externalLink" title="Ultreia.io">Ultreia.io</a></li> <li class="pull-right"><a href="https://gitlab.com/ultreiaio/ird-observe" class="externalLink" title="GitLab">GitLab</a></li> ===================================== synchro-referential.html ===================================== @@ -1,6 +1,6 @@ <!DOCTYPE html> <!-- - | Generated by Apache Maven Doxia Site Renderer 1.9.2 from src/site/markdown/synchro-referential.md at 2020-03-26 + | Generated by Apache Maven Doxia Site Renderer 1.9.2 from src/site/markdown/synchro-referential.md at 2020-05-13 | Rendered using Apache Maven Fluido Skin 1.8 --> <html xmlns="http://www.w3.org/1999/xhtml" lang="fr"> @@ -27,8 +27,8 @@ <ul class="breadcrumb"> <li class=""><a href="https://ultreiaio.gitlab.io/ird-observe/index.html" class="externalLink" title="ObServe :: Pom">ObServe :: Pom</a><span class="divider">»</span></li> <li class="active ">Synchronisation avancée du référentiel</li> - <li id="publishDate" class="pull-right"><span class="divider">|</span> Dernière publication: 2020-03-26</li> - <li id="projectVersion" class="pull-right"><span class="divider">|</span>Version: 7.4.0</li> + <li id="publishDate" class="pull-right"><span class="divider">|</span> Dernière publication: 2020-05-13</li> + <li id="projectVersion" class="pull-right"><span class="divider">|</span>Version: 7.5.2</li> <li class="pull-right"><span class="divider">|</span> <a href="http://ultreia.io" class="externalLink" title="Ultreia.io">Ultreia.io</a></li> <li class="pull-right"><a href="https://gitlab.com/ultreiaio/ird-observe" class="externalLink" title="GitLab">GitLab</a></li> View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/ddb726dc94d5fd971bff68b94… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/ddb726dc94d5fd971bff68b94… You're receiving this email because of your account on gitlab.com.
1 0
0 0
  • ← Newer
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.