Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 57b3dc7f by Tony CHEMIT at 2017-07-05T00:07:39+02:00 Vérifier la parfaite adéquation version serveur / version client (see #703) - - - - - 9 changed files: - application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/LonglineDetailCompositionUIHandler.java - application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/SectionsTableModel.java - application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUIModel.java - application-swing/src/main/resources/i18n/application-swing_en_GB.properties - application-swing/src/main/resources/i18n/application-swing_es_ES.properties - application-swing/src/main/resources/i18n/application-swing_fr_FR.properties - application-web/src/main/filtered-resources/mapping - application-web/src/main/java/fr/ird/observe/application/web/controller/v1/PingServiceController.java - services/src/main/java/fr/ird/observe/services/service/PingService.java Changes: ===================================== application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/LonglineDetailCompositionUIHandler.java ===================================== --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/LonglineDetailCompositionUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/LonglineDetailCompositionUIHandler.java @@ -501,8 +501,8 @@ public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLong template = sectionTemplates.get(0); - boolean compiliantWithBasketCount = template.isCompiliantWithBasketCount(basketsCount); - if (!compiliantWithBasketCount) { + boolean compliantWithBasketCount = template.isCompiliantWithBasketCount(basketsCount); + if (!compliantWithBasketCount) { if (log.isWarnEnabled()) { log.warn("sectionTemplate " + template + " is not compliant with basketCount: " + basketsCount); ===================================== application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/SectionsTableModel.java ===================================== --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/SectionsTableModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/SectionsTableModel.java @@ -153,9 +153,9 @@ public class SectionsTableModel extends LonglineCompositionTableModelSupport<Sec // check if can use this template int basketsCount = row.sizeBasket(); - boolean compiliantWithBasketCount = sectionTemplate.isCompiliantWithBasketCount(basketsCount); + boolean compliantWithBasketCount = sectionTemplate.isCompiliantWithBasketCount(basketsCount); - if (!compiliantWithBasketCount) { + if (!compliantWithBasketCount) { // We can't use this value if (log.isWarnEnabled()) { ===================================== application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUIModel.java ===================================== --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUIModel.java @@ -76,6 +76,7 @@ import org.nuiton.jaxx.runtime.JAXXContext; import org.nuiton.jaxx.runtime.swing.wizard.WizardModel; import org.nuiton.jaxx.runtime.swing.wizard.WizardUILancher; import org.nuiton.version.Version; +import org.nuiton.version.Versions; import static fr.ird.observe.application.swing.ui.admin.AdminUIModel.LOG_PROPERTY_CHANGE_LISTENER; @@ -1684,17 +1685,34 @@ public class StorageUIModel extends WizardModel<StorageStep> { PingService pingService = dataSource.newPingService(); - Version modelServerVersion = pingService.ping(); - - if (!getModelVersion().equals(modelServerVersion)) { + Version serverVersion = pingService.getServerVersion(); + Version clientVersion = ObserveSwingApplicationContext.get().getConfig().getVersion(); + if (clientVersion.isSnapshot()) { + clientVersion=Versions.removeSnapshot(clientVersion); + } + if (!Objects.equals(serverVersion, clientVersion)) { - connexionStatusError = t("observe.storage.error.serverVersionMismatch", modelServerVersion, getModelVersion()); + connexionStatusError = t("observe.storage.error.serverVersionMismatch", serverVersion, clientVersion); setConnexionStatus(ConnexionStatus.FAILED); error = true; } + if (!error) { + + Version modelServerVersion = pingService.ping(); + + Version clientModelVersion = getModelVersion(); + if (!Objects.equals(clientModelVersion, modelServerVersion)) { + + connexionStatusError = t("observe.storage.error.serverVersionModelMismatch", modelServerVersion, clientModelVersion); + + setConnexionStatus(ConnexionStatus.FAILED); + + error = true; + } + } } if (!error) { ===================================== application-swing/src/main/resources/i18n/application-swing_en_GB.properties ===================================== --- a/application-swing/src/main/resources/i18n/application-swing_en_GB.properties +++ b/application-swing/src/main/resources/i18n/application-swing_en_GB.properties @@ -1684,13 +1684,14 @@ observe.storage.config.right.storage=Right data source configuration observe.storage.config.source.storage=Configuration of data source to update observe.storage.config.target.storage=Configuration of target data source observe.storage.error.badUrl=The url format is not valid (%s) -observe.storage.error.dbVersionMismatch=Version of remote database (%s) is not compiliant with the model version (%s) +observe.storage.error.dbVersionMismatch=Version of remote database (%s) is not compliant with the model version (%s) observe.storage.error.rest.database.unknownForUser=Database "%s" is not defined for user "%s" observe.storage.error.rest.password.bad=Password is not valid observe.storage.error.rest.pasword.required=Password is mandatory observe.storage.error.rest.user.required=User login is mandatory observe.storage.error.rest.user.unknown=User "%s" is not defined on server -observe.storage.error.serverVersionMismatch=Remote server version (%s) is not compiliant with the model version (%s) +observe.storage.error.serverVersionMismatch=Remote server version (%s) is not compliant with the client version (%s) +observe.storage.error.serverVersionModelMismatch=Remote server model version (%s) is not compliant with the client model version (%s) observe.storage.import.data.fromBackup=Import data from a backup of a local database (*.sql.gz) observe.storage.import.data.fromRemoteStorage=Import data from a remote database observe.storage.import.data.fromServerStorage=Import data from a remove server ===================================== application-swing/src/main/resources/i18n/application-swing_es_ES.properties ===================================== --- a/application-swing/src/main/resources/i18n/application-swing_es_ES.properties +++ b/application-swing/src/main/resources/i18n/application-swing_es_ES.properties @@ -1693,6 +1693,7 @@ observe.storage.error.rest.pasword.required=Le contraseña es obligatoria observe.storage.error.rest.user.required=El usuario es obligatorio observe.storage.error.rest.user.unknown=El usuario "%s" no es conocido del servidor observe.storage.error.serverVersionMismatch=La versión del servidor remoto (%s) no es compatible con la versión del modelo (%s) +observe.storage.error.serverVersionModelMismatch=La version du modèle du serveur distant (%s) n'est pas compatible avec la version du modèle du client (%s) \#TODO observe.storage.import.data.fromBackup=Importar los datos de una copia de seguridad de una base local (*.sql.gz) observe.storage.import.data.fromRemoteStorage=Importar los datos de una base remota observe.storage.import.data.fromServerStorage=Importar los datos de un servidor remoto ===================================== application-swing/src/main/resources/i18n/application-swing_fr_FR.properties ===================================== --- a/application-swing/src/main/resources/i18n/application-swing_fr_FR.properties +++ b/application-swing/src/main/resources/i18n/application-swing_fr_FR.properties @@ -1697,12 +1697,13 @@ observe.storage.error.rest.password.bad=Le mot de passe est invalide observe.storage.error.rest.pasword.required=Le mot de passe est obligatoire observe.storage.error.rest.user.required=L'utilisateur est obligatoire observe.storage.error.rest.user.unknown=L'utilisateur "%s" est inconnu sur le serveur -observe.storage.error.serverVersionMismatch=La version du serveur distant (%s) n'est pas compatible avec la version du modèle (%s) +observe.storage.error.serverVersionMismatch=La version du serveur distant (%s) n'est pas compatible avec la version du client (%s) +observe.storage.error.serverVersionModelMismatch=La version du modèle du serveur distant (%s) n'est pas compatible avec la version du modèle du client (%s) observe.storage.import.data.fromBackup=Importer les données depuis une sauvegarde de base locale (*.sql.gz) observe.storage.import.data.fromRemoteStorage=Importer les données depuis une base distante observe.storage.import.data.fromServerStorage=Importer les données depuis un serveur distant observe.storage.importExternalDump.config=Sélection de la sauvegarde à utiliser -observe.storage.importExternalDump.description=Veuillez sélectionner le fichier d'une sauvegarde (*.sql.gz). +observe.storage.importExternalDump.description=Veuillez sélectionner le fichier d'une sauvegarde (*.sql.gz). observe.storage.importExternalDumpData.config=Choisir la sauvegarde contenant les données à importer observe.storage.importExternalDumpReferentiel.config=Choisir la sauvegarde contenant le référentiel à importer observe.storage.importRemoteStorage.config=Sélection de la base distante à importer ===================================== application-web/src/main/filtered-resources/mapping ===================================== --- a/application-web/src/main/filtered-resources/mapping +++ b/application-web/src/main/filtered-resources/mapping @@ -76,6 +76,7 @@ GET /api/v1/DataSourceService/migrateData GET /api/v1/DataSourceService/open v1.DataSourceServiceController.open GET /api/v1/LastUpdateDateService/updateDataLastUpdateDates v1.LastUpdateDateServiceController.updateDataLastUpdateDates GET /api/v1/LastUpdateDateService/updateReferentialLastUpdateDates v1.LastUpdateDateServiceController.updateReferentialLastUpdateDates +GET /api/v1/PingService/getServerVersion v1.PingServiceController.getServerVersion GET /api/v1/PingService/ping v1.PingServiceController.ping GET /api/v1/actions/synchro/referential/diff/ReferentialSynchronizeDiffService/getEnabledReferentialReferenceSet v1.actions.synchro.referential.diff.ReferentialSynchronizeDiffServiceController.getEnabledReferentialReferenceSet GET /api/v1/actions/synchro/referential/diff/ReferentialSynchronizeDiffService/getSourceReferentialStates v1.actions.synchro.referential.diff.ReferentialSynchronizeDiffServiceController.getSourceReferentialStates ===================================== application-web/src/main/java/fr/ird/observe/application/web/controller/v1/PingServiceController.java ===================================== --- a/application-web/src/main/java/fr/ird/observe/application/web/controller/v1/PingServiceController.java +++ b/application-web/src/main/java/fr/ird/observe/application/web/controller/v1/PingServiceController.java @@ -22,10 +22,10 @@ package fr.ird.observe.application.web.controller.v1; * #L% */ -import fr.ird.observe.application.web.configuration.ObserveWebApplicationConfig; import fr.ird.observe.application.web.controller.ObserveWebMotionController; import fr.ird.observe.services.service.PingService; import org.nuiton.version.Version; +import org.nuiton.version.Versions; /** * Created on 06/09/15. @@ -34,11 +34,16 @@ import org.nuiton.version.Version; */ public class PingServiceController extends ObserveWebMotionController implements PingService { + @Override public Version ping() { + return getApplicationConfiguration().getModelVersion(); + } - ObserveWebApplicationConfig configuration = getApplicationConfiguration(); - - return configuration.getModelVersion(); + @Override + public Version getServerVersion() { + Version buildVersion = getApplicationConfiguration().getBuildVersion(); + return buildVersion.isSnapshot() ? Versions.removeSnapshot(buildVersion) : buildVersion; } + } ===================================== services/src/main/java/fr/ird/observe/services/service/PingService.java ===================================== --- a/services/src/main/java/fr/ird/observe/services/service/PingService.java +++ b/services/src/main/java/fr/ird/observe/services/service/PingService.java @@ -36,4 +36,7 @@ public interface PingService extends ObserveService { @NoDataAccess Version ping(); + @NoDataAccess + Version getServerVersion(); + } View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/57b3dc7f2c550608f4f6d79f3b01... --- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/57b3dc7f2c550608f4f6d79f3b01... You're receiving this email because of your account on gitlab.com.