This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 7cfd17c75073f6fcd7879d8788829998c76a8dba Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Sep 15 19:59:14 2016 +0200 Use new configuration generation --- application-swing-configuration/pom.xml | 16 + .../ObserveSwingApplicationConfig.java | 704 +++------------------ .../ObserveSwingApplicationConfigOption.java | 572 ++++++----------- .../observe/application/swing/ObserveCLAction.java | 2 +- .../application/swing/ObserveResourceManager.java | 6 +- .../observe/application/swing/ObserveRunner.java | 26 +- .../ObserveSwingApplicationDataSourcesManager.java | 12 +- .../application/swing/ui/ObserveMainUIHandler.java | 2 +- .../actions/ChangeApplicationLanguageAction.java | 3 +- .../swing/ui/actions/ChangeDbLanguageAction.java | 5 +- .../swing/ui/actions/GotoSiteAction.java | 2 +- .../swing/ui/actions/ReloadStorageAction.java | 4 +- .../swing/ui/actions/ShowConfigAction.java | 43 +- .../swing/ui/actions/StartServerModeAction.java | 2 +- .../swing/ui/storage/StorageUIHandler.java | 10 +- application-web-configuration/pom.xml | 17 + .../ObserveWebApplicationConfiguration.java | 116 +--- .../ObserveWebApplicationConfigurationOption.java | 38 +- pom.xml | 2 +- 19 files changed, 381 insertions(+), 1201 deletions(-) diff --git a/application-swing-configuration/pom.xml b/application-swing-configuration/pom.xml index 7835417..13b52c4 100644 --- a/application-swing-configuration/pom.xml +++ b/application-swing-configuration/pom.xml @@ -116,6 +116,22 @@ </executions> </plugin> + <plugin> + <groupId>org.nuiton.eugene</groupId> + <artifactId>eugene-maven-plugin</artifactId> + <executions> + <execution> + <phase>generate-sources</phase> + <id>generate-config</id> + <configuration> + <modelName>ObserveSwingApplication</modelName> + </configuration> + <goals> + <goal>generate-config</goal> + </goals> + </execution> + </executions> + </plugin> </plugins> </build> diff --git a/application-swing-configuration/src/main/java/fr/ird/observe/application/swing/configuration/ObserveSwingApplicationConfig.java b/application-swing-configuration/src/main/java/fr/ird/observe/application/swing/configuration/ObserveSwingApplicationConfig.java index e97b6b3..e9c7a41 100644 --- a/application-swing-configuration/src/main/java/fr/ird/observe/application/swing/configuration/ObserveSwingApplicationConfig.java +++ b/application-swing-configuration/src/main/java/fr/ird/observe/application/swing/configuration/ObserveSwingApplicationConfig.java @@ -21,34 +21,29 @@ */ package fr.ird.observe.application.swing.configuration; -import com.google.common.base.Charsets; import com.google.common.collect.ImmutableSet; -import com.google.common.collect.Lists; import com.google.common.collect.Sets; import fr.ird.observe.application.swing.configuration.constants.CreationMode; import fr.ird.observe.application.swing.configuration.constants.DbMode; -import jaxx.runtime.SwingUtil; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.config.ApplicationConfig; -import org.nuiton.config.ApplicationConfigHelper; -import org.nuiton.config.ApplicationConfigProvider; +import org.nuiton.config.ArgumentsParserException; import org.nuiton.config.ConfigActionDef; import org.nuiton.version.Version; import org.nuiton.version.Versions; -import javax.swing.JOptionPane; -import java.awt.Color; import java.beans.PropertyChangeListener; +import java.beans.PropertyChangeSupport; import java.io.File; import java.io.IOException; -import java.net.URL; +import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; +import java.util.LinkedList; import java.util.List; -import java.util.Locale; import java.util.Properties; import java.util.Set; @@ -60,106 +55,22 @@ import static org.nuiton.i18n.I18n.t; * @author Tony Chemit - chemit@codelutin.com * @since 1.0 */ -public class ObserveSwingApplicationConfig extends ApplicationConfig { +public class ObserveSwingApplicationConfig extends GeneratedObserveSwingApplicationConfig { /** le pattern du fichier de sauvegarde d'une base locale */ public static final String BACKUP_DB_PATTERN = "obstuna-local-%1$tF--%1$tk-%1$tM-%1$tS.sql.gz"; public static final String DB_NAME = "obstuna"; - /** - * La version de l'application. - */ - private static final String APPLICATION_VERSION = "application.version"; - - private static final String VERSION = "version"; - - static final String PROPERTY_DEFAULT_DB_MODE = "defaultDbMode"; - - static final String PROPERTY_DEFAULT_CREATION_MODE = "defaultCreationMode"; - - static final String PROPERTY_SPECIES_LIST_SEINE_TARGET_CATCH_ID = "speciesListSeineTargetCatchId"; - - static final String PROPERTY_SPECIES_LIST_SEINE_SCHOOL_ESTIMATE_ID = "speciesListSeineSchoolEstimateId"; - - static final String PROPERTY_SPECIES_LIST_SEINE_OBJECT_SCHOOL_ESTIMATE_ID = "speciesListSeineObjectSchoolEstimateId"; - - static final String PROPERTY_SPECIES_LIST_SEINE_NON_TARGET_CATCH_ID = "speciesListSeineNonTargetCatchId"; - - static final String PROPERTY_SPECIES_LIST_SEINE_OBJECT_OBSERVED_SPECIES_ID = "speciesListSeineObjectObservedSpeciesId"; - - static final String PROPERTY_SPECIES_LIST_LONGLINE_CATCH_ID = "speciesListLonglineCatchId"; - - static final String PROPERTY_SPECIES_LIST_LONGLINE_ENCOUNTER_ID = "speciesListLonglineEncounterId"; - - static final String PROPERTY_SPECIES_LIST_LONGLINE_DEPREDATOR_ID = "speciesListLonglineDepredatorId"; - - static final String PROPERTY_AUTO_POPUP_NUMBER_EDITOR = "autoPopupNumberEditor"; - - static final String PROPERTY_SHOW_NUMBER_EDITOR_BUTTON = "showNumberEditorButton"; - - static final String PROPERTY_SHOW_DATE_TIME_EDITOR_SLIDER = "showTimeEditorSlider"; - - private static final String PROPERTY_LOCAL_STORAGE_EXIST = "localStorageExist"; - - private static final String PROPERTY_INITIAL_DUMP_EXIST = "initialDumpExist"; - - private static final String PROPERTY_MAIN_STORAGE_OPENED = "mainStorageOpened"; - - static final String PROPERTY_STORE_REMOTE_STORAGE = "storeRemoteStorage"; - - static final String PROPERTY_DEFAULT_GPS_MAX_DELAY = "defaultGpsMaxDelay"; - - static final String PROPERTY_DEFAULT_GPS_MAX_SPEED = "defaultGpsMaxSpeed"; - - static final String PROPERTY_CHANGE_SYNCHRO_SRC = "changeSynchroSrc"; - - static final String PROPERTY_NON_TARGET_OBSERVATION = "nonTargetObservation"; - - static final String PROPERTY_TARGET_DISCARDS_OBSERVATION = "targetDiscardsObservation"; - - static final String PROPERTY_SAMPLES_OBSERVATION = "samplesObservation"; - - static final String PROPERTY_OBJECTS_OBSERVATION = "objectsObservation"; - - static final String PROPERTY_DETAILLED_ACTIVITIES_OBSERVATION = "detailledActivitiesObservation"; - - static final String PROPERTY_MAMMALS_OBSERVATION = "mammalsObservation"; - - static final String PROPERTY_BIRDS_OBSERVATION = "birdsObservation"; - - static final String PROPERTY_BAIT_OBSERVATION = "baitObservation"; - - static final String PROPERTY_RESOURCES_DIRECTORY = "resourcesDirectory"; - - static final String PROPERTY_LOCALE = "locale"; - - static final String PROPERTY_DB_LOCALE = "dbLocale"; - - static final String PROPERTY_FULL_SCREEN = "fullScreen"; + static final String APPLICATION_VERSION = "application.version"; - static final String PROPERTY_I18N_DIRECTORY = "i18nDirectory"; + static final String VERSION = "version"; - static final String PROPERTY_REPORT_DIRECTORY = "reportDirectory"; + static final String PROPERTY_LOCAL_STORAGE_EXIST = "localStorageExist"; - static final String PROPERTY_MAP_DIRECTORY = "mapDirectory"; + static final String PROPERTY_INITIAL_DUMP_EXIST = "initialDumpExist"; - static final String PROPERTY_LOAD_LOCAL_STORAGE = "loadLocalStorage"; - - static final String PROPERTY_SHOW_MIGRATION_PROGRESSION = "showMigrationProgression"; - - static final String PROPERTY_SHOW_MIGRATION_SQL = "showMigrationSql"; - - static final String PROPERTY_VALIDATION_REPORT_DIRECTORY = "validationReportDirectory"; - - static final String PROPERTY_SHOW_SQL = "showSql"; - - static final String PROPERTY_DEV_MODE = "devMode"; - - static final String PROPERTY_TREE_OPEN_NODES = "treeOpenNodes"; - - static final String PROPERTY_VALIDATION_SPEED_ENABLE = "validationSpeedEnable"; - static final String PROPERTY_VALIDATION_SPEED_MAX_VALUE = "validationSpeedMaxValue"; + static final String PROPERTY_MAIN_STORAGE_OPENED = "mainStorageOpened"; /** Logger */ private static final Log log = LogFactory.getLog(ObserveSwingApplicationConfig.class); @@ -213,6 +124,8 @@ public class ObserveSwingApplicationConfig extends ApplicationConfig { */ private String[] unsavables; + protected final PropertyChangeSupport pcs; + //FIXME private final ImmutableSet<String> longlinVesselTypeIds = ImmutableSet.copyOf( Sets.newHashSet("fr.ird.observe.entities.referentiel.VesselType#1239832675735#0.044156847891821505", @@ -231,20 +144,21 @@ public class ObserveSwingApplicationConfig extends ApplicationConfig { } public ObserveSwingApplicationConfig(String confFileName) { - setEncoding(Charsets.UTF_8.name()); - setConfigFileName(confFileName); - ApplicationConfigProvider applicationConfigProvider = ApplicationConfigHelper.getProvider(getClass().getClassLoader(), ObserveSwingApplicationConfigProvider.OBSERVE_SWING_CONFIGURATION_PROVIDER_NAME); - loadDefaultOptions(applicationConfigProvider.getOptions()); + ApplicationConfig delegate = getApplicationConfig(); + delegate.setEncoding(StandardCharsets.UTF_8.name()); + delegate.setConfigFileName(confFileName); + pcs = new PropertyChangeSupport(this); } - public boolean containActions(Step action) { - List<Action> list = actions.get(action.ordinal()); - return !(list == null || list.isEmpty()); + @Override + public ApplicationConfig getApplicationConfig() { + return super.getApplicationConfig(); } - public void initConfig(Properties p, ConfigActionDef... actions) throws IOException { + public void initConfig(Properties p, String... args) throws IOException, ArgumentsParserException { Version version = null; + ApplicationConfig delegate = getApplicationConfig(); for (Object k : p.keySet()) { String key = String.valueOf(k); @@ -260,7 +174,8 @@ public class ObserveSwingApplicationConfig extends ApplicationConfig { } } else { - setDefaultOption(key, strValue); + + delegate.setDefaultOption(key, strValue); } } @@ -269,52 +184,29 @@ public class ObserveSwingApplicationConfig extends ApplicationConfig { } setVersion(version); - setDefaultOption(VERSION, version.getVersion()); - setDefaultOption(APPLICATION_VERSION, version.getVersion()); + delegate.setDefaultOption(VERSION, version.getVersion()); + delegate.setDefaultOption(APPLICATION_VERSION, version.getVersion()); // creation des actions disponibles - for (ConfigActionDef a : actions) { + for (ConfigActionDef a : ObserveSwingApplicationActionDefinition.values()) { for (String alias : a.getAliases()) { - addActionAlias(alias, a.getAction()); + delegate.addActionAlias(alias, a.getAction()); } } + delegate.parse(args); + } @Override - protected void migrateUserConfigurationFile(File oldHomeConfig, - File homeConfig) throws IOException { - super.migrateUserConfigurationFile(oldHomeConfig, homeConfig); - // on previent l'utilisateur que son fichier de configuration a été - // deplacé - JOptionPane.showInternalMessageDialog(null, - t("observe.title.config.migrate"), - t("observe.runner.config.migrate.file", - oldHomeConfig.getName(), - oldHomeConfig, - homeConfig - ), - JOptionPane.WARNING_MESSAGE); - } - - public void installSaveAction() { - // ajout de l'action de sauvegarde automatique sur certaines propriétés - - List<String> result = new ArrayList<>(); - - for (ObserveSwingApplicationConfigOption option : ObserveSwingApplicationConfigOption.values()) { - String key = option.getPropertyKey(); - if (key != null) { - // add a listener - if (log.isDebugEnabled()) { - log.debug("register action listener for property " + key); - } - result.add(key); - } - } + public DbMode getDefaultDbMode() { + return DbMode.valueOf(getApplicationConfig().getOption(ObserveSwingApplicationConfigOption.DEFAULT_DB_MODE.key)); + } - installSaveUserAction(result.toArray(new String[result.size()])); + @Override + public CreationMode getDefaultCreationMode() { + return CreationMode.valueOf(getApplicationConfig().getOption(ObserveSwingApplicationConfigOption.DEFAULT_CREATION_MODE.key)); } public String getCopyrightText() { @@ -328,240 +220,16 @@ public class ObserveSwingApplicationConfig extends ApplicationConfig { return copyrightText; } - public boolean isDevMode() { - return getOptionAsBoolean(ObserveSwingApplicationConfigOption.DEV_MODE.key); - } - public Version getVersion() { return version; } - public Version getModelVersion() { - return getOption(Version.class, ObserveSwingApplicationConfigOption.MODEL_VERSION.key); - } - - public boolean isAutoPopupNumberEditor() { - return getOptionAsBoolean(ObserveSwingApplicationConfigOption.AUTO_POPUP_NUMBER_EDITOR.key); - } - - public boolean isShowNumberEditorButton() { - return getOptionAsBoolean(ObserveSwingApplicationConfigOption.SHOW_NUMBER_EDITOR_BUTTON.key); - } - public boolean isShowTimeEditorSlider() { - return getOptionAsBoolean(ObserveSwingApplicationConfigOption.SHOW_DATE_TIME_EDITOR_SLIDER.key); - } - - public boolean isFullScreen() { - return getOptionAsBoolean(ObserveSwingApplicationConfigOption.FULL_SCREEN.key); - } - - public File getDataDirectory() { - return getOptionAsFile(ObserveSwingApplicationConfigOption.DATA_DIRECTORY.key); - } - - public File getValidationReportDirectory() { - return getOptionAsFile(ObserveSwingApplicationConfigOption.VALIDATION_REPORT_DIRECTORY.key); + return isShowDateTimeEditorSlider(); } public File getLocalDBDirectory() { - return getOptionAsFile(ObserveSwingApplicationConfigOption.DB_DIRECTORY.key); - } - - public File getResourcesDirectory() { - return getOptionAsFile(ObserveSwingApplicationConfigOption.RESOURCES_DIRECTORY.key); - } - - public File getI18nDirectory() { - return getOptionAsFile(ObserveSwingApplicationConfigOption.I18N_DIRECTORY.key); - } - - public File getInitialDbDump() { - return getOptionAsFile(ObserveSwingApplicationConfigOption.INITIAL_DB_DUMP.key); - } - - public File getBackupDirectory() { - return getOptionAsFile(ObserveSwingApplicationConfigOption.BACKUP_DIRECTORY.key); - } - - public File getReportDirectory() { - return getOptionAsFile(ObserveSwingApplicationConfigOption.REPORT_DIRECTORY.key); - } - - public File getTmpDirectory() { - return getOptionAsFile(ObserveSwingApplicationConfigOption.TMP_DIRECTORY.key); - } - - public File getLogConfigurationFile() { - return getOptionAsFile(ObserveSwingApplicationConfigOption.LOG_CONFIGURATION_FILE.key); - } - - public String getH2Login() { - return getOption(ObserveSwingApplicationConfigOption.H2_LOGIN.key); - } - - public char[] getH2Password() { - String result = getOption(ObserveSwingApplicationConfigOption.H2_PASSWORD.key); - return result.toCharArray(); - } - - public int getH2ServerPort() { - return getOptionAsInt(ObserveSwingApplicationConfigOption.H2_SERVER_PORT.key); - } - - public String getObstunaUrl() { - return getOption(ObserveSwingApplicationConfigOption.OBSTUNA_URL.key); - } - - public void setObstunaUrl(String jdbcUrl) { - setOption(ObserveSwingApplicationConfigOption.OBSTUNA_URL.key, jdbcUrl); - } - - public String getObstunaLogin() { - return getOption(ObserveSwingApplicationConfigOption.OBSTUNA_LOGIN.key); - } - - public void setObstunaLogin(String login) { - setOption(ObserveSwingApplicationConfigOption.OBSTUNA_LOGIN.key, login); - } - - public char[] getObstunaPassword() { - String result = getOption(ObserveSwingApplicationConfigOption.OBSTUNA_PASSWORD.key); - return result.toCharArray(); - } - - public void setObstunaPassword(char[] password) { - setOption(ObserveSwingApplicationConfigOption.OBSTUNA_PASSWORD.key, new String(password)); - } - - public boolean isObstunaUseSsl() { - return getOptionAsBoolean(ObserveSwingApplicationConfigOption.OBSTUNA_USE_SSL_CERT.key); - } - - public void setObstunaUseSsl(boolean useSsl) { - setOption(ObserveSwingApplicationConfigOption.OBSTUNA_USE_SSL_CERT, useSsl); - } - - public URL getServerUrl() { - return (URL) getOption(ObserveSwingApplicationConfigOption.SERVER_URL); - } - - public void setServerUrl(URL serverUrl) { - setOption(ObserveSwingApplicationConfigOption.SERVER_URL, serverUrl); - } - - public String getServerLogin() { - return getOption(ObserveSwingApplicationConfigOption.SERVER_LOGIN.key); - } - - public void setServerLogin(String serverLoginl) { - setOption(ObserveSwingApplicationConfigOption.SERVER_LOGIN.key, serverLoginl); - } - - public char[] getServerPassword() { - String result = getOption(ObserveSwingApplicationConfigOption.SERVER_PASSWORD.key); - return result.toCharArray(); - } - - public void setServerPassword(char[] password) { - setOption(ObserveSwingApplicationConfigOption.SERVER_PASSWORD.key, new String(password)); - } - - public String getServerDataBaseName() { - return getOption(ObserveSwingApplicationConfigOption.SERVER_DATABASE_NAME.key); - } - - public void setServerDataBaseName(String dataBaseName) { - setOption(ObserveSwingApplicationConfigOption.SERVER_DATABASE_NAME.key, dataBaseName); - } - - public DbMode getDefaultDbMode() { - return getOption(DbMode.class, ObserveSwingApplicationConfigOption.DEFAULT_DB_MODE.key); - } - - public CreationMode getDefaultCreationMode() { - return getOption(CreationMode.class, ObserveSwingApplicationConfigOption.DEFAULT_CREATION_MODE.key); - } - - public boolean isShowMigrationSql() { - return getOptionAsBoolean(ObserveSwingApplicationConfigOption.SHOW_MIGRATION_SQL.key); - } - - public boolean isShowMigrationProgression() { - return getOptionAsBoolean(ObserveSwingApplicationConfigOption.SHOW_MIGRATION_PROGRESSION.key); - } - - public boolean isShowSql() { - return getOptionAsBoolean(ObserveSwingApplicationConfigOption.SHOW_SQL.key); - } - - public int getDefaultGpsMaxDelay() { - return getOptionAsInt(ObserveSwingApplicationConfigOption.DEFAULT_GPS_MAX_DELAY.key); - } - - public float getDefaultGpsMaxSpeed() { - double i = getOptionAsDouble(ObserveSwingApplicationConfigOption.DEFAULT_GPS_MAX_SPEED.key); - return (float) i; - } - - public boolean isChangeSynchroSrc() { - return getOptionAsBoolean(ObserveSwingApplicationConfigOption.CHANGE_SYNCHRO_SRC.key); - } - - public boolean isStoreRemoteStorage() { - return getOptionAsBoolean(ObserveSwingApplicationConfigOption.STORE_REMOTE_STORAGE.key); - } - - public boolean isCanMigrateObstuna() { - return getOptionAsBoolean(ObserveSwingApplicationConfigOption.OBSTUNA_CAN_MIGRATE.key); - } - - public boolean isCanMigrateH2() { - return getOptionAsBoolean(ObserveSwingApplicationConfigOption.H2_CAN_MIGRATE.key); - } - - public boolean isLoadLocalStorage() { - return getOptionAsBoolean(ObserveSwingApplicationConfigOption.LOAD_LOCAL_STORAGE.key); - } - - public Locale getLocale() { - return getOption(Locale.class, ObserveSwingApplicationConfigOption.LOCALE.key); - } - - public Locale getDbLocale() { - return getOption(Locale.class, ObserveSwingApplicationConfigOption.DB_LOCALE.key); - } - - public int getNonTargetObservation() { - return getOptionAsInt(ObserveSwingApplicationConfigOption.NON_TARGET_OBSERVATION.key); - } - - public int getTargetDiscardsObservation() { - return getOptionAsInt(ObserveSwingApplicationConfigOption.TARGET_DISCARDS_OBSERVATION.key); - } - - public int getSamplesObservation() { - return getOptionAsInt(ObserveSwingApplicationConfigOption.SAMPLES_OBSERVATION.key); - } - - public int getObjectsObservation() { - return getOptionAsInt(ObserveSwingApplicationConfigOption.OBJECTS_OBSERVATION.key); - } - - public int getDetailledActivitiesObservation() { - return getOptionAsInt(ObserveSwingApplicationConfigOption.DETAILLED_ACTIVITIES_OBSERVATION.key); - } - - public int getMammalsObservation() { - return getOptionAsInt(ObserveSwingApplicationConfigOption.MAMMALS_OBSERVATION.key); - } - - public int getBirdsObservation() { - return getOptionAsInt(ObserveSwingApplicationConfigOption.BIRDS_OBSERVATION.key); - } - - public int getBaitObservation() { - return getOptionAsInt(ObserveSwingApplicationConfigOption.BAIT_OBSERVATION.key); + return getDbDirectory(); } public boolean isDisplayMainUI() { @@ -628,183 +296,11 @@ public class ObserveSwingApplicationConfig extends ApplicationConfig { } } - public void setAutoPopupNumberEditor(boolean newValue) { - setOption(ObserveSwingApplicationConfigOption.AUTO_POPUP_NUMBER_EDITOR, newValue); - } - - public void setShowNumberEditorButton(boolean newValue) { - setOption(ObserveSwingApplicationConfigOption.SHOW_NUMBER_EDITOR_BUTTON, newValue); - } - - public void setShowTimeEditorSlider(boolean newValue) { - setOption(ObserveSwingApplicationConfigOption.SHOW_DATE_TIME_EDITOR_SLIDER, newValue); - } - - public void setFullScreen(boolean newValue) { - setOption(ObserveSwingApplicationConfigOption.FULL_SCREEN, newValue); - } - - public void setChangeSynchroSrc(boolean newValue) { - setOption(ObserveSwingApplicationConfigOption.CHANGE_SYNCHRO_SRC, newValue); - } - - public void setStoreRemoteStorage(boolean newValue) { - setOption(ObserveSwingApplicationConfigOption.STORE_REMOTE_STORAGE, newValue); - } - - public void setLoadLocalStorage(boolean newValue) { - setOption(ObserveSwingApplicationConfigOption.LOAD_LOCAL_STORAGE, newValue); - } - - public void setDefaultDbMode(DbMode newValue) { - setOption(ObserveSwingApplicationConfigOption.DEFAULT_DB_MODE, newValue); - } - - public void setDefaultCreationMode(CreationMode newValue) { - setOption(ObserveSwingApplicationConfigOption.DEFAULT_CREATION_MODE, newValue); - } - - public void setDefaultGpsMaxDelay(int newValue) { - setOption(ObserveSwingApplicationConfigOption.DEFAULT_GPS_MAX_DELAY, newValue); - } - - public void setDefaultGpsMaxSpeed(float newValue) { - setOption(ObserveSwingApplicationConfigOption.DEFAULT_GPS_MAX_SPEED, newValue); - } - - public void setLocale(Locale newValue) { - setOption(ObserveSwingApplicationConfigOption.LOCALE, newValue); - } - - public void setDbLocale(Locale newValue) { - setOption(ObserveSwingApplicationConfigOption.DB_LOCALE, newValue); - } - - public void setCanMigrateObstuna(Boolean newValue) { - setOption(ObserveSwingApplicationConfigOption.OBSTUNA_CAN_MIGRATE, newValue); - } - - public void setCanMigrateH2(Boolean newValue) { - setOption(ObserveSwingApplicationConfigOption.H2_CAN_MIGRATE, newValue); - } - - public void setNonTargetObservation(int newValue) { - setOption(ObserveSwingApplicationConfigOption.NON_TARGET_OBSERVATION, newValue); - } - - public void setTargetDiscardsObservation(int newValue) { - setOption(ObserveSwingApplicationConfigOption.TARGET_DISCARDS_OBSERVATION, newValue); - } - - public void setSamplesObservation(int newValue) { - setOption(ObserveSwingApplicationConfigOption.SAMPLES_OBSERVATION, newValue); - } - - public void setObjectsObservation(int newValue) { - setOption(ObserveSwingApplicationConfigOption.OBJECTS_OBSERVATION, newValue); - } - - public void setDetailledActivitiesObservation(int newValue) { - setOption(ObserveSwingApplicationConfigOption.DETAILLED_ACTIVITIES_OBSERVATION, newValue); - } - - public void setMammalsObservation(int newValue) { - setOption(ObserveSwingApplicationConfigOption.MAMMALS_OBSERVATION, newValue); - } - - public void setBirdsObservation(int newValue) { - setOption(ObserveSwingApplicationConfigOption.BIRDS_OBSERVATION, newValue); - } - - public void setBaitObservation(int newValue) { - setOption(ObserveSwingApplicationConfigOption.BAIT_OBSERVATION, newValue); - } - - public void setShowMigrationSql(boolean showMigrationSql) { - setOption(ObserveSwingApplicationConfigOption.SHOW_MIGRATION_SQL, showMigrationSql); - } - - public void setShowMigrationProgression(boolean showMigrationProgression) { - setOption(ObserveSwingApplicationConfigOption.SHOW_MIGRATION_PROGRESSION, showMigrationProgression); - } - - public void setShowSql(boolean showSql) { - setOption(ObserveSwingApplicationConfigOption.SHOW_SQL, showSql); - } - - public String getSpeciesListSeineNonTargetCatchId() { - return getOption(ObserveSwingApplicationConfigOption.SPECIES_LIST_SEINE_NON_TARGET_CATCH_ID.key); - } - - public String getSpeciesListSeineTargetCatchId() { - return getOption(ObserveSwingApplicationConfigOption.SPECIES_LIST_SEINE_TARGET_CATCH_ID.key); - } - - public String getSpeciesListSeineSchoolEstimateId() { - return getOption(ObserveSwingApplicationConfigOption.SPECIES_LIST_SEINE_SCHOOL_ESTIMATE_ID.key); - } - - public String getSpeciesListSeineObjectObservedSpeciesId() { - return getOption(ObserveSwingApplicationConfigOption.SPECIES_LIST_SEINE_OBJECT_OBSERVED_SPECIES_ID.key); - } - - public String getSpeciesListSeineObjectSchoolEstimateId() { - return getOption(ObserveSwingApplicationConfigOption.SPECIES_LIST_SEINE_OBJECT_SCHOOL_ESTIMATE_ID.key); - } - - public String getSpeciesListLonglineCatchId() { - return getOption(ObserveSwingApplicationConfigOption.SPECIES_LIST_LONGLINE_CATCH_ID.key); - } - - public String getSpeciesListLonglineEncounterId() { - return getOption(ObserveSwingApplicationConfigOption.SPECIES_LIST_LONGLINE_ENCOUNTER_ID.key); - } - - public String getSpeciesListLonglineDepredatorId() { - return getOption(ObserveSwingApplicationConfigOption.SPECIES_LIST_LONGLINE_DEPREDATOR_ID.key); - } - - public void setSpeciesListSeineNonTargetCatchId(String speciesListSeineNonTargetCatchId) { - setOption(ObserveSwingApplicationConfigOption.SPECIES_LIST_SEINE_NON_TARGET_CATCH_ID, speciesListSeineNonTargetCatchId); - } - - public void setSpeciesListSeineTargetCatchId(String speciesListSeineTargetCatchId) { - setOption(ObserveSwingApplicationConfigOption.SPECIES_LIST_SEINE_TARGET_CATCH_ID, speciesListSeineTargetCatchId); - } - - public void setSpeciesListSeineSchoolEstimateId(String speciesListSeineSchoolEstimateId) { - setOption(ObserveSwingApplicationConfigOption.SPECIES_LIST_SEINE_SCHOOL_ESTIMATE_ID, speciesListSeineSchoolEstimateId); - } - - public void setSpeciesListSeineObjectObservedSpeciesId(String speciesListSeineObjectObservedSpeciesId) { - setOption(ObserveSwingApplicationConfigOption.SPECIES_LIST_SEINE_OBJECT_OBSERVED_SPECIES_ID, speciesListSeineObjectObservedSpeciesId); - } - - public void setSpeciesListSeineObjectSchoolEstimateId(String speciesListseineObjectSchoolEstimateId) { - setOption(ObserveSwingApplicationConfigOption.SPECIES_LIST_SEINE_OBJECT_SCHOOL_ESTIMATE_ID, speciesListseineObjectSchoolEstimateId); - } - - public void setSpeciesListLonglineCatchId(String speciesListLonglineCatchId) { - setOption(ObserveSwingApplicationConfigOption.SPECIES_LIST_LONGLINE_CATCH_ID, speciesListLonglineCatchId); - } - - public void setSpeciesListLonglineEncounterId(String speciesListLonglineEncounterId) { - setOption(ObserveSwingApplicationConfigOption.SPECIES_LIST_LONGLINE_ENCOUNTER_ID, speciesListLonglineEncounterId); - } - - public void setSpeciesListLonglineDepredatorId(String speciesListLonglineDepredatorId) { - setOption(ObserveSwingApplicationConfigOption.SPECIES_LIST_LONGLINE_DEPREDATOR_ID, speciesListLonglineDepredatorId); - } - - public Color getMapBackgroundColor() { - return getOptionAsColor(ObserveSwingApplicationConfigOption.MAP_BACKGROUND_COLOR.key); - } - public List<File> getMapLayerFiles() { - List<File> layers = Lists.newLinkedList(); + List<File> layers = new LinkedList<>(); for (ObserveSwingApplicationConfigOption layerOption : ObserveSwingApplicationConfigOption.MAP_LAYERS) { - File layerFile = getOptionAsFile(layerOption.key); + File layerFile = getApplicationConfig().getOptionAsFile(layerOption.key); if (layerFile != null && layerFile.exists()) { layers.add(layerFile); } @@ -812,12 +308,8 @@ public class ObserveSwingApplicationConfig extends ApplicationConfig { return layers; } - public File getMapStyleFile() { - return getOptionAsFile(ObserveSwingApplicationConfigOption.MAP_STYLE_FILE.key); - } - public String[] getTreeOpenNodeIds() { - String ids = getOption(ObserveSwingApplicationConfigOption.TREE_OPEN_NODES.key); + String ids = getTreeOpenNodes(); String[] result = null; if (ids != null) { result = ids.split(","); @@ -825,106 +317,60 @@ public class ObserveSwingApplicationConfig extends ApplicationConfig { return result; } - public void setTreeOpenNodeIds(String[] ids) { - String joinIds = StringUtils.join(ids, ","); - setOption(ObserveSwingApplicationConfigOption.TREE_OPEN_NODES, joinIds); - } - - public boolean isValidationSpeedEnable() { - return getOptionAsBoolean(ObserveSwingApplicationConfigOption.VALIDATION_SPEED_ENABLE.key); - } - - public void setValidationSpeedEnable(boolean validationSpeedEnable) { - setOption(ObserveSwingApplicationConfigOption.VALIDATION_SPEED_ENABLE.key, String.valueOf(validationSpeedEnable)); - } - - public float getValidationSpeedMaxValue() { - return getOptionAsFloat(ObserveSwingApplicationConfigOption.VALIDATION_SPEED_MAX_VALUE.key); - } - - public void setValidationSpeedMaxValue(float validationSpeedMaxValue) { - setOption(ObserveSwingApplicationConfigOption.VALIDATION_SPEED_MAX_VALUE.key, String.valueOf(validationSpeedMaxValue)); + public void setTreeOpenNodeIds(String... ids) { + setTreeOpenNodes(StringUtils.join(ids, ",")); } private String[] getUnsavables() { if (unsavables == null) { List<String> tmp = new ArrayList<>(); tmp.add(ObserveSwingApplicationConfigOption.OBSTUNA_PASSWORD.getKey()); -// tmp.add(OBSTUNA_SSL_CERTIFICAT_PASSWORD.getKey()); tmp.add(ObserveSwingApplicationConfigOption.H2_PASSWORD.getKey()); tmp.add(ObserveSwingApplicationConfigOption.OBSTUNA_CAN_MIGRATE.getKey()); -// if (!ObserveRunner.isAdmin()) { -// // toutes les options dite admin ne sont pas sauvables -// -// for (ObserveSwingApplicationConfigOption option : values()) { -// if (option.isAdmin()) { -// -// // ne pas ajouter les options d'admin pour le simple utilisateur -// tmp.add(option.key); -// } -// } -// } unsavables = tmp.toArray(new String[tmp.size()]); } return unsavables; } - public void saveForUser(String... excludeKeys) { + public void saveForUser() { if (log.isInfoEnabled()) { - log.info(t("observe.message.save.configuration", getUserConfigFile())); + log.info(t("observe.message.save.configuration", getApplicationConfig().getUserConfigFile())); } - super.saveForUser(getUnsavables()); + getApplicationConfig().saveForUser(getUnsavables()); } public void removeJaxxPropertyChangeListener() { - List<String> tmp = new ArrayList<>(); - for (ObserveSwingApplicationConfigOption option : ObserveSwingApplicationConfigOption.values()) { - String propertyName = option.getPropertyKey(); - if (propertyName != null) { - tmp.add(propertyName); - } - } - if (log.isDebugEnabled()) { - log.debug("property names to seek for options : " + tmp); - } - String[] propertyNames = tmp.toArray( - new String[tmp.size()]); - - PropertyChangeListener[] toRemove = - SwingUtil.findJaxxPropertyChangeListener( - propertyNames, - getPropertyChangeListeners()); - if (toRemove == null || toRemove.length == 0) { - return; - } +// pcs.getPropertyChangeListeners(); +// List<String> tmp = new ArrayList<>(); +// for (ObserveSwingApplicationConfigOption option : ObserveSwingApplicationConfigOption.values()) { +// String propertyName = option.getPropertyKey(); +// if (propertyName != null) { +// tmp.add(propertyName); +// } +// } +// if (log.isDebugEnabled()) { +// log.debug("property names to seek for options : " + tmp); +// } +// String[] propertyNames = tmp.toArray( +// new String[tmp.size()]); +// +// PropertyChangeListener[] toRemove = +// SwingUtil.findJaxxPropertyChangeListener( +// propertyNames, +// getPropertyChangeListeners()); +// if (toRemove == null || toRemove.length == 0) { +// return; +// } if (log.isDebugEnabled()) { - log.debug("before remove : " + getPropertyChangeListeners().length); - log.debug("toRemove : " + toRemove.length); + log.debug("before remove : " + pcs.getPropertyChangeListeners().length); +// log.debug("toRemove : " + toRemove.length); } - for (PropertyChangeListener listener : toRemove) { - removePropertyChangeListener(listener); - } - if (log.isDebugEnabled()) { - log.debug("after remove : " + getPropertyChangeListeners().length); + for (PropertyChangeListener listener : pcs.getPropertyChangeListeners()) { + pcs.removePropertyChangeListener(listener); } - } - - public void setOption(ObserveSwingApplicationConfigOption option, Object newValue) { - String key = option.getKey(); - Object oldValue = getOption(key); - String value = String.valueOf(newValue); - setOption(key, value); if (log.isDebugEnabled()) { - log.debug("set option " + key + " value : " + value); - } - String propertyName = option.getPropertyKey(); - if (propertyName != null) { - // l'option est javabeans, declanchement d'un changement - if (log.isTraceEnabled()) { - log.trace("fires config change from option " + key); - } - firePropertyChange(propertyName, oldValue, newValue); + log.debug("after remove : " + pcs.getPropertyChangeListeners().length); } } @@ -941,16 +387,16 @@ public class ObserveSwingApplicationConfig extends ApplicationConfig { } public String replaceRecursiveOptions(String option) { - return super.replaceRecursiveOptions(option); + return getApplicationConfig().replaceRecursiveOptions(option); } public String getConfigurationDescription() { StringBuilder builder = new StringBuilder(); builder.append("\n====================================================================================================================="); builder.append("\n=== Observe Swing configuration ====================================================================================="); - builder.append(String.format("\n=== %1$-40s = %2$s", "Filename", getConfigFileName())); - for (ObserveSwingApplicationConfigOption option : ObserveSwingApplicationConfigOption.orderedByNameValues()) { - builder.append(String.format("\n=== %1$-40s = %2$s", option.getKey(), getOption(option))); + builder.append(String.format("\n=== %1$-40s = %2$s", "Filename", getApplicationConfig().getConfigFileName())); + for (ObserveSwingApplicationConfigOption option : ObserveSwingApplicationConfigOption.orderedByKey()) { + builder.append(String.format("\n=== %1$-40s = %2$s", option.getKey(), getApplicationConfig().getOption(option))); } builder.append("\n====================================================================================================================="); return builder.toString(); diff --git a/application-swing-configuration/src/main/java/fr/ird/observe/application/swing/configuration/ObserveSwingApplicationConfigOption.java b/application-swing-configuration/src/main/java/fr/ird/observe/application/swing/configuration/ObserveSwingApplicationConfigOption.java index 84ad830..7750204 100644 --- a/application-swing-configuration/src/main/java/fr/ird/observe/application/swing/configuration/ObserveSwingApplicationConfigOption.java +++ b/application-swing-configuration/src/main/java/fr/ird/observe/application/swing/configuration/ObserveSwingApplicationConfigOption.java @@ -22,9 +22,6 @@ package fr.ird.observe.application.swing.configuration; import com.google.common.collect.ImmutableList; -import com.google.common.collect.Lists; -import fr.ird.observe.application.swing.configuration.constants.CreationMode; -import fr.ird.observe.application.swing.configuration.constants.DbMode; import fr.ird.observe.services.dto.ObserveSpeciesListConfiguration; import org.nuiton.config.ApplicationConfig; import org.nuiton.config.ConfigOptionDef; @@ -33,6 +30,7 @@ import org.nuiton.version.Version; import java.awt.Color; import java.io.File; import java.net.URL; +import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.Locale; @@ -51,30 +49,30 @@ public enum ObserveSwingApplicationConfigOption implements ConfigOptionDef { /** le lastName du fichier de configuration (sans le prefix .) */ CONFIG_FILE( + String.class, ApplicationConfig.CONFIG_FILE_NAME, n("observe.config.configFileName.description"), ObserveSwingApplicationConfig.DEFAULT_OBSERVE_SWING_CONFIGURATION_FILENAME, - String.class, true, true ), /** flag pour afficher automatiquement la popup du clavier numerique */ DEV_MODE( - "observe." + ObserveSwingApplicationConfig.PROPERTY_DEV_MODE, + Boolean.class, + "observe.devMode", n("observe.config.devMode"), "true", - Boolean.class, true, true ), /** version du modèle de données */ MODEL_VERSION( + Version.class, "observe.model.version", n("observe.model.version"), null, - Version.class, true, true ), @@ -83,22 +81,18 @@ public enum ObserveSwingApplicationConfigOption implements ConfigOptionDef { /** le repertoire ou est stoquee la base locale */ DATA_DIRECTORY( + File.class, "data.directory", n("observe.config.defaultDataDirectory.description"), - "${user.home}/.observe", - File.class, - false, - false + "${user.home}/.observe" ), /** le repertoire ou est stoquee la base locale */ DB_DIRECTORY( + File.class, "db.directory", n("observe.config.defaultLocalDbDirectory.description"), - "${data.directory}/db", - File.class, - false, - false + "${data.directory}/db" ), /** @@ -106,95 +100,74 @@ public enum ObserveSwingApplicationConfigOption implements ConfigOptionDef { * a Obstuna. */ INITIAL_DB_DUMP( + File.class, "initial.db.dump", n("observe.config.defaultInitialDbDump.description"), - "${data.directory}/initial-database.sql.gz", - File.class, - false, - false + "${data.directory}/initial-database.sql.gz" ), /** le repertoire ou effectuer les sauvegarde */ BACKUP_DIRECTORY( + File.class, "backup.directory", n("observe.config.defaultBackupDirectory.description"), - "${data.directory}/backup", - File.class, - false, - false + "${data.directory}/backup" ), /** le repertoire ou sont stockees toutes les ressources de l'utilisateur */ RESOURCES_DIRECTORY( + File.class, "resources.directory", - ObserveSwingApplicationConfig.PROPERTY_RESOURCES_DIRECTORY, n("observe.config.defaultResourcesDirectory.description"), - "${data.directory}/resources-${version}", - File.class, - false, - false + "${data.directory}/resources-${version}" ), /** le repertoire ou sont stockees les traduction i18n de l'utilisateur */ I18N_DIRECTORY( + File.class, "i18n.directory", - ObserveSwingApplicationConfig.PROPERTY_I18N_DIRECTORY, n("observe.config.defaultI18nDirectory.description"), - "${resources.directory}/i18n", - File.class, - false, - false + "${resources.directory}/i18n" ), /** le repertoire ou sont stockees les reports de l'utilisateur */ REPORT_DIRECTORY( + File.class, "report.directory", - ObserveSwingApplicationConfig.PROPERTY_REPORT_DIRECTORY, n("observe.config.defaultReportDirectory.description"), - "${resources.directory}/report", - File.class, - false, - false + "${resources.directory}/report" ), /** le repertoire ou sont stockees les cartes de l'utilisateur */ MAP_DIRECTORY( + File.class, "map.directory", - ObserveSwingApplicationConfig.PROPERTY_MAP_DIRECTORY, n("observe.config.defaultMapDirectory.description"), - "${resources.directory}/map", - File.class, - false, - false + "${resources.directory}/map" ), /** le repertoire ou sont stockees les reports de validation de l'utilisateur */ VALIDATION_REPORT_DIRECTORY( + File.class, "validation.report.directory", - ObserveSwingApplicationConfig.PROPERTY_VALIDATION_REPORT_DIRECTORY, n("observe.config.defaultValidationReportDirectory.description"), - "${data.directory}/validation-report", - File.class, - false, - false + "${data.directory}/validation-report" ), /** le repertoire temporaire (utilise pour les base de synchro) */ TMP_DIRECTORY( + File.class, "tmp.directory", n("observe.config.defaultTmpDirectory.description"), - "${data.directory}/tmp", - File.class, - false, - false + "${data.directory}/tmp" ), /** Le chemin du fichier de configuration des logs. */ LOG_CONFIGURATION_FILE( + File.class, "logConfigurationFile", n("observe.config.logConfigurationFile.description"), "${resources.directory}/observe-log4j.properties", - String.class, true, false), @@ -202,640 +175,489 @@ public enum ObserveSwingApplicationConfigOption implements ConfigOptionDef { /** login sur toutes les bases h2 (non sauvegarde) */ H2_LOGIN( + String.class, "h2.username", n("observe.config.h2.login.description"), "sa", - String.class, true, true ), /** mot de passe sur toutes les bases h2 (non sauvegarde) */ H2_PASSWORD( + String.class, "h2.password", n("observe.config.h2.password.description"), "sa", - String.class, true, true ), /** flag pour effectuer la mise a jour des bases locales */ H2_CAN_MIGRATE( + Boolean.class, "h2.canMigrate", n("observe.config.h2.can.migrate.description"), - "true", - Boolean.class, - false, - false + "true" ), /** port à utiliser pour lancer ObServe en mode serveur */ H2_SERVER_PORT( + Integer.class, "h2.serverPort", n("observe.config.h2.serverPort.description"), - "9093", - Integer.class, - false, - false + "9093" ), // obstuna db config /** url de la base obstuna */ OBSTUNA_URL( + String.class, "obstuna.url", n("observe.config.obstuna.url.description"), - "jdbc:postgresql:///obstuna", - String.class, - false, - false + "jdbc:postgresql:///obstuna" ), /** login de la base obstuna */ OBSTUNA_LOGIN( + String.class, "obstuna.username", n("observe.config.obstuna.login.description"), - "utilisateur", - String.class, - false, - false + "utilisateur" ), /** mot de passe de la base obstuna (non sauvegarde) */ OBSTUNA_PASSWORD( + String.class, "obstuna.password", n("observe.config.obstuna.password.description"), "", - String.class, true, false ), /** flag pour activer l'utilisation ssl pour la connexion a obstuna */ OBSTUNA_USE_SSL_CERT( + Boolean.class, "obstuna.useSsl", n("observe.config.obstuna.useSsl.description"), - "false", - Boolean.class, - false, - false + "false" ), /** flag pour mettre a jour obstuna */ OBSTUNA_CAN_MIGRATE( + Boolean.class, "pg.canMigrate", n("observe.config.pg.can.migrate.description"), - "false", - Boolean.class, - false, - false + "false" ), // Rest server config /** url du serveur restflag pour mettre a jour obstuna */ SERVER_URL( + URL.class, "server.url", n("observe.config.server.url.description"), - null, - URL.class, - false, - false + null ), /** url du serveur restflag pour mettre a jour obstuna */ SERVER_LOGIN( + String.class, "server.login", n("observe.config.server.login.description"), - "", - String.class, - false, - false + "" ), /** url du serveur restflag pour mettre a jour obstuna */ SERVER_PASSWORD( + String.class, "server.password", n("observe.config.server.password.description"), - "", - String.class, - false, - false + "" ), /** url du serveur restflag pour mettre a jour obstuna */ SERVER_DATABASE_NAME( + String.class, "server.dataBaseName", n("observe.config.server.dataBaseName.description"), - null, - String.class, - false, - false + null ), // change storage options /** le mode de connexion par defaut */ DEFAULT_DB_MODE( - ObserveSwingApplicationConfig.PROPERTY_DEFAULT_DB_MODE, - ObserveSwingApplicationConfig.PROPERTY_DEFAULT_DB_MODE, + fr.ird.observe.application.swing.configuration.constants.DbMode.class, + "defaultDbMode", n("observe.config.defaultDbMode"), - DbMode.USE_LOCAL.name(), - DbMode.class, - false, - false + fr.ird.observe.application.swing.configuration.constants.DbMode.USE_LOCAL.name() ), /** le mode de creation par defaut de base locale */ DEFAULT_CREATION_MODE( - ObserveSwingApplicationConfig.PROPERTY_DEFAULT_CREATION_MODE, - ObserveSwingApplicationConfig.PROPERTY_DEFAULT_CREATION_MODE, + fr.ird.observe.application.swing.configuration.constants.CreationMode.class, + "defaultCreationMode", n("observe.config.defaultCreationMode"), - CreationMode.IMPORT_EXTERNAL_DUMP.name(), - CreationMode.class, - false, - false + fr.ird.observe.application.swing.configuration.constants.CreationMode.IMPORT_EXTERNAL_DUMP.name() ), /** flag pour sauvegarder le paramétrage de la connexion a obstuna */ STORE_REMOTE_STORAGE( - "ui." + ObserveSwingApplicationConfig.PROPERTY_STORE_REMOTE_STORAGE, - ObserveSwingApplicationConfig.PROPERTY_STORE_REMOTE_STORAGE, - n("observe.config.ui.storeRemoteStorage"), - "true", Boolean.class, - false, - false + "ui.storeRemoteStorage", + n("observe.config.ui.storeRemoteStorage"), + "true" ), /** flag pour charge ou non la base locale au démarrage */ LOAD_LOCAL_STORAGE( - "ui." + ObserveSwingApplicationConfig.PROPERTY_LOAD_LOCAL_STORAGE, - ObserveSwingApplicationConfig.PROPERTY_LOAD_LOCAL_STORAGE, - n("observe.config.ui.loadLocalStorage"), - "true", Boolean.class, - false, - false + "ui.loadLocalStorage", + n("observe.config.ui.loadLocalStorage"), + "true" ), /** pour afficher la progression de la migration dans les logs */ SHOW_MIGRATION_PROGRESSION( - ObserveSwingApplicationConfig.PROPERTY_SHOW_MIGRATION_PROGRESSION, - ObserveSwingApplicationConfig.PROPERTY_SHOW_MIGRATION_PROGRESSION, - n("observe.config.showMigrationProgression"), - "true", Boolean.class, - false, - false + "showMigrationProgression", + n("observe.config.showMigrationProgression"), + "true" ), /** pour affichier les requetes sql lors de la migration dans les logs */ SHOW_MIGRATION_SQL( - ObserveSwingApplicationConfig.PROPERTY_SHOW_MIGRATION_SQL, - ObserveSwingApplicationConfig.PROPERTY_SHOW_MIGRATION_SQL, - n("observe.config.showMigrationSql"), - "true", Boolean.class, - false, - false + "showMigrationSql", + n("observe.config.showMigrationSql"), + "true" ), /** pour affichier toutes les requetes sql dans les logs */ SHOW_SQL( - ObserveSwingApplicationConfig.PROPERTY_SHOW_SQL, - ObserveSwingApplicationConfig.PROPERTY_SHOW_SQL, - n("observe.config.showSql"), - "false", Boolean.class, - false, - false + "showSql", + n("observe.config.showSql"), + "false" ), // gps default values /** temps maximum autorise en deux points gps */ DEFAULT_GPS_MAX_DELAY( - ObserveSwingApplicationConfig.PROPERTY_DEFAULT_GPS_MAX_DELAY, - ObserveSwingApplicationConfig.PROPERTY_DEFAULT_GPS_MAX_DELAY, - n("observe.config.defaultGpsMaxDelay"), - "60", Integer.class, - false, - false + "defaultGpsMaxDelay", + n("observe.config.defaultGpsMaxDelay"), + "60" ), /** vitesse maximum (en noeud) entre deux points gps */ DEFAULT_GPS_MAX_SPEED( - ObserveSwingApplicationConfig.PROPERTY_DEFAULT_GPS_MAX_SPEED, - ObserveSwingApplicationConfig.PROPERTY_DEFAULT_GPS_MAX_SPEED, - n("observe.config.defaultGpsMaxSpeed"), - "25.0f", Float.class, - false, - false + "defaultGpsMaxSpeed", + n("observe.config.defaultGpsMaxSpeed"), + "25.0f" ), // synchro actions options /** flag pour autoriser le choix de la base source */ CHANGE_SYNCHRO_SRC( - "ui." + ObserveSwingApplicationConfig.PROPERTY_CHANGE_SYNCHRO_SRC, - ObserveSwingApplicationConfig.PROPERTY_CHANGE_SYNCHRO_SRC, - n("observe.config.ui.changeSynchroSrc"), - "false", Boolean.class, - false, - false + "ui.changeSynchroSrc", + n("observe.config.ui.changeSynchroSrc"), + "false" ), // ui config /** flag pour voir le boutton d'affichage de la popup de clavier numerique) */ SHOW_NUMBER_EDITOR_BUTTON( - "ui." + ObserveSwingApplicationConfig.PROPERTY_SHOW_NUMBER_EDITOR_BUTTON, - ObserveSwingApplicationConfig.PROPERTY_SHOW_NUMBER_EDITOR_BUTTON, - n("observe.config.ui.showNumberEditorButton"), - "true", Boolean.class, - false, - false + "ui.showNumberEditorButton", + n("observe.config.ui.showNumberEditorButton"), + "true" ), /** flag pour afficher automatiquement la popup du clavier numerique */ AUTO_POPUP_NUMBER_EDITOR( - "ui." + ObserveSwingApplicationConfig.PROPERTY_AUTO_POPUP_NUMBER_EDITOR, - ObserveSwingApplicationConfig.PROPERTY_AUTO_POPUP_NUMBER_EDITOR, + Boolean.class, "ui.autoPopupNumberEditor", n("observe.config.ui.autoPopupNumberEditor"), - "false", - Boolean.class, - false, - false + "false" ), /** flag pour voir la réglette d'affichage des heures dans l'éditeur des temps */ SHOW_DATE_TIME_EDITOR_SLIDER( - "ui." + ObserveSwingApplicationConfig.PROPERTY_SHOW_DATE_TIME_EDITOR_SLIDER, - ObserveSwingApplicationConfig.PROPERTY_SHOW_DATE_TIME_EDITOR_SLIDER, - n("observe.config.ui.showTimeEditorSlider"), - "true", Boolean.class, - false, - false + "ui.showTimeEditorSlider", + n("observe.config.ui.showTimeEditorSlider"), + "true" ), /** flag pour lancer l'application en mode plein ecran */ FULL_SCREEN( - "ui." + ObserveSwingApplicationConfig.PROPERTY_FULL_SCREEN, - ObserveSwingApplicationConfig.PROPERTY_FULL_SCREEN, - n("observe.config.ui.fullscreen"), - "false", Boolean.class, - false, - false + "ui.fullscreen", + n("observe.config.ui.fullscreen"), + "false" ), /** locale a utiliser dans l'application */ LOCALE( - "ui." + ObserveSwingApplicationConfig.PROPERTY_LOCALE, - ObserveSwingApplicationConfig.PROPERTY_LOCALE, - n("observe.config.ui.locale"), - Locale.FRANCE.toString(), Locale.class, - false, - false + "ui.locale", + n("observe.config.ui.locale"), + Locale.FRANCE.toString() ), /** locale du referentiel */ DB_LOCALE( - "db." + ObserveSwingApplicationConfig.PROPERTY_LOCALE, - ObserveSwingApplicationConfig.PROPERTY_DB_LOCALE, - n("observe.config.db.locale"), - Locale.FRANCE.toString(), Locale.class, - false, - false + "db.locale", + n("observe.config.db.locale"), + Locale.FRANCE.toString() ), // program observation max /** la valeur maximale de qualification des observations faune associe */ NON_TARGET_OBSERVATION( + Integer.class, "observation.fauneAssociee", - ObserveSwingApplicationConfig.PROPERTY_NON_TARGET_OBSERVATION, n("observe.config.observation.fauneAssociee"), - "1", - Integer.class, - false, - false + "1" ), /** la valeur maximale de qualification des observations rejet thons */ TARGET_DISCARDS_OBSERVATION( + Integer.class, "observation.rejetsThons", - ObserveSwingApplicationConfig.PROPERTY_TARGET_DISCARDS_OBSERVATION, n("observe.config.observation.rejetsThons"), - "1", - Integer.class, - false, - false + "1" ), /** la valeur maximale de qualification des observations mensuration */ SAMPLES_OBSERVATION( + Integer.class, "observation.mensurations", - ObserveSwingApplicationConfig.PROPERTY_SAMPLES_OBSERVATION, n("observe.config.observation.mensurations"), - "1", - Integer.class, - false, - false + "1" ), /** la valeur maximale de qualification des observations objet flottant */ OBJECTS_OBSERVATION( + Integer.class, "observation.floatingObject", - ObserveSwingApplicationConfig.PROPERTY_OBJECTS_OBSERVATION, n("observe.config.observation.floatingObject"), - "1", - Integer.class, - false, - false + "1" ), /** la valeur maximale de qualification des observations activitys detaillees */ DETAILLED_ACTIVITIES_OBSERVATION( + Integer.class, "observation.activitysDetaillees", - ObserveSwingApplicationConfig.PROPERTY_DETAILLED_ACTIVITIES_OBSERVATION, n("observe.config.observation.activitysDetaillees"), - "1", - Integer.class, - false, - false + "1" ), /** la valeur maximale de qualification des observations mammiferes */ MAMMALS_OBSERVATION( + Integer.class, "observation.mammiferes", - ObserveSwingApplicationConfig.PROPERTY_MAMMALS_OBSERVATION, n("observe.config.observation.mammiferes"), - "1", - Integer.class, - false, - false + "1" ), /** la valeur maximale de qualification des observations oiseaux */ BIRDS_OBSERVATION( - "observation.oiseaux", - ObserveSwingApplicationConfig.PROPERTY_BIRDS_OBSERVATION, + Integer.class, "observation.oiseaux", n("observe.config.observation.oiseaux"), - "1", - Integer.class, - false, - false + "1" ), /** la valeur maximale de qualification des observations gleure */ BAIT_OBSERVATION( + Integer.class, "observation.gleure", - ObserveSwingApplicationConfig.PROPERTY_BAIT_OBSERVATION, n("observe.config.observation.gleure"), - "1", - Integer.class, - false, - false + "1" ), /** le type de liste d'espèces pour les captures cibles (seine) */ SPECIES_LIST_SEINE_TARGET_CATCH_ID( + String.class, "speciesList.seine.targetCatch", - ObserveSwingApplicationConfig.PROPERTY_SPECIES_LIST_SEINE_TARGET_CATCH_ID, n("observe.config.speciesList.seine.targetCatch"), - ObserveSpeciesListConfiguration.DEFAULT_SPECIES_LIST_SEINE_TARGET_CATCH_ID, - String.class, - false, - false + ObserveSpeciesListConfiguration.DEFAULT_SPECIES_LIST_SEINE_TARGET_CATCH_ID ), /** le type de liste d'espèce pour les Estimation banc (seine) */ SPECIES_LIST_SEINE_SCHOOL_ESTIMATE_ID( - "speciesList.seine.schoolEstimate", - ObserveSwingApplicationConfig.PROPERTY_SPECIES_LIST_SEINE_SCHOOL_ESTIMATE_ID, + String.class, "speciesList.seine.schoolEstimate", n("observe.config.speciesList.seine.schoolEstimate"), - ObserveSpeciesListConfiguration.DEFAULT_SPECIES_LIST_SEINE_SCHOOL_ESTIMATE_ID, - String.class, - false, - false + ObserveSpeciesListConfiguration.DEFAULT_SPECIES_LIST_SEINE_SCHOOL_ESTIMATE_ID ), /** le type de liste d'espèces pour les Estimation banc objet (seine) */ SPECIES_LIST_SEINE_OBJECT_SCHOOL_ESTIMATE_ID( + String.class, "speciesList.seine.objectSchoolEstimate", - ObserveSwingApplicationConfig.PROPERTY_SPECIES_LIST_SEINE_OBJECT_SCHOOL_ESTIMATE_ID, n("observe.config.speciesList.seine.objectSchoolEstimate"), - ObserveSpeciesListConfiguration.DEFAULT_SPECIES_LIST_SEINE_OBJECT_SCHOOL_ESTIMATE_ID, - String.class, - false, - false + ObserveSpeciesListConfiguration.DEFAULT_SPECIES_LIST_SEINE_OBJECT_SCHOOL_ESTIMATE_ID ), /** le type de liste d'espèces pour les captures non cibles (seine) */ SPECIES_LIST_SEINE_NON_TARGET_CATCH_ID( + String.class, "speciesList.seine.nonTargetCatch", - ObserveSwingApplicationConfig.PROPERTY_SPECIES_LIST_SEINE_NON_TARGET_CATCH_ID, n("observe.config.speciesList.seine.nonTargetCatch"), - ObserveSpeciesListConfiguration.DEFAULT_SPECIES_LIST_SEINE_NON_TARGET_CATCH_ID, - String.class, - false, - false + ObserveSpeciesListConfiguration.DEFAULT_SPECIES_LIST_SEINE_NON_TARGET_CATCH_ID ), /** le type de liste d'espèces pour les Faune observée (seine) */ SPECIES_LIST_SEINE_OBJECT_OBSERVED_SPECIES_ID( + String.class, "speciesList.seine.objectObservedSpecies", - ObserveSwingApplicationConfig.PROPERTY_SPECIES_LIST_SEINE_OBJECT_OBSERVED_SPECIES_ID, n("observe.config.speciesList.seine.objectObservedSpecies"), - ObserveSpeciesListConfiguration.DEFAULT_SPECIES_LIST_SEINE_OBJECT_OBSERVED_SPECIES_ID, - String.class, - false, - false + ObserveSpeciesListConfiguration.DEFAULT_SPECIES_LIST_SEINE_OBJECT_OBSERVED_SPECIES_ID ), /** le type de liste d'espèces pour les captures (longline) */ SPECIES_LIST_LONGLINE_CATCH_ID( + String.class, "speciesList.longline.catch", - ObserveSwingApplicationConfig.PROPERTY_SPECIES_LIST_LONGLINE_CATCH_ID, n("observe.config.speciesList.longline.catch"), - ObserveSpeciesListConfiguration.DEFAULT_SPECIES_LIST_LONGLINE_CATCH_ID, - String.class, - false, - false + ObserveSpeciesListConfiguration.DEFAULT_SPECIES_LIST_LONGLINE_CATCH_ID ), /** le type de liste d'espèces pour les rencontres (longline) */ SPECIES_LIST_LONGLINE_ENCOUNTER_ID( + String.class, "speciesList.longline.encounter", - ObserveSwingApplicationConfig.PROPERTY_SPECIES_LIST_LONGLINE_ENCOUNTER_ID, n("observe.config.speciesList.longline.encounter"), - ObserveSpeciesListConfiguration.DEFAULT_SPECIES_LIST_LONGLINE_ENCOUNTER_ID, - String.class, - false, - false + ObserveSpeciesListConfiguration.DEFAULT_SPECIES_LIST_LONGLINE_ENCOUNTER_ID ), /** le type de liste d'espèces pour les deprédations (longline) */ SPECIES_LIST_LONGLINE_DEPREDATOR_ID( + String.class, "speciesList.longline.depredator", - ObserveSwingApplicationConfig.PROPERTY_SPECIES_LIST_LONGLINE_DEPREDATOR_ID, n("observe.config.speciesList.longline.encounter"), - ObserveSpeciesListConfiguration.DEFAULT_SPECIES_LIST_LONGLINE_DEPREDATOR_ID, - String.class, - false, - false + ObserveSpeciesListConfiguration.DEFAULT_SPECIES_LIST_LONGLINE_DEPREDATOR_ID ), /** le chemin vers le fond de carte */ MAP_BACKGROUND_COLOR( + Color.class, "map.background.color", n("observe.config.map.background.description"), - new Color(87, 200, 255).toString(), - Color.class, - false, - false + new Color(87, 200, 255).toString() ), /** shape file 1 */ - MAP_LAYER_1( + MAP_LAYER1( + File.class, "map.layer1.path", n("observe.config.map.layer1.description"), - "${resources.directory}/map/shapeFiles/continents/GSHHS_l_L1.shp", - File.class, - false, - false + "${resources.directory}/map/shapeFiles/continents/GSHHS_l_L1.shp" ), /** shape file 2 */ - MAP_LAYER_2( + MAP_LAYER2( + File.class, "map.layer2.path", n("observe.config.map.layer2.description"), - "${resources.directory}/map/shapeFiles/continents/GSHHS_l_L6.shp", - File.class, - false, - false + "${resources.directory}/map/shapeFiles/continents/GSHHS_l_L6.shp" ), /** shape file 3 */ - MAP_LAYER_3( + MAP_LAYER3( + File.class, "map.layer3.path", n("observe.config.map.layer3.description"), - "${resources.directory}/map/shapeFiles/lakesAndSeas/GSHHS_l_L2.shp", - File.class, - false, - false + "${resources.directory}/map/shapeFiles/lakesAndSeas/GSHHS_l_L2.shp" ), /** shape file 4 */ - MAP_LAYER_4( + MAP_LAYER4( + File.class, "map.layer4.path", n("observe.config.map.layer4.description"), - "${resources.directory}/map/shapeFiles/borders/WDBII_border_l_L1.shp", - File.class, - false, - false + "${resources.directory}/map/shapeFiles/borders/WDBII_border_l_L1.shp" ), /** shape file 5 */ - MAP_LAYER_5( + MAP_LAYER5( + File.class, "map.layer5.path", n("observe.config.map.layer5.description"), - "${resources.directory}/map/shapeFiles/zee/World_EEZ_v8_2014.shp", - File.class, - false, - false + "${resources.directory}/map/shapeFiles/zee/World_EEZ_v8_2014.shp" ), /** shape file 6 */ - MAP_LAYER_6( + MAP_LAYER6( + File.class, "map.layer6.path", n("observe.config.map.layer6.description"), - null, - File.class, - false, - false + null ), /** shape file 7 */ - MAP_LAYER_7( + MAP_LAYER7( + File.class, "map.layer7.path", n("observe.config.map.layer7.description"), - null, - File.class, - false, - false + null ), /** shape file 8 */ - MAP_LAYER_8( + MAP_LAYER8( + File.class, "map.layer8.path", n("observe.config.map.layer8.description"), - null, - File.class, - false, - false + null ), /** shape file 9 */ - MAP_LAYER_9( + MAP_LAYER9( + File.class, "map.layer9.path", n("observe.config.map.layer9.description"), - null, - File.class, - false, - false + null ), /** shape file 10 */ - MAP_LAYER_10( + MAP_LAYER10( + File.class, "map.layer10.path", n("observe.config.map.layer10.description"), - null, - File.class, - false, - false + null ), /** style Maps */ MAP_STYLE_FILE( + File.class, "map.style.path", n("observe.config.map.style.description"), - "${resources.directory}/map/style.xml", - File.class, - false, - false), + "${resources.directory}/map/style.xml" + ), /** Ids des noeuds ouverts dans l'arbre */ TREE_OPEN_NODES( - "ui." + ObserveSwingApplicationConfig.PROPERTY_TREE_OPEN_NODES, - ObserveSwingApplicationConfig.PROPERTY_TREE_OPEN_NODES, - n("observe.config.ui.treeOpenNodes"), - null, String.class, - false, - false + "ui.treeOpenNodes", + n("observe.config.ui.treeOpenNodes"), + null ), /** Pour activer la validation des vitesses d'activités) */ VALIDATION_SPEED_ENABLE( - "validation." + ObserveSwingApplicationConfig.PROPERTY_VALIDATION_SPEED_ENABLE, - ObserveSwingApplicationConfig.PROPERTY_VALIDATION_SPEED_ENABLE, - n("observe.config.validation.speedEnable"), - "true", Boolean.class, - false, - false + "validation.speedEnable", + n("observe.config.validation.speedEnable"), + "true" ), /** La vitesse maximale à consider dans la validation des vitesses d'activités) */ VALIDATION_SPEED_MAX_VALUE( - "validation." + ObserveSwingApplicationConfig.PROPERTY_VALIDATION_SPEED_MAX_VALUE, - ObserveSwingApplicationConfig.PROPERTY_VALIDATION_SPEED_MAX_VALUE, - n("observe.config.validation.speedMaxValue"), - "30.0", Float.class, - false, - false + "validation.speedMaxValue", + n("observe.config.validation.speedMaxValue"), + "30.0" ); - public static final List<ObserveSwingApplicationConfigOption> MAP_LAYERS = ImmutableList.of(MAP_LAYER_1, MAP_LAYER_2, MAP_LAYER_3, - MAP_LAYER_4, MAP_LAYER_5, MAP_LAYER_6, MAP_LAYER_7, MAP_LAYER_8, MAP_LAYER_9, MAP_LAYER_10); + public static final List<ObserveSwingApplicationConfigOption> MAP_LAYERS = + ImmutableList.of(MAP_LAYER1, MAP_LAYER2, MAP_LAYER3, MAP_LAYER4, MAP_LAYER5, MAP_LAYER6, MAP_LAYER7, MAP_LAYER8, MAP_LAYER9, MAP_LAYER10); /** * Clef qui represente l'option (c'est celle enregistrée dans le fichier de @@ -843,12 +665,6 @@ public enum ObserveSwingApplicationConfigOption implements ConfigOptionDef { */ protected final String key; - /** - * Clef de la propriété (javaBeans) de la configuration associé à cette - * option ({@code null} si pas associé à une propriété javaBeans). - */ - protected final String propertyKey; - /** Clef i18n de description de l'option */ protected final String description; @@ -864,27 +680,18 @@ public enum ObserveSwingApplicationConfigOption implements ConfigOptionDef { /** Drapeau pour savoir si l'option est modifiable */ protected boolean _final; -// /** -// * Drapeau pour savoir si l'option requiere le mode admin -// * -// * @see ObserveRunner#isAdmin() -// */ -// protected boolean admin; - - ObserveSwingApplicationConfigOption(String key, + ObserveSwingApplicationConfigOption(Class<?> type, + String key, String description, - String defaultValue, - Class<?> type, - boolean _transient, - boolean _final) { - this(key, null, description, defaultValue, type, _transient, _final); + String defaultValue + ) { + this(type, key, description, defaultValue, false, false); } - ObserveSwingApplicationConfigOption(String key, - String propertyKey, + ObserveSwingApplicationConfigOption(Class<?> type, + String key, String description, String defaultValue, - Class<?> type, boolean _transient, boolean _final) { this.key = key; @@ -893,7 +700,6 @@ public enum ObserveSwingApplicationConfigOption implements ConfigOptionDef { this.type = type; this._final = _final; this._transient = _transient; - this.propertyKey = propertyKey; } @Override @@ -906,10 +712,6 @@ public enum ObserveSwingApplicationConfigOption implements ConfigOptionDef { return _transient; } -// public boolean isAdmin() { -// return admin; -// } - @Override public String getDefaultValue() { return defaultValue; @@ -945,17 +747,9 @@ public enum ObserveSwingApplicationConfigOption implements ConfigOptionDef { this._final = _final; } -// public void setAdmin(boolean admin) { -// this.admin = admin; -// } - - public String getPropertyKey() { - return propertyKey; - } - - public static ImmutableList<ObserveSwingApplicationConfigOption> orderedByNameValues() { + public static ImmutableList<ObserveSwingApplicationConfigOption> orderedByKey() { - List<ObserveSwingApplicationConfigOption> values = Lists.newArrayList(values()); + List<ObserveSwingApplicationConfigOption> values = Arrays.asList(values()); Collections.sort(values, (o1, o2) -> o1.getKey().compareTo(o2.getKey())); return ImmutableList.copyOf(values); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveCLAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveCLAction.java index 30c91ec..becaf3d 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveCLAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveCLAction.java @@ -173,7 +173,7 @@ public class ObserveCLAction { if (operation == ObstunaAdminAction.UPDATE || operation == ObstunaAdminAction.CREATE) { - getConfig().setOption(ObserveSwingApplicationConfigOption.OBSTUNA_CAN_MIGRATE, true); + getConfig().setObstunaCanMigrate(true); } RemoteUILauncher launcher = operation.newLauncher(context, null); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveResourceManager.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveResourceManager.java index ea9c299..9d329fc 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveResourceManager.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveResourceManager.java @@ -236,7 +236,7 @@ public class ObserveResourceManager { */ protected File createDirectory(ObserveSwingApplicationConfig config, ObserveSwingApplicationConfigOption option) throws IOException { - File dir = config.getOptionAsFile(option.getKey()); + File dir = config.getApplicationConfig().getOptionAsFile(option.getKey()); createDirectory(dir); return dir; } @@ -252,7 +252,7 @@ public class ObserveResourceManager { protected void createParentDirectory(ObserveSwingApplicationConfig config, ObserveSwingApplicationConfigOption... options) throws IOException { for (ObserveSwingApplicationConfigOption option : options) { - File dir = config.getOptionAsFile(option.getKey()).getParentFile(); + File dir = config.getApplicationConfig().getOptionAsFile(option.getKey()).getParentFile(); createDirectory(dir); } } @@ -306,7 +306,7 @@ public class ObserveResourceManager { public File unzipToDirectory(Resource resource, ObserveSwingApplicationConfig config, ObserveSwingApplicationConfigOption option, String message) throws IOException { - File dir = config.getOptionAsFile(option.getKey()); + File dir = config.getApplicationConfig().getOptionAsFile(option.getKey()); createDirectory(dir); InputStream inputStream = openInternalStream(resource.getUrl()); try { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveRunner.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveRunner.java index b34f0a2..7929f61 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveRunner.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveRunner.java @@ -22,7 +22,6 @@ package fr.ird.observe.application.swing; import com.google.common.base.Preconditions; -import fr.ird.observe.application.swing.configuration.ObserveSwingApplicationActionDefinition; import fr.ird.observe.application.swing.configuration.ObserveSwingApplicationConfig; import fr.ird.observe.application.swing.ui.ObserveMainUI; import fr.ird.observe.application.swing.ui.ObserveMainUIHandler; @@ -42,7 +41,6 @@ import org.apache.log4j.LogManager; import org.apache.log4j.PropertyConfigurator; import org.jdesktop.swingx.plaf.basic.CalendarHeaderHandler; import org.jdesktop.swingx.plaf.basic.SpinningCalendarHeaderHandler; -import org.nuiton.config.ConfigActionDef; import org.nuiton.converter.ConverterUtil; import org.nuiton.i18n.I18n; import org.nuiton.i18n.init.DefaultI18nInitializer; @@ -250,7 +248,7 @@ public abstract class ObserveRunner extends ApplicationRunner { log.info("Chargement du fichier de de log4j depuis " + resource); } Properties logConfigurationProperties = resourceManager.load(resource); - Properties finalLogConfigurationProperties = ObserveUtil.loadProperties(logConfigurationProperties, config); + Properties finalLogConfigurationProperties = ObserveUtil.loadProperties(logConfigurationProperties, config.getApplicationConfig()); LogManager.resetConfiguration(); PropertyConfigurator.configure(finalLogConfigurationProperties); @@ -279,14 +277,7 @@ public abstract class ObserveRunner extends ApplicationRunner { ObserveSwingApplicationConfig config = context.getConfig(); - if (config.containActions(ObserveSwingApplicationConfig.Step.AfterInit)) { - - config.doAction(ObserveSwingApplicationConfig.Step.AfterInit.ordinal()); - - if (log.isInfoEnabled()) { - log.info("Operation terminées..."); - } - } + config.getApplicationConfig().doAction(ObserveSwingApplicationConfig.Step.AfterInit.ordinal()); if (!config.isDisplayMainUI()) { if (log.isInfoEnabled()) { @@ -387,16 +378,11 @@ public abstract class ObserveRunner extends ApplicationRunner { ObserveSwingApplicationConfig config = new ObserveSwingApplicationConfig(); - // init config (load application configuration) - config.initConfig( - resourceManager.getResource(ObserveResourceManager.Resource.application), - (ConfigActionDef[]) ObserveSwingApplicationActionDefinition.values()); - - // init config arguments - config.parse(args); + // init config + config.initConfig(resourceManager.getResource(ObserveResourceManager.Resource.application), args); - // install save action on option modification - config.installSaveAction(); +// // install save action on option modification +// config.installSaveAction(); if (log.isInfoEnabled()) { String message = config.getConfigurationDescription(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveSwingApplicationDataSourcesManager.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveSwingApplicationDataSourcesManager.java index af079ae..af1246d 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveSwingApplicationDataSourcesManager.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveSwingApplicationDataSourcesManager.java @@ -104,7 +104,7 @@ public class ObserveSwingApplicationDataSourcesManager implements Closeable { dbDirectory, DB_NAME, config.getH2Login(), - config.getH2Password(), + config.getH2Password().toCharArray(), config.isShowMigrationProgression(), config.isShowMigrationSql(), config.getModelVersion() @@ -126,7 +126,7 @@ public class ObserveSwingApplicationDataSourcesManager implements Closeable { dbDirectory, ObserveSwingApplicationConfig.DB_NAME, config.getH2Login(), - config.getH2Password(), + config.getH2Password().toCharArray(), false, false, config.getModelVersion() @@ -142,8 +142,8 @@ public class ObserveSwingApplicationDataSourcesManager implements Closeable { label, config.getObstunaUrl(), config.getObstunaLogin(), - config.getObstunaPassword(), - config.isObstunaUseSsl(), + config.getObstunaPassword().toCharArray(), + config.isObstunaUseSslCert(), config.isShowMigrationProgression(), config.isShowMigrationSql(), config.getModelVersion() @@ -158,8 +158,8 @@ public class ObserveSwingApplicationDataSourcesManager implements Closeable { label, config.getServerUrl(), config.getServerLogin(), - config.getServerPassword(), - config.getServerDataBaseName(), + config.getServerPassword().toCharArray(), + config.getServerDatabaseName(), config.getModelVersion() ); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUIHandler.java index 2e7823f..a230f45 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUIHandler.java @@ -295,7 +295,7 @@ public class ObserveMainUIHandler { */ protected void reloadUI(ObserveSwingApplicationContext rootContext, ObserveSwingApplicationConfig config) { - // must remove all properties listener on config +// // must remove all properties listener on config config.removeJaxxPropertyChangeListener(); // scan main ui diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/ChangeApplicationLanguageAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/ChangeApplicationLanguageAction.java index fd66c71..6d5d2de 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/ChangeApplicationLanguageAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/ChangeApplicationLanguageAction.java @@ -24,7 +24,6 @@ package fr.ird.observe.application.swing.ui.actions; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.configuration.ObserveSwingApplicationConfig; -import fr.ird.observe.application.swing.configuration.ObserveSwingApplicationConfigOption; import fr.ird.observe.application.swing.ui.ObserveMainUI; import fr.ird.observe.application.swing.ui.ObserveUICallback; import jaxx.runtime.SwingUtil; @@ -73,7 +72,7 @@ public class ChangeApplicationLanguageAction extends AbstractAction { ObserveSwingApplicationConfig config = ui.getConfig(); // sauvegarde de la nouvelle locale - config.setOption(ObserveSwingApplicationConfigOption.LOCALE, newLocale); + config.setLocale(newLocale); ObserveUICallback.ui.run(); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/ChangeDbLanguageAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/ChangeDbLanguageAction.java index 17052b1..f559a90 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/ChangeDbLanguageAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/ChangeDbLanguageAction.java @@ -24,10 +24,9 @@ package fr.ird.observe.application.swing.ui.actions; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.configuration.ObserveSwingApplicationConfig; -import fr.ird.observe.application.swing.configuration.ObserveSwingApplicationConfigOption; -import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.application.swing.ui.ObserveMainUI; import fr.ird.observe.application.swing.ui.ObserveUICallback; +import fr.ird.observe.services.dto.constants.ReferentialLocale; import jaxx.runtime.SwingUtil; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -75,7 +74,7 @@ public class ChangeDbLanguageAction extends AbstractAction { ObserveSwingApplicationConfig config = ui.getConfig(); // sauvegarde de la nouvelle locale - config.setOption(ObserveSwingApplicationConfigOption.DB_LOCALE, newLocale.getLocale()); + config.setDbLocale(newLocale.getLocale()); ObserveUICallback.ui.run(); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/GotoSiteAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/GotoSiteAction.java index fd237ba..d4f733b 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/GotoSiteAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/GotoSiteAction.java @@ -65,7 +65,7 @@ public class GotoSiteAction extends AbstractAction { ObserveSwingApplicationConfig config = ui.getConfig(); - URL siteURL = config.getOptionAsURL("application.site.url"); + URL siteURL = config.getApplicationConfig().getOptionAsURL("application.site.url"); UIHelper.displayInfo( t("observe.message.goto.site", siteURL)); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/ReloadStorageAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/ReloadStorageAction.java index 04002be..d59879a 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/ReloadStorageAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/ReloadStorageAction.java @@ -95,10 +95,10 @@ public class ReloadStorageAction extends AbstractObserveAction { ObserveDataSourceConfigurationTopiaH2 h2Config = (ObserveDataSourceConfigurationTopiaH2) storage.getConfiguration(); - h2Config.setCanMigrate(appConfig.isCanMigrateH2()); + h2Config.setCanMigrate(appConfig.isH2CanMigrate()); } else if (storage.isRemote()) { ObserveDataSourceConfigurationTopiaPG pgConfig = (ObserveDataSourceConfigurationTopiaPG) storage.getConfiguration(); - pgConfig.setCanMigrate(appConfig.isCanMigrateObstuna()); + pgConfig.setCanMigrate(appConfig.isObstunaCanMigrate()); } try { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/ShowConfigAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/ShowConfigAction.java index b9b28af..a8fc9a3 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/ShowConfigAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/ShowConfigAction.java @@ -27,22 +27,20 @@ import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.configuration.ObserveSwingApplicationConfig; import fr.ird.observe.application.swing.configuration.ObserveSwingApplicationConfigOption; import fr.ird.observe.application.swing.db.ObserveSwingDataSource; -import fr.ird.observe.services.dto.referential.ReferentialReference; -import fr.ird.observe.services.dto.referential.SpeciesListDto; +import fr.ird.observe.application.swing.decoration.decorators.ReferentialReferenceDecorator; import fr.ird.observe.application.swing.ui.ObserveMainUI; import fr.ird.observe.application.swing.ui.ObserveMainUIHandler; import fr.ird.observe.application.swing.ui.ObserveUICallback; -import fr.ird.observe.application.swing.decoration.decorators.ReferentialReferenceDecorator; +import fr.ird.observe.services.dto.referential.ReferentialReference; +import fr.ird.observe.services.dto.referential.SpeciesListDto; import jaxx.runtime.SwingUtil; import jaxx.runtime.swing.config.ConfigUIHelper; import jaxx.runtime.swing.config.model.ConfigUIModelBuilder; import jaxx.runtime.swing.config.model.MainCallBackFinalizer; import jaxx.runtime.swing.editor.bean.BeanFilterableComboBox; -import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.jdesktop.swingx.renderer.DefaultTableRenderer; -import org.nuiton.config.ConfigOptionDef; import org.nuiton.decorator.Decorator; import org.nuiton.decorator.MultiJXPathDecorator; @@ -316,9 +314,7 @@ public class ShowConfigAction extends AbstractAction { ObserveUICallback.ui.name()); helper.addOption(ObserveSwingApplicationConfigOption.MAP_BACKGROUND_COLOR); - for (ObserveSwingApplicationConfigOption layerOption : ObserveSwingApplicationConfigOption.MAP_LAYERS) { - helper.addOption(layerOption); - } + ObserveSwingApplicationConfigOption.MAP_LAYERS.forEach(helper::addOption); helper.addOption(ObserveSwingApplicationConfigOption.MAP_STYLE_FILE); } @@ -328,15 +324,16 @@ public class ShowConfigAction extends AbstractAction { helper.addCategory(n("observe.config.category.other"), n("observe.config.category.other.description")); - helper.addOption(ObserveSwingApplicationConfigOption.SHOW_NUMBER_EDITOR_BUTTON); - helper.addOption(ObserveSwingApplicationConfigOption.AUTO_POPUP_NUMBER_EDITOR); - helper.addOption(ObserveSwingApplicationConfigOption.SHOW_DATE_TIME_EDITOR_SLIDER); + helper.addOption(ObserveSwingApplicationConfigOption.SHOW_NUMBER_EDITOR_BUTTON, ObserveUICallback.ui); + helper.addOption(ObserveSwingApplicationConfigOption.AUTO_POPUP_NUMBER_EDITOR, ObserveUICallback.ui); + helper.addOption(ObserveSwingApplicationConfigOption.SHOW_DATE_TIME_EDITOR_SLIDER, ObserveUICallback.ui); helper.addOption(ObserveSwingApplicationConfigOption.LOAD_LOCAL_STORAGE, ObserveUICallback.application); // helper.addOption(ObserveSwingApplicationConfigOption.FULL_SCREEN, ObserveUICallback.ui); helper.addOption(ObserveSwingApplicationConfigOption.LOCALE, ObserveUICallback.ui); helper.addOption(ObserveSwingApplicationConfigOption.DB_LOCALE, ObserveUICallback.ui); } + protected void addValidationOptions(ObserveConfigUIBuilder helper) { helper.addCategory(n("observe.config.category.validation"), @@ -357,27 +354,11 @@ public class ShowConfigAction extends AbstractAction { protected ObserveConfigUIBuilder(ObserveSwingApplicationConfig config, SpeciesListTableCellEditor speciesListTableCellEditor, SpeciesListsTableCellRenderer speciesListsTableCellRenderer) { - super(config); + super(config, config.getApplicationConfig()); this.speciesListTableCellEditor = speciesListTableCellEditor; this.speciesListsTableCellRenderer = speciesListsTableCellRenderer; } - @Override - public ConfigUIModelBuilder addOption(ConfigOptionDef option) { - - // add the option - super.addOption(option); - - String beanProperty = ((ObserveSwingApplicationConfigOption) option).getPropertyKey(); - - if (StringUtils.isNotEmpty(beanProperty)) { - setOptionPropertyName(beanProperty); - } - - return modelBuilder; - - } - public ConfigUIModelBuilder addOption(ObserveSwingApplicationConfigOption option, ObserveUICallback callBack) { addOption(option); @@ -400,10 +381,8 @@ public class ShowConfigAction extends AbstractAction { protected ConfigUIModelBuilder addSpeciesListOption(ObserveSwingApplicationConfigOption option) { - addOption(option) - .setOptionPropertyName(option.getPropertyKey()) - .setOptionEditor(speciesListTableCellEditor) - .setOptionRenderer(speciesListsTableCellRenderer); + addOption(option).setOptionEditor(speciesListTableCellEditor) + .setOptionRenderer(speciesListsTableCellRenderer); return modelBuilder; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/StartServerModeAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/StartServerModeAction.java index 2181782..f7e383b 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/StartServerModeAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/StartServerModeAction.java @@ -79,7 +79,7 @@ public class StartServerModeAction extends AbstractAction { ObserveSwingApplicationConfig config = ui.getConfig(); File dbDirectory = new File(config.getLocalDBDirectory(), "obstuna"); String h2Login = config.getH2Login(); - String h2Password = new String(config.getH2Password()); + String h2Password = config.getH2Password(); Integer port = config.getH2ServerPort(); ui.setMode(ObserveUIMode.SERVER); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUIHandler.java index 374a17e..340d85c 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUIHandler.java @@ -44,10 +44,10 @@ import fr.ird.observe.application.swing.ui.storage.tabs.RolesTableModel; import fr.ird.observe.application.swing.ui.storage.tabs.SecurityModel; import fr.ird.observe.application.swing.ui.storage.tabs.StorageTabUI; import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration; +import fr.ird.observe.services.configuration.ObserveDataSourceInformation; import fr.ird.observe.services.configuration.rest.ObserveDataSourceConfigurationRest; import fr.ird.observe.services.configuration.topia.ObserveDataSourceConfigurationTopiaH2; import fr.ird.observe.services.configuration.topia.ObserveDataSourceConfigurationTopiaPG; -import fr.ird.observe.services.configuration.ObserveDataSourceInformation; import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.DataSourceCreateConfigurationDto; import fr.ird.observe.services.dto.ObserveDbUserDto; @@ -578,8 +578,8 @@ public class StorageUIHandler { config.setObstunaUrl(configurationTopiaPG.getJdbcUrl()); config.setObstunaLogin(configurationTopiaPG.getUsername()); - config.setObstunaPassword(configurationTopiaPG.getPassword()); - config.setObstunaUseSsl(configurationTopiaPG.isUseSsl()); + config.setObstunaPassword(new String(configurationTopiaPG.getPassword())); + config.setObstunaUseSslCert(configurationTopiaPG.isUseSsl()); config.setShowMigrationProgression(configurationTopiaPG.isShowMigrationProgression()); config.setShowMigrationSql(configurationTopiaPG.isShowMigrationSql()); @@ -593,8 +593,8 @@ public class StorageUIHandler { config.setServerUrl(configurationRest.getServerUrl()); config.setServerLogin(configurationRest.getLogin()); - config.setServerPassword(configurationRest.getPassword()); - config.setServerDataBaseName(configurationRest.getOptionalDatabaseName().orElse(null)); + config.setServerPassword(new String(configurationRest.getPassword())); + config.setServerDatabaseName(configurationRest.getOptionalDatabaseName().orElse(null)); //TODO-TC20100311 : on devrait pas regarder si l'utilisateur veut sauver //TODO-TC20100311 : la configuration ? diff --git a/application-web-configuration/pom.xml b/application-web-configuration/pom.xml index 6dda533..cbe7751 100644 --- a/application-web-configuration/pom.xml +++ b/application-web-configuration/pom.xml @@ -109,6 +109,23 @@ <plugins> <plugin> + <groupId>org.nuiton.eugene</groupId> + <artifactId>eugene-maven-plugin</artifactId> + <executions> + <execution> + <phase>generate-sources</phase> + <id>generate-config</id> + <configuration> + <modelName>ObserveWebApplication</modelName> + </configuration> + <goals> + <goal>generate-config</goal> + </goals> + </execution> + </executions> + </plugin> + + <plugin> <groupId>org.nuiton.i18n</groupId> <artifactId>i18n-maven-plugin</artifactId> <executions> diff --git a/application-web-configuration/src/main/java/fr/ird/observe/application/web/configuration/ObserveWebApplicationConfiguration.java b/application-web-configuration/src/main/java/fr/ird/observe/application/web/configuration/ObserveWebApplicationConfiguration.java index 599e12f..9d68915 100644 --- a/application-web-configuration/src/main/java/fr/ird/observe/application/web/configuration/ObserveWebApplicationConfiguration.java +++ b/application-web-configuration/src/main/java/fr/ird/observe/application/web/configuration/ObserveWebApplicationConfiguration.java @@ -31,15 +31,12 @@ import org.apache.commons.logging.LogFactory; import org.apache.log4j.LogManager; import org.apache.log4j.PropertyConfigurator; import org.nuiton.config.ApplicationConfig; -import org.nuiton.config.ApplicationConfigHelper; -import org.nuiton.config.ApplicationConfigProvider; import org.nuiton.config.ArgumentsParserException; -import org.nuiton.version.Version; import java.io.BufferedReader; import java.io.File; import java.io.IOException; -import java.net.URL; +import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; @@ -56,77 +53,23 @@ import java.util.Set; * * @author Tony Chemit - chemit@codelutin.com */ -public class ObserveWebApplicationConfiguration { +public class ObserveWebApplicationConfiguration extends GeneratedObserveWebApplicationConfiguration { /** Logger. */ private static Log log = LogFactory.getLog(ObserveWebApplicationConfiguration.class); protected static final String DEFAULT_OBSERVE_WEB_CONFIGURATION_FILENAME = "observeweb.conf"; - private final ApplicationConfig applicationConfig; - public ObserveWebApplicationConfiguration() { this(DEFAULT_OBSERVE_WEB_CONFIGURATION_FILENAME); } public ObserveWebApplicationConfiguration(String confFileName) { - applicationConfig = new ApplicationConfig(); - applicationConfig.setEncoding(Charsets.UTF_8.name()); - applicationConfig.setConfigFileName(confFileName); - ApplicationConfigProvider applicationConfigProvider = ApplicationConfigHelper.getProvider(getClass().getClassLoader(), ObserveWebApplicationConfigurationProvider.OBSERVE_WEB_CONFIGURATION_PROVIDER_NAME); - applicationConfig.loadDefaultOptions(applicationConfigProvider.getOptions()); - - } - - public boolean isDevMode() { - return applicationConfig.getOptionAsBoolean(ObserveWebApplicationConfigurationOption.DEV_MODE.getKey()); - } - - public Version getVersion() { - return applicationConfig.getOption(Version.class, ObserveWebApplicationConfigurationOption.BUILD_VERSION.getKey()); - } - - public Version getModelVersion() { - return applicationConfig.getOption(Version.class, ObserveWebApplicationConfigurationOption.MODEL_VERSION.getKey()); - } - - public File getBaseDirectory() { - return applicationConfig.getOptionAsFile(ObserveWebApplicationConfigurationOption.BASE_DIRECTORY.getKey()); - } - - public File getTemporaryDirectory() { - return applicationConfig.getOptionAsFile(ObserveWebApplicationConfigurationOption.TEMPORARY_DIRECTORY.getKey()); - } - - public File getDatabasesConfigurationFile() { - return applicationConfig.getOptionAsFile(ObserveWebApplicationConfigurationOption.DATABASES_CONFIGURATION_FILE.getKey()); + ApplicationConfig delegate = getApplicationConfig(); + delegate.setEncoding(StandardCharsets.UTF_8.name()); + delegate.setConfigFileName(confFileName); } - public File getUsersConfigurationFile() { - return applicationConfig.getOptionAsFile(ObserveWebApplicationConfigurationOption.USERS_CONFIGURATION_FILE.getKey()); - } - - public File getLog4jConfigurationFile() { - return applicationConfig.getOptionAsFile(ObserveWebApplicationConfigurationOption.LOG4J_CONFIGURATION_FILE.getKey()); - } - - public int getSessionMaximumSize() { - return applicationConfig.getOptionAsInt(ObserveWebApplicationConfigurationOption.SESSION_MAXIMUM_SIZE.getKey()); - } - - public int getSessionExpirationDelay() { - return applicationConfig.getOptionAsInt(ObserveWebApplicationConfigurationOption.SESSION_EXPIRATION_DELAY.getKey()); - } - - public String getAdminApiKey() { - return applicationConfig.getOption(ObserveWebApplicationConfigurationOption.ADMIN_API_KEY.getKey()); - } - - public URL getApiUrl() { - return applicationConfig.getOptionAsURL(ObserveWebApplicationConfigurationOption.API_URL.getKey()); - } - - public void init(String... args) { if (log.isInfoEnabled()) { @@ -134,7 +77,7 @@ public class ObserveWebApplicationConfiguration { } try { - applicationConfig.parse(args); + getApplicationConfig().parse(args); } catch (ArgumentsParserException e) { throw new ObserveWebApplicationConfigurationInitException("could not parse configuration", e); } @@ -163,7 +106,7 @@ public class ObserveWebApplicationConfiguration { if (log.isInfoEnabled()) { log.info("Dev mode detected, use temporary basedir: " + applicationBaseDirectory); } - applicationConfig.setOption(ObserveWebApplicationConfigurationOption.BASE_DIRECTORY.getKey(), applicationBaseDirectory.getAbsolutePath()); + getApplicationConfig().setOption(ObserveWebApplicationConfigurationOption.BASE_DIRECTORY.getKey(), applicationBaseDirectory.getAbsolutePath()); } if (log.isInfoEnabled()) { @@ -248,9 +191,10 @@ public class ObserveWebApplicationConfiguration { StringBuilder builder = new StringBuilder(); builder.append("\n====================================================================================================================="); builder.append("\n=== Observe Web configuration ======================================================================================="); - builder.append(String.format("\n=== %1$-40s = %2$s", "Filename", applicationConfig.getConfigFileName())); - for (ObserveWebApplicationConfigurationOption option : ObserveWebApplicationConfigurationOption.orderedByNameValues()) { - builder.append(String.format("\n=== %1$-40s = %2$s", option.getKey(), applicationConfig.getOption(option))); + ApplicationConfig delegate = getApplicationConfig(); + builder.append(String.format("\n=== %1$-40s = %2$s", "Filename", delegate.getConfigFileName())); + for (ObserveWebApplicationConfigurationOption option : ObserveWebApplicationConfigurationOption.orderedByKeys()) { + builder.append(String.format("\n=== %1$-40s = %2$s", option.getKey(), delegate.getOption(option))); } builder.append("\n====================================================================================================================="); return builder.toString(); @@ -280,7 +224,7 @@ public class ObserveWebApplicationConfiguration { Properties logConfigurationProperties = new Properties(); logConfigurationProperties.load(inputStream); - finalLogConfigurationProperties = ObserveUtil.loadProperties(logConfigurationProperties, applicationConfig); + finalLogConfigurationProperties = ObserveUtil.loadProperties(logConfigurationProperties, getApplicationConfig()); } catch (Exception e) { throw new ObserveWebApplicationConfigurationInitException("Impossible de charger le fichier de configuration des logs", e); @@ -298,25 +242,25 @@ public class ObserveWebApplicationConfiguration { private static final String DEV_DATABASES_CONFIGURATION_FILE_CONTENT = "databases: \n" + - "- name: production\n" + - " defaultDatabase: true\n" + - " roles: \n" + - " - login: admin\n" + - " password: a\n" + - " - login: referentiel\n" + - " password: a\n" + - " url: jdbc:postgresql://localhost:5432/obstuna"; + "- name: production\n" + + " defaultDatabase: true\n" + + " roles: \n" + + " - login: admin\n" + + " password: a\n" + + " - login: referentiel\n" + + " password: a\n" + + " url: jdbc:postgresql://localhost:5432/obstuna"; private static final String DEV_USERS_CONFIGURATION_FILE_CONTENT = "users: \n" + - "- login: admin\n" + - " password: a\n" + - " permissions: \n" + - " - database: production\n" + - " role: admin\n" + - "- login: referentiel\n" + - " password: a\n" + - " permissions: \n" + - " - database: production\n" + - " role: referentiel"; + "- login: admin\n" + + " password: a\n" + + " permissions: \n" + + " - database: production\n" + + " role: admin\n" + + "- login: referentiel\n" + + " password: a\n" + + " permissions: \n" + + " - database: production\n" + + " role: referentiel"; } diff --git a/application-web-configuration/src/main/java/fr/ird/observe/application/web/configuration/ObserveWebApplicationConfigurationOption.java b/application-web-configuration/src/main/java/fr/ird/observe/application/web/configuration/ObserveWebApplicationConfigurationOption.java index dd73691..696600e 100644 --- a/application-web-configuration/src/main/java/fr/ird/observe/application/web/configuration/ObserveWebApplicationConfigurationOption.java +++ b/application-web-configuration/src/main/java/fr/ird/observe/application/web/configuration/ObserveWebApplicationConfigurationOption.java @@ -44,24 +44,24 @@ import static org.nuiton.i18n.I18n.n; */ public enum ObserveWebApplicationConfigurationOption implements ConfigOptionDef { - BUILD_VERSION("observeweb.build.version", n("observeweb.build.version.description"), "", Version.class), - BUILD_DATE("observeweb.build.date", n("observeweb.build.date.description"), "", String.class), - BUILD_NUMBER("observeweb.build.number", n("observeweb.build.number.description"), "", String.class), - ADMIN_API_KEY("observeweb.adminApiKey", n("observeweb.adminApiKey.description"), "changeme", String.class), - API_URL("observeweb.apiUrl", n("observeweb.apiUrl.description"), "http://localhost:8080/observeweb/api/v1", URL.class), - - MODEL_VERSION("observeweb.model.version", n("observe.model.version"), null, Version.class), - - DEV_MODE("observeweb.devMode", n("observeweb.devMode.description"), "true", boolean.class), - BASE_DIRECTORY("observeweb.baseDirectory", n("observeweb.baseDirectory.description"), "/var/local/observeweb", File.class), - TEMPORARY_DIRECTORY("observeweb.temporaryDirectory", n("observeweb.temporaryDirectory.description"), "${observeweb.baseDirectory}/temp", File.class), - LOG4J_CONFIGURATION_FILE("observeweb.log4jConfigurationFile", n("observeweb.log4jConfigurationFile.description"), "${observeweb.baseDirectory}/observeweb-log4j.conf", String.class), - DATABASES_CONFIGURATION_FILE("observeweb.databasesConfigurationFile", n("observeweb.databasesConfigurationFile.description"), "${observeweb.baseDirectory}/databases.yml", File.class), - USERS_CONFIGURATION_FILE("observeweb.usersConfigurationFile", n("observeweb.usersConfigurationFile.description"), "${observeweb.baseDirectory}/users.yml", File.class), - SESSION_EXPIRATION_DELAY("observeweb.sessionExpirationDelay", n("observeweb.sessionExpirationDelay.description"), "60" /* en minutes */, int.class), - SESSION_MAXIMUM_SIZE("observeweb.sessionMaximumSize", n("observeweb.sessionMaximumSize.description"), "10000", int.class); - - ObserveWebApplicationConfigurationOption(String key, String description, String defaultValue, Class<?> type) { + BUILD_VERSION(Version.class, "observeweb.build.version", n("observeweb.build.version.description"), ""), + BUILD_DATE(String.class, "observeweb.build.date", n("observeweb.build.date.description"), ""), + BUILD_NUMBER(String.class, "observeweb.build.number", n("observeweb.build.number.description"), ""), + ADMIN_API_KEY(String.class, "observeweb.adminApiKey", n("observeweb.adminApiKey.description"), "changeme"), + API_URL(URL.class, "observeweb.apiUrl", n("observeweb.apiUrl.description"), "http://localhost:8080/observeweb/api/v1"), + + MODEL_VERSION(Version.class, "observeweb.model.version", n("observe.model.version"), null), + + DEV_MODE(boolean.class, "observeweb.devMode", n("observeweb.devMode.description"), "true"), + BASE_DIRECTORY(File.class, "observeweb.baseDirectory", n("observeweb.baseDirectory.description"), "/var/local/observeweb"), + TEMPORARY_DIRECTORY(File.class, "observeweb.temporaryDirectory", n("observeweb.temporaryDirectory.description"), "${observeweb.baseDirectory}/temp"), + LOG4J_CONFIGURATION_FILE(File.class, "observeweb.log4jConfigurationFile", n("observeweb.log4jConfigurationFile.description"), "${observeweb.baseDirectory}/observeweb-log4j.conf"), + DATABASES_CONFIGURATION_FILE(File.class, "observeweb.databasesConfigurationFile", n("observeweb.databasesConfigurationFile.description"), "${observeweb.baseDirectory}/databases.yml"), + USERS_CONFIGURATION_FILE(File.class, "observeweb.usersConfigurationFile", n("observeweb.usersConfigurationFile.description"), "${observeweb.baseDirectory}/users.yml"), + SESSION_EXPIRATION_DELAY(int.class, "observeweb.sessionExpirationDelay", n("observeweb.sessionExpirationDelay.description"), "60" /* en minutes */), + SESSION_MAXIMUM_SIZE(int.class, "observeweb.sessionMaximumSize", n("observeweb.sessionMaximumSize.description"), "10000"); + + ObserveWebApplicationConfigurationOption(Class<?> type, String key, String description, String defaultValue) { this.key = key; this.description = description; this.defaultValue = defaultValue; @@ -121,7 +121,7 @@ public enum ObserveWebApplicationConfigurationOption implements ConfigOptionDef throw new NotImplementedException("Can't invoke setFinal method"); } - public static ImmutableList<ObserveWebApplicationConfigurationOption> orderedByNameValues() { + public static ImmutableList<ObserveWebApplicationConfigurationOption> orderedByKeys() { List<ObserveWebApplicationConfigurationOption> values = Lists.newArrayList(values()); Collections.sort(values, (o1, o2) -> o1.getKey().compareTo(o2.getKey())); diff --git a/pom.xml b/pom.xml index a3c2192..69fc5d1 100644 --- a/pom.xml +++ b/pom.xml @@ -159,7 +159,7 @@ <signatureArtifactId>java18</signatureArtifactId> <signatureVersion>1.0</signatureVersion> - <eugenePluginVersion>3.0-alpha-6</eugenePluginVersion> + <eugenePluginVersion>3.0-SNAPSHOT</eugenePluginVersion> <processorPluginVersion>1.3</processorPluginVersion> <topiaVersion>3.1.3</topiaVersion> -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.