This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit bcb1e5579557c12041f45de45b3e8266b75a6ab5 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Nov 8 17:24:23 2015 +0100 Faire en sorte de récupérer les configurations de connexion depuis la configuration --- .../ird/observe/ui/storage/StorageUIHandler.java | 9 +- .../fr/ird/observe/ui/storage/StorageUIModel.java | 129 ++++++++++++--------- 2 files changed, 79 insertions(+), 59 deletions(-) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIHandler.java index 2aec13c..6170020 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIHandler.java @@ -239,8 +239,13 @@ public class StorageUIHandler { if (StorageStep.CONFIG == newStep) { - // on redemande un test de connexion a chaque fois - model.setConnexionStatus(ConnexionStatus.UNTESTED); + model.updateEditConfigValues(); + + if (mustRecompute) { + + // on redemande un test de connexion a chaque fois qu'on rentre dans l'onglet + model.setConnexionStatus(ConnexionStatus.UNTESTED); + } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIModel.java index c59a877..0add006 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIModel.java @@ -22,6 +22,7 @@ package fr.ird.observe.ui.storage; import fr.ird.observe.ObserveSwingApplicationContext; +import fr.ird.observe.ObserveSwingTechnicalException; import fr.ird.observe.configuration.ObserveSwingApplicationConfig; import fr.ird.observe.db.ObserveSwingDataSource; import fr.ird.observe.db.constantes.ConnexionStatus; @@ -34,6 +35,8 @@ import fr.ird.observe.services.configuration.ObserveDataSourceConfigurationTopia import fr.ird.observe.services.configuration.ObserveDataSourceConfigurationTopiaPG; import fr.ird.observe.services.configuration.ObserveDataSourceInformation; import fr.ird.observe.services.dto.DataSourceCreateConfigurationDto; +import fr.ird.observe.services.dto.DataSourceCreateWithNoReferentialImportException; +import fr.ird.observe.services.dto.IncompatibleDataSourceCreateConfigurationException; import fr.ird.observe.services.dto.ObserveDbUserDto; import fr.ird.observe.services.service.BabModelVersionException; import fr.ird.observe.services.service.DataSourceDumpProducerService; @@ -686,6 +689,11 @@ public class StorageUIModel extends WizardModel<StorageStep> { firePropertyChange(REMOTE_URL_ROPERTY_NAME, getRemoteUrl()); firePropertyChange(REMOTE_LOGIN_ROPERTY_NAME, getRemoteLogin()); firePropertyChange(REMOTE_PASSWORD_PROPERTY_NAME, getRemotePassword()); + firePropertyChange(SERVER_DATABASE_PROPERTY_NAME, getServerDatabase()); + + firePropertyChange(EDIT_REMOTE_CONFIG_PROPERTY_NAME, isEditRemoteConfig()); + firePropertyChange(EDIT_SERVER_CONFIG_PROPERTY_NAME, isEditServerConfig()); + firePropertyChange(USE_SSL_PROPERTY_NAME, null, isUseSsl()); firePropertyChange(CAN_MIGRATE_PROPERTY_NAME, isCanMigrate()); firePropertyChange(SHOW_MIGRATION_SQL_PROPERTY_NAME, isShowMigrationSql()); @@ -1172,17 +1180,35 @@ public class StorageUIModel extends WizardModel<StorageStep> { protected void updateEditConfig() { boolean oldValueRemote = isEditRemoteConfig(); + boolean oldValueServer = isEditServerConfig(); + editRemoteConfig = DbMode.USE_REMOTE.equals(dbMode) || - DbMode.CREATE_LOCAL.equals(dbMode) && CreationMode.IMPORT_REMOTE_STORAGE.equals(creationMode); + DbMode.CREATE_LOCAL.equals(dbMode) && CreationMode.IMPORT_REMOTE_STORAGE.equals(creationMode); firePropertyChange(EDIT_REMOTE_CONFIG_PROPERTY_NAME, oldValueRemote, editRemoteConfig); - boolean oldValueServer = isEditServerConfig(); editServerConfig = DbMode.USE_SERVER.equals(dbMode) || - DbMode.CREATE_LOCAL.equals(dbMode) && CreationMode.IMPORT_SERVER_STORAGE.equals(creationMode); + DbMode.CREATE_LOCAL.equals(dbMode) && CreationMode.IMPORT_SERVER_STORAGE.equals(creationMode); firePropertyChange(EDIT_SERVER_CONFIG_PROPERTY_NAME, oldValueServer, editServerConfig); - } + public void updateEditConfigValues() { + + if (isEditRemoteConfig()) { + // bind from pg config model + setRemoteLogin(pgConfig.getUsername()); + setRemoteUrl(pgConfig.getJdbcUrl()); + setRemotePassword(pgConfig.getPassword()); + } + + if (isEditServerConfig()) { + // bind from rest config model + setRemoteLogin(restConfig.getLogin()); + setRemoteUrl(restConfig.getServerUrl() == null ? "" : restConfig.getServerUrl().toString()); + setRemotePassword(restConfig.getPassword()); + setServerDatabase(restConfig.getOptionalDatabaseName().orNull()); + } + + } public void setLocalStorageExist(boolean localStorageExist) { boolean oldValue = this.localStorageExist; @@ -1387,29 +1413,6 @@ public class StorageUIModel extends WizardModel<StorageStep> { return restConfig; } -// public String getDataSourceConfigDetail() { -// String result = null; -// if (isEditRemoteConfig()) { -// String yes = t("observe.boolean.yes"); -// String no = t("observe.boolean.no"); -// result = t("observe.storage.detail.remote", -// pgConfig.getJdbcUrl(), -// pgConfig.getUsername(), -// "***", -// (pgConfig.isUseSsl() ? yes : no)); -// } else if (isEditServerConfig()) { -// result = t("observe.storage.detail.server", -// restConfig.getServerUrl(), -// restConfig.getLogin(), -// "***", -// restConfig.getOptionalDatabaseName().orNull()); -// } else { -// result = t("observe.storage.detail.local", h2Config.getDbName()); -// } -// return result; -// } - - public void setRemoteLogin(String remoteLogin) { String oldValue = getRemoteLogin(); @@ -1424,7 +1427,7 @@ public class StorageUIModel extends WizardModel<StorageStep> { } - firePgConfigChanged(REMOTE_LOGIN_ROPERTY_NAME, oldValue, remoteLogin); + firePgConfigChanged(REMOTE_LOGIN_ROPERTY_NAME, null, remoteLogin); } public void setRemotePassword(char[] remotePassword) { @@ -1439,8 +1442,7 @@ public class StorageUIModel extends WizardModel<StorageStep> { restConfig.setPassword(remotePassword); } - firePgConfigChanged(REMOTE_PASSWORD_PROPERTY_NAME, oldValue, - remotePassword); + firePgConfigChanged(REMOTE_PASSWORD_PROPERTY_NAME, null, remotePassword); } public void setCanUseLocalService(boolean canUseLocalService) { @@ -1466,8 +1468,6 @@ public class StorageUIModel extends WizardModel<StorageStep> { } public void setRemoteUrl(String remoteUrl) { - String oldValue = getRemoteUrl(); - if (isEditRemoteConfig()) { pgConfig.setJdbcUrl(remoteUrl); @@ -1477,23 +1477,21 @@ public class StorageUIModel extends WizardModel<StorageStep> { serverUrl = remoteUrl; } - firePgConfigChanged(REMOTE_URL_ROPERTY_NAME, oldValue, remoteUrl); + firePgConfigChanged(REMOTE_URL_ROPERTY_NAME, null, remoteUrl); } public void setUseSsl(boolean useSsl) { - boolean oldValue = pgConfig.isUseSsl(); pgConfig.setUseSsl(useSsl); - firePgConfigChanged(USE_SSL_PROPERTY_NAME, oldValue, useSsl); + firePgConfigChanged(USE_SSL_PROPERTY_NAME, null, useSsl); } public void setServerDatabase(String database) { - String oldValue = getServerDatabase(); if (StringUtils.isBlank(database)) { restConfig.setOptionalDatabaseName(null); } else { restConfig.setOptionalDatabaseName(database); } - firePgConfigChanged(SERVER_DATABASE_PROPERTY_NAME, oldValue, restConfig.getOptionalDatabaseName()); + firePgConfigChanged(SERVER_DATABASE_PROPERTY_NAME, null, database); } // ---------------------------------------------------------- @@ -1553,13 +1551,14 @@ public class StorageUIModel extends WizardModel<StorageStep> { } if (configSrc != null) { - ObserveSwingDataSource source = new ObserveSwingDataSource(configSrc); - source.open(); - DataSourceDumpProducerService dumpService = source.newService(DataSourceDumpProducerService.class); - byte[] dump = dumpService.getReferentialDump(); - result.setImportDatabase(dump); + try (ObserveSwingDataSource source = new ObserveSwingDataSource(configSrc)) { + + source.open(); - source.close(); + DataSourceDumpProducerService dumpService = source.newService(DataSourceDumpProducerService.class); + byte[] dump = dumpService.getReferentialDump(); + result.setImportDatabase(dump); + } } @@ -1632,13 +1631,21 @@ public class StorageUIModel extends WizardModel<StorageStep> { dst.fromStorageConfig(h2Config); dst.fromStorageConfig(pgConfig); dst.fromStorageConfig(restConfig); - dst.setServerUrl(getServerUrl()); dst.setDbMode(getDbMode()); dst.setSelectDataModel(getSelectDataModel()); dst.setSecurityModel(getSecurityModel()); dst.setAdminAction(getAdminAction()); dst.setConnexionStatus(getConnexionStatus()); dst.setDataSourceInformation(getDataSourceInformation()); + + dst.updateEditConfig(); + + dst.setUseSsl(isUseSsl()); + dst.setRemoteUrl(getRemoteUrl()); + dst.setRemoteLogin(getRemoteLogin()); + dst.setRemotePassword(getRemotePassword()); + dst.setServerDatabase(getServerDatabase()); + } public void firePgConfigChanged(String propertyName, @@ -1862,8 +1869,6 @@ public class StorageUIModel extends WizardModel<StorageStep> { ObserveSwingApplicationContext context = ObserveSwingApplicationContext.get(); - importDataSource = context.createDataSourceH2Temp(dbLabel); - DataSourceCreateConfigurationDto createConfigurationDto = new DataSourceCreateConfigurationDto(); try (FileInputStream inputStream = new FileInputStream(dumpFile)) { @@ -1872,9 +1877,7 @@ public class StorageUIModel extends WizardModel<StorageStep> { createConfigurationDto.setImportDatabase(bytes); - importDataSource.create(createConfigurationDto); - importDataSource.close(); } catch (Exception e) { @@ -1882,25 +1885,37 @@ public class StorageUIModel extends WizardModel<StorageStep> { } + try (ObserveSwingDataSource importDataSource2 = context.createDataSourceH2Temp(dbLabel)) { + + importDataSource = importDataSource2; + + try { + importDataSource2.create(createConfigurationDto); + } catch (IncompatibleDataSourceCreateConfigurationException | DataSourceCreateWithNoReferentialImportException e) { + throw new ObserveSwingTechnicalException("Could not create import data source", e); + } + + } + break; - case IMPORT_REMOTE_STORAGE: + case IMPORT_REMOTE_STORAGE: { // import referentiel from a remote db - ObserveDataSourceConfigurationTopiaPG pgConfig = getCentralSourceModel().toPGStorageConfig(dbLabel); + ObserveDataSourceConfigurationTopiaPG dataSourceConfig = getCentralSourceModel().toPGStorageConfig(dbLabel); - pgConfig.setCanMigrate(false); - - importDataSource = new ObserveSwingDataSource(pgConfig); + dataSourceConfig.setCanMigrate(false); + importDataSource = new ObserveSwingDataSource(dataSourceConfig); + } break; - case IMPORT_SERVER_STORAGE: + case IMPORT_SERVER_STORAGE: { // import referentiel from a server db - ObserveDataSourceConfigurationRest restConfig = getCentralSourceModel().toRestStorageConfig(dbLabel); - - importDataSource = new ObserveSwingDataSource(restConfig); + ObserveDataSourceConfigurationRest dataSourceConfig = getCentralSourceModel().toRestStorageConfig(dbLabel); + importDataSource = new ObserveSwingDataSource(dataSourceConfig); + } break; default: throw new IllegalStateException("Can't come here"); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.