This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit 535eb2ecf6ef761e858e4c4f67f1ee75be4cdb25 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Aug 13 20:20:09 2015 +0200 Chargement de la configuration de log de l'utilisateur suppresion otion isAdmin (refs #7455) --- .../main/java/fr/ird/observe/IObserveConfig.java | 2 + observe-swing/pom.xml | 1 - .../main/{resources => filters}/log4j.properties | 5 +- .../observe-log4j.properties} | 4 +- .../main/java/fr/ird/observe/ObserveCLAction.java | 43 ++++------- .../main/java/fr/ird/observe/ObserveConfig.java | 83 ++++++++++++++++------ .../java/fr/ird/observe/ObserveConfigOption.java | 33 +++++---- .../fr/ird/observe/ObserveResourceManager.java | 18 ++--- .../main/java/fr/ird/observe/ObserveRunner.java | 82 ++++++++++++++------- .../resources/i18n/observe-swing_en_GB.properties | 2 + .../resources/i18n/observe-swing_es_ES.properties | 2 + .../resources/i18n/observe-swing_fr_FR.properties | 4 +- 12 files changed, 176 insertions(+), 103 deletions(-) diff --git a/observe-business/src/main/java/fr/ird/observe/IObserveConfig.java b/observe-business/src/main/java/fr/ird/observe/IObserveConfig.java index 5d9dc7a..6cc673b 100644 --- a/observe-business/src/main/java/fr/ird/observe/IObserveConfig.java +++ b/observe-business/src/main/java/fr/ird/observe/IObserveConfig.java @@ -261,6 +261,8 @@ public interface IObserveConfig { File getTmpDirectory(); + File getLogConfigurationFile(); + boolean isDisplayMainUI(); boolean isCanUseUI(); diff --git a/observe-swing/pom.xml b/observe-swing/pom.xml index 94b23ed..fe76717 100644 --- a/observe-swing/pom.xml +++ b/observe-swing/pom.xml @@ -283,7 +283,6 @@ <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> - <scope>runtime</scope> </dependency> <!-- test dependencies --> diff --git a/observe-swing/src/main/resources/log4j.properties b/observe-swing/src/main/filters/log4j.properties similarity index 86% copy from observe-swing/src/main/resources/log4j.properties copy to observe-swing/src/main/filters/log4j.properties index 5542ef3..480b2f6 100644 --- a/observe-swing/src/main/resources/log4j.properties +++ b/observe-swing/src/main/filters/log4j.properties @@ -30,7 +30,7 @@ log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%c:%L) %M - %m%n # file output... log4j.appender.file=org.apache.log4j.RollingFileAppender -log4j.appender.file.File=\${user.home}/.observe/log/observe.log +log4j.appender.file.File=\${user.home}/.observe/log/observe-boot-${project.version}.log log4j.appender.file.MaxFileSize=10MB log4j.appender.file.MaxBackupIndex=4 log4j.appender.file.layout=org.apache.log4j.PatternLayout @@ -41,6 +41,9 @@ log4j.appender.file.layout.ConversionPattern=%d{dd MMM yyyy HH:mm:ss} %5p [%t] ( log4j.logger.fr.ird.observe=INFO log4j.logger.fr.ird.observe.db.impl.DataContext=WARN log4j.logger.fr.ird.observe.db.impl.DataService=WARN +log4j.logger.fr.ird.observe.entities.longline.ActivityLonglineImpl=DEBUG +log4j.logger.fr.ird.observe.entities.longline.SetLonglineImpl=DEBUG +log4j.logger.fr.ird.observe.entities.seine.ActivitySeineImpl=DEBUG log4j.logger.fr.ird.observe.validation.field=WARN log4j.logger.fr.ird.observe.ui.tree=INFO diff --git a/observe-swing/src/main/resources/log4j.properties b/observe-swing/src/main/filters/observe-log4j.properties similarity index 89% rename from observe-swing/src/main/resources/log4j.properties rename to observe-swing/src/main/filters/observe-log4j.properties index 5542ef3..2bea956 100644 --- a/observe-swing/src/main/resources/log4j.properties +++ b/observe-swing/src/main/filters/observe-log4j.properties @@ -30,7 +30,7 @@ log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%c:%L) %M - %m%n # file output... log4j.appender.file=org.apache.log4j.RollingFileAppender -log4j.appender.file.File=\${user.home}/.observe/log/observe.log +log4j.appender.file.File=\${user.home}/.observe/log/observe-${project.version}.log log4j.appender.file.MaxFileSize=10MB log4j.appender.file.MaxBackupIndex=4 log4j.appender.file.layout=org.apache.log4j.PatternLayout @@ -41,6 +41,8 @@ log4j.appender.file.layout.ConversionPattern=%d{dd MMM yyyy HH:mm:ss} %5p [%t] ( log4j.logger.fr.ird.observe=INFO log4j.logger.fr.ird.observe.db.impl.DataContext=WARN log4j.logger.fr.ird.observe.db.impl.DataService=WARN +log4j.logger.fr.ird.observe.entities.longline.ActivityLonglineImpl=DEBUG +log4j.logger.fr.ird.observe.entities.seine.ActivitySeineImpl=DEBUG log4j.logger.fr.ird.observe.validation.field=WARN log4j.logger.fr.ird.observe.ui.tree=INFO diff --git a/observe-swing/src/main/java/fr/ird/observe/ObserveCLAction.java b/observe-swing/src/main/java/fr/ird/observe/ObserveCLAction.java index 2e4a8e3..321c1b8 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ObserveCLAction.java +++ b/observe-swing/src/main/java/fr/ird/observe/ObserveCLAction.java @@ -180,10 +180,6 @@ public class ObserveCLAction { public ObserveCLAction() { } - public ObserveCLAction(ObserveConfig config) { - this.config = config; - } - public void useJMX() throws Exception { // just set the useJMX flag @@ -198,23 +194,18 @@ public class ObserveCLAction { getConfig().setDisplayMainUI(false); } + @SuppressWarnings("unused") public void help() { disableMainUI(); StringBuilder out = new StringBuilder(); - boolean isAdmin = ObserveRunner.isAdmin(); - out.append(t("observe.message.help.usage", getConfig().getVersion())); out.append('\n'); out.append("Options (set with --option <key> <value>:"); out.append('\n'); for (ObserveConfigOption o : ObserveConfigOption.values()) { -// if (o.isAdmin() && !isAdmin) { -// -// // ne pas afficher les options d'admin -// continue; -// } + out.append("\t"); out.append(o.key); out.append("("); @@ -227,11 +218,6 @@ public class ObserveCLAction { out.append("Actions:"); out.append('\n'); for (ActionDefinition a : ActionDefinition.values()) { -// if (a.isAdmin() && !isAdmin) { -// -// // ne pas afficher les actions d'admin -// continue; -// } out.append("\t"); out.append(Arrays.toString(a.aliases)); out.append("("); @@ -259,10 +245,9 @@ public class ObserveCLAction { launchAction(t("observe.action.showConfig.title"), runnable); } + @SuppressWarnings("unused") public void launchAdminUI(String operationName) throws InterruptedException { - checkIsAdmin(); - disableMainUI(); EnumSet<AdminStep> operations = AdminStep.getOperations(); @@ -293,10 +278,9 @@ public class ObserveCLAction { launchAction(t(operation.getTitle()), runnable); } + @SuppressWarnings("unused") public void launchObstunaAdminUI(String operationName) throws InterruptedException { - checkIsAdmin(); - disableMainUI(); EnumSet<ObstunaAdminAction> operations = EnumSet.allOf(ObstunaAdminAction.class); @@ -325,10 +309,10 @@ public class ObserveCLAction { launchAction(t(launcher.getTitle()), runnable); } - + @SuppressWarnings("unused") public void launchH2ServerMode() throws InterruptedException { - checkIsAdmin(); +// checkIsAdmin(); if (!config.isLocalStorageExist()) { if (log.isErrorEnabled()) { @@ -342,6 +326,7 @@ public class ObserveCLAction { } } + @SuppressWarnings("unused") public void createId(String className, int nbId) throws IOException { disableMainUI(); @@ -412,13 +397,13 @@ public class ObserveCLAction { context.lock(); } - protected void checkIsAdmin() { - if (!ObserveRunner.isAdmin()) { - throw new IllegalStateException( - "Your are not allowed to execute admin operation with " + - ObserveRunner.getRunner().getRunnerName()); - } - } +// protected void checkIsAdmin() { +// if (!ObserveRunner.isAdmin()) { +// throw new IllegalStateException( +// "Your are not allowed to execute admin operation with " + +// ObserveRunner.getRunner().getRunnerName()); +// } +// } /** * Un worker pour les opération longues d'administration. diff --git a/observe-swing/src/main/java/fr/ird/observe/ObserveConfig.java b/observe-swing/src/main/java/fr/ird/observe/ObserveConfig.java index ec8ab64..643a488 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ObserveConfig.java +++ b/observe-swing/src/main/java/fr/ird/observe/ObserveConfig.java @@ -52,7 +52,59 @@ import java.util.Locale; import java.util.Properties; import java.util.Set; -import static fr.ird.observe.ObserveConfigOption.*; +import static fr.ird.observe.ObserveConfigOption.AUTO_POPUP_NUMBER_EDITOR; +import static fr.ird.observe.ObserveConfigOption.BACKUP_DIRECTORY; +import static fr.ird.observe.ObserveConfigOption.BAIT_OBSERVATION; +import static fr.ird.observe.ObserveConfigOption.BIRDS_OBSERVATION; +import static fr.ird.observe.ObserveConfigOption.CHANGE_SYNCHRO_SRC; +import static fr.ird.observe.ObserveConfigOption.CONFIG_FILE; +import static fr.ird.observe.ObserveConfigOption.DB_DIRECTORY; +import static fr.ird.observe.ObserveConfigOption.DB_LOCALE; +import static fr.ird.observe.ObserveConfigOption.DEFAULT_CREATION_MODE; +import static fr.ird.observe.ObserveConfigOption.DEFAULT_DB_MODE; +import static fr.ird.observe.ObserveConfigOption.DEFAULT_GPS_MAX_DELAY; +import static fr.ird.observe.ObserveConfigOption.DEFAULT_GPS_MAX_SPEED; +import static fr.ird.observe.ObserveConfigOption.DETAILLED_ACTIVITIES_OBSERVATION; +import static fr.ird.observe.ObserveConfigOption.DEV_MODE; +import static fr.ird.observe.ObserveConfigOption.FULL_SCREEN; +import static fr.ird.observe.ObserveConfigOption.H2_CAN_MIGRATE; +import static fr.ird.observe.ObserveConfigOption.H2_LOGIN; +import static fr.ird.observe.ObserveConfigOption.H2_PASSWORD; +import static fr.ird.observe.ObserveConfigOption.H2_SERVER_PORT; +import static fr.ird.observe.ObserveConfigOption.I18N_DIRECTORY; +import static fr.ird.observe.ObserveConfigOption.INITIAL_DB_DUMP; +import static fr.ird.observe.ObserveConfigOption.LOAD_LOCAL_STORAGE; +import static fr.ird.observe.ObserveConfigOption.LOCALE; +import static fr.ird.observe.ObserveConfigOption.LOG_CONFIGURATION_FILE; +import static fr.ird.observe.ObserveConfigOption.MAMMALS_OBSERVATION; +import static fr.ird.observe.ObserveConfigOption.MAP_BACKGROUND_COLOR; +import static fr.ird.observe.ObserveConfigOption.NON_TARGET_OBSERVATION; +import static fr.ird.observe.ObserveConfigOption.OBJECTS_OBSERVATION; +import static fr.ird.observe.ObserveConfigOption.OBSTUNA_CAN_MIGRATE; +import static fr.ird.observe.ObserveConfigOption.OBSTUNA_LOGIN; +import static fr.ird.observe.ObserveConfigOption.OBSTUNA_PASSWORD; +import static fr.ird.observe.ObserveConfigOption.OBSTUNA_URL; +import static fr.ird.observe.ObserveConfigOption.OBSTUNA_USE_SSL_CERT; +import static fr.ird.observe.ObserveConfigOption.REPORT_DIRECTORY; +import static fr.ird.observe.ObserveConfigOption.RESOURCES_DIRECTORY; +import static fr.ird.observe.ObserveConfigOption.SAMPLES_OBSERVATION; +import static fr.ird.observe.ObserveConfigOption.SHOW_DATE_TIME_EDITOR_SLIDER; +import static fr.ird.observe.ObserveConfigOption.SHOW_MIGRATION_PROGRESSION; +import static fr.ird.observe.ObserveConfigOption.SHOW_MIGRATION_SQL; +import static fr.ird.observe.ObserveConfigOption.SHOW_NUMBER_EDITOR_BUTTON; +import static fr.ird.observe.ObserveConfigOption.SHOW_SQL; +import static fr.ird.observe.ObserveConfigOption.SPECIES_LIST_LONGLINE_CATCH_ID; +import static fr.ird.observe.ObserveConfigOption.SPECIES_LIST_LONGLINE_DEPREDATOR_ID; +import static fr.ird.observe.ObserveConfigOption.SPECIES_LIST_LONGLINE_ENCOUNTER_ID; +import static fr.ird.observe.ObserveConfigOption.SPECIES_LIST_SEINE_NON_TARGET_CATCH_ID; +import static fr.ird.observe.ObserveConfigOption.SPECIES_LIST_SEINE_OBJECT_OBSERVED_SPECIES_ID; +import static fr.ird.observe.ObserveConfigOption.SPECIES_LIST_SEINE_OBJECT_SCHOOL_ESTIMATE_ID; +import static fr.ird.observe.ObserveConfigOption.SPECIES_LIST_SEINE_SCHOOL_ESTIMATE_ID; +import static fr.ird.observe.ObserveConfigOption.SPECIES_LIST_SEINE_TARGET_CATCH_ID; +import static fr.ird.observe.ObserveConfigOption.STORE_REMOTE_STORAGE; +import static fr.ird.observe.ObserveConfigOption.TARGET_DISCARDS_OBSERVATION; +import static fr.ird.observe.ObserveConfigOption.TMP_DIRECTORY; +import static fr.ird.observe.ObserveConfigOption.values; import static fr.ird.observe.ObserveResourceManager.Resource; import static org.nuiton.i18n.I18n.t; @@ -114,8 +166,6 @@ public class ObserveConfig extends ApplicationConfig implements IObserveConfig { */ protected String[] unsavables; - public static final char[] EMPTY_CHAR_ARRAY = new char[0]; - private final ImmutableSet<String> longlinVesselTypeIds = ImmutableSet.copyOf( Sets.newHashSet("fr.ird.observe.entities.referentiel.VesselType#1239832675735#0.044156847891821505", "fr.ird.observe.entities.referentiel.VesselType#1239832675736#0.8708229847859869", @@ -166,15 +216,10 @@ public class ObserveConfig extends ApplicationConfig implements IObserveConfig { throw new IllegalStateException("No application.version found in application configuration."); } -// for (ObserveConfigOption o : values()) { -// setDefaultOption(o.key, o.defaultValue); -// } - setVersion(version); setDefaultOption(VERSION, version.getVersion()); setDefaultOption(APPLICATION_VERSION, version.getVersion()); - //TC-200100204 La version de la base n'est pas liéé à la version // de l'application Version dbVersion; @@ -183,16 +228,9 @@ public class ObserveConfig extends ApplicationConfig implements IObserveConfig { setDefaultOption(DB_VERSION, dbVersion.getVersion()); - boolean isAdmin = ObserveRunner.isAdmin(); - // creation des actions disponibles - for (ObserveCLAction.ActionDefinition a : - ObserveCLAction.ActionDefinition.values()) { - if (a.isAdmin() && !isAdmin) { + for (ObserveCLAction.ActionDefinition a : ObserveCLAction.ActionDefinition.values()) { - // ne pas ajouter les actions d'admin pour le simple utilisateur - continue; - } for (String alias : a.aliases) { addActionAlias(alias, a.action); } @@ -220,14 +258,7 @@ public class ObserveConfig extends ApplicationConfig implements IObserveConfig { List<String> result = new ArrayList<String>(); -// boolean isAdmin = ObserveRunner.isAdmin(); - for (ObserveConfigOption option : values()) { -// if (option.isAdmin() && !isAdmin) { -// -// // ne pas ajouter les options d'admin pour le simple utilisateur -// continue; -// } String key = option.getPropertyKey(); if (key != null) { // add a listener @@ -354,6 +385,12 @@ public class ObserveConfig extends ApplicationConfig implements IObserveConfig { } @Override + public File getLogConfigurationFile() { + File result = getOptionAsFile(LOG_CONFIGURATION_FILE.key); + return result; + } + + @Override public String getH2Login() { String result = getOption(H2_LOGIN.key); return result; diff --git a/observe-swing/src/main/java/fr/ird/observe/ObserveConfigOption.java b/observe-swing/src/main/java/fr/ird/observe/ObserveConfigOption.java index 6770ed8..1ded80c 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ObserveConfigOption.java +++ b/observe-swing/src/main/java/fr/ird/observe/ObserveConfigOption.java @@ -48,7 +48,7 @@ public enum ObserveConfigOption implements ConfigOptionDef { CONFIG_FILE( ApplicationConfig.CONFIG_FILE_NAME, n("observe.config.configFileName.description"), - ObserveRunner.isAdmin() ? "observe-admin-config" : "observe-config", + "observe-admin-config", String.class, true, true @@ -174,6 +174,15 @@ public enum ObserveConfigOption implements ConfigOptionDef { false ), + /** Le chemin du fichier de configuration des logs. */ + LOG_CONFIGURATION_FILE( + "logConfigurationFile", + n("observe.config.logConfigurationFile.description"), + "${resources.directory}/observe-log4j.properties", + String.class, + true, + false), + // local db config /** login sur toutes les bases h2 (non sauvegarde) */ @@ -637,7 +646,7 @@ public enum ObserveConfigOption implements ConfigOptionDef { false, false ), - /** shape file 1 */ + /** shape file 1 */ MAP_LAYER_1( "map.layer1.path", n("observe.config.map.layer1.description"), @@ -646,7 +655,7 @@ public enum ObserveConfigOption implements ConfigOptionDef { false, false ), - /** shape file 2 */ + /** shape file 2 */ MAP_LAYER_2( "map.layer2.path", n("observe.config.map.layer2.description"), @@ -655,7 +664,7 @@ public enum ObserveConfigOption implements ConfigOptionDef { false, false ), - /** shape file 3 */ + /** shape file 3 */ MAP_LAYER_3( "map.layer3.path", n("observe.config.map.layer3.description"), @@ -664,7 +673,7 @@ public enum ObserveConfigOption implements ConfigOptionDef { false, false ), - /** shape file 4 */ + /** shape file 4 */ MAP_LAYER_4( "map.layer4.path", n("observe.config.map.layer4.description"), @@ -673,7 +682,7 @@ public enum ObserveConfigOption implements ConfigOptionDef { false, false ), - /** shape file 5 */ + /** shape file 5 */ MAP_LAYER_5( "map.layer5.path", n("observe.config.map.layer5.description"), @@ -682,7 +691,7 @@ public enum ObserveConfigOption implements ConfigOptionDef { false, false ), - /** shape file 6 */ + /** shape file 6 */ MAP_LAYER_6( "map.layer6.path", n("observe.config.map.layer6.description"), @@ -691,7 +700,7 @@ public enum ObserveConfigOption implements ConfigOptionDef { false, false ), - /** shape file 7 */ + /** shape file 7 */ MAP_LAYER_7( "map.layer7.path", n("observe.config.map.layer7.description"), @@ -700,7 +709,7 @@ public enum ObserveConfigOption implements ConfigOptionDef { false, false ), - /** shape file 8 */ + /** shape file 8 */ MAP_LAYER_8( "map.layer8.path", n("observe.config.map.layer8.description"), @@ -709,7 +718,7 @@ public enum ObserveConfigOption implements ConfigOptionDef { false, false ), - /** shape file 9 */ + /** shape file 9 */ MAP_LAYER_9( "map.layer9.path", n("observe.config.map.layer9.description"), @@ -718,7 +727,7 @@ public enum ObserveConfigOption implements ConfigOptionDef { false, false ), - /** shape file 10 */ + /** shape file 10 */ MAP_LAYER_10( "map.layer10.path", n("observe.config.map.layer10.description"), @@ -737,7 +746,7 @@ public enum ObserveConfigOption implements ConfigOptionDef { false); public static List<ObserveConfigOption> 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); + MAP_LAYER_4, MAP_LAYER_5, MAP_LAYER_6, MAP_LAYER_7, MAP_LAYER_8, MAP_LAYER_9, MAP_LAYER_10); /** * Clef qui represente l'option (c'est celle enregistrée dans le fichier de diff --git a/observe-swing/src/main/java/fr/ird/observe/ObserveResourceManager.java b/observe-swing/src/main/java/fr/ird/observe/ObserveResourceManager.java index 95c955f..3cd0908 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ObserveResourceManager.java +++ b/observe-swing/src/main/java/fr/ird/observe/ObserveResourceManager.java @@ -50,20 +50,15 @@ import static org.nuiton.i18n.I18n.t; */ public class ObserveResourceManager { - public static final String OBSERVE_UI_PROPERTIES = - "/observe-ui.properties"; + public static final String OBSERVE_UI_PROPERTIES = "/observe-ui.properties"; - public static final String OBSERVE_APPLICATION_PROPERTIES = - "/observe-application.properties"; + public static final String OBSERVE_APPLICATION_PROPERTIES = "/observe-application.properties"; - public static final String OBSERVE_REPORTS_PROPERTIES = - "/observe-reports.properties"; + public static final String OBSERVE_REPORTS_PROPERTIES = "/observe-reports.properties"; - public static final String OBSERVE_MAP_BACKGROUND = - "/shapefiles/backgroundes/background.shp"; + public static final String OBSERVE_MAP_ARCHIVE = "/map.zip"; - public static final String OBSERVE_MAP_ARCHIVE = - "/map.zip"; + public static final String OBSERVE_LOG_CONFIGURATION_FILE_PROPERTIES = "/observe-log4j.properties"; /** Logger */ static private Log log = LogFactory.getLog(ObserveResourceManager.class); @@ -73,6 +68,7 @@ public class ObserveResourceManager { ui(OBSERVE_UI_PROPERTIES), application(OBSERVE_APPLICATION_PROPERTIES), report(OBSERVE_REPORTS_PROPERTIES), + LOG_CONFIGURATION_FILE(OBSERVE_LOG_CONFIGURATION_FILE_PROPERTIES), mapLayers(OBSERVE_MAP_ARCHIVE); private final String location; @@ -320,7 +316,7 @@ public class ObserveResourceManager { return dir; } finally { inputStream.close(); - + } } diff --git a/observe-swing/src/main/java/fr/ird/observe/ObserveRunner.java b/observe-swing/src/main/java/fr/ird/observe/ObserveRunner.java index 68a2118..3e11eea 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ObserveRunner.java +++ b/observe-swing/src/main/java/fr/ird/observe/ObserveRunner.java @@ -21,6 +21,7 @@ */ package fr.ird.observe; +import com.google.common.base.Preconditions; import fr.ird.converter.FloatConverter; import fr.ird.observe.ui.ObserveMainUI; import fr.ird.observe.ui.ObserveMainUIHandler; @@ -35,6 +36,8 @@ import org.apache.commons.beanutils.converters.DateConverter; import org.apache.commons.io.FileUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +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.converter.ConverterUtil; @@ -49,6 +52,7 @@ import javax.script.ScriptException; import javax.swing.UIManager; import java.io.File; import java.io.IOException; +import java.net.MalformedURLException; import java.net.URL; import java.util.Arrays; import java.util.Date; @@ -59,8 +63,8 @@ import static fr.ird.observe.ObserveConfigOption.BACKUP_DIRECTORY; import static fr.ird.observe.ObserveConfigOption.DATA_DIRECTORY; import static fr.ird.observe.ObserveConfigOption.DB_DIRECTORY; import static fr.ird.observe.ObserveConfigOption.INITIAL_DB_DUMP; -import static fr.ird.observe.ObserveConfigOption.REPORT_DIRECTORY; import static fr.ird.observe.ObserveConfigOption.MAP_DIRECTORY; +import static fr.ird.observe.ObserveConfigOption.REPORT_DIRECTORY; import static fr.ird.observe.ObserveConfigOption.RESOURCES_DIRECTORY; import static fr.ird.observe.ObserveConfigOption.TMP_DIRECTORY; import static fr.ird.observe.ObserveConfigOption.VALIDATION_REPORT_DIRECTORY; @@ -86,12 +90,12 @@ public abstract class ObserveRunner extends ApplicationRunner { return (ObserveRunner) ApplicationRunner.getRunner(); } - public static ObserveResourceManager getResourceManager() { - if (resourceManager == null) { - throw new IllegalStateException("No resourceManager initialized"); - } - return resourceManager; - } +// public static ObserveResourceManager getResourceManager() { +// if (resourceManager == null) { +// throw new IllegalStateException("No resourceManager initialized"); +// } +// return resourceManager; +// } public static ObserveActionExecutor getActionExecutor() { if (actionExecutor == null) { @@ -102,9 +106,9 @@ public abstract class ObserveRunner extends ApplicationRunner { public abstract String getRunnerName(); - public static boolean isAdmin() { - return true; - } +// public static boolean isAdmin() { +// return true; +// } public final boolean init; @@ -149,7 +153,7 @@ public abstract class ObserveRunner extends ApplicationRunner { // on charge dans un premier temps les traductions fournies // par l'application I18n.init(new DefaultI18nInitializer("observe-i18n"), null); - + // to enable javassist on webstart, must remove any securityManager, // see if this can be dangerous (should not be since jnlp is signed ?) // moreover it speeds up the loading :) @@ -203,6 +207,11 @@ public abstract class ObserveRunner extends ApplicationRunner { initUserDirectories(config); + // 3 - Chargement de la configuration des logs utilisateur + if (!config.isDevMode()) { + initLog(config); + } + if (log.isInfoEnabled()) { log.info(t("observe.runner.user.directories.loaded", config.getDataDirectory())); @@ -214,7 +223,7 @@ public abstract class ObserveRunner extends ApplicationRunner { if (log.isInfoEnabled()) { log.info(t("observe.runner.i18n.loaded", - config.getLocale().getDisplayLanguage())); + config.getLocale().getDisplayLanguage())); } // 4 - preparation de la configuration des ui @@ -236,6 +245,31 @@ public abstract class ObserveRunner extends ApplicationRunner { } } + protected void initLog(ObserveConfig config) { + + File logFile = config.getLogConfigurationFile(); + Preconditions.checkState(logFile.exists(), "Le fichier de configuration des logs %s n'existe pas.", logFile); + + URL resource; + try { + resource = logFile.toURI().toURL(); + } catch (MalformedURLException mue) { + throw new ObserveTechnicalException("Unable to load log configuration", mue); + } + + if (log.isInfoEnabled()) { + log.info("Chargement du fichier de de log4j depuis " + logFile); + } + LogManager.resetConfiguration(); + PropertyConfigurator.configure(resource); + + log = LogFactory.getLog(ObserveRunner.class); + if (log.isInfoEnabled()) { + log.info("Initialisation des logs depuis " + logFile); + } + + } + @Override protected void onStart() throws Exception { @@ -376,17 +410,6 @@ public abstract class ObserveRunner extends ApplicationRunner { // init config arguments config.parse(args); -// if (!isAdmin()) { -// -// // push back default values for admin options to make sure user -// // does not used modified values for thoses options -// for (ObserveConfigOption option : values()) { -// if (option.isAdmin()) { -// -// config.setOption(option.getKey(), option.getDefaultValue()); -// } -// } -// } // install save action on option modification config.installSaveAction(); @@ -439,7 +462,17 @@ public abstract class ObserveRunner extends ApplicationRunner { resourceManager.copyResource(Resource.ui, file, message); } - // 6 - resources i18n directory ? (done in I18nInitializer...) + // 6 - resources log configuration file + + file = Resource.LOG_CONFIGURATION_FILE.getFile(resourcesDirectory); + + if (!file.exists()) { + + String message = t("observe.runner.copy.default.logConfigurationFile.file", file); + + resourceManager.copyResource(Resource.LOG_CONFIGURATION_FILE, file, message); + + } // 7 - resources report @@ -499,6 +532,7 @@ public abstract class ObserveRunner extends ApplicationRunner { i18nDirectory, new DefaultI18nInitializer("observe-i18n") ) { + @Override protected void createUserI18nLayout(File directory) throws Exception { super.createUserI18nLayout(directory); diff --git a/observe-swing/src/main/resources/i18n/observe-swing_en_GB.properties b/observe-swing/src/main/resources/i18n/observe-swing_en_GB.properties index ed1817a..c086d7d 100644 --- a/observe-swing/src/main/resources/i18n/observe-swing_en_GB.properties +++ b/observe-swing/src/main/resources/i18n/observe-swing_en_GB.properties @@ -962,6 +962,7 @@ observe.config.h2.can.migrate.description=Flag to know if you can migrate h2 dat observe.config.h2.login.description=H2 Login observe.config.h2.password.description=H2 Password observe.config.h2.serverPort.description= +observe.config.logConfigurationFile.description= observe.config.map.background.description= observe.config.map.layer1.description= observe.config.map.layer10.description= @@ -1459,6 +1460,7 @@ observe.routes.title=Routes observe.runner.config.loaded= observe.runner.config.migrate.file= observe.runner.context.loaded= +observe.runner.copy.default.logConfigurationFile.file= observe.runner.copy.default.map.file= observe.runner.copy.default.report.file= observe.runner.copy.default.ui.file= diff --git a/observe-swing/src/main/resources/i18n/observe-swing_es_ES.properties b/observe-swing/src/main/resources/i18n/observe-swing_es_ES.properties index 09e6ee1..9722464 100644 --- a/observe-swing/src/main/resources/i18n/observe-swing_es_ES.properties +++ b/observe-swing/src/main/resources/i18n/observe-swing_es_ES.properties @@ -962,6 +962,7 @@ observe.config.h2.can.migrate.description=Autorizar la actualización de las bas observe.config.h2.login.description=Login h2 observe.config.h2.password.description=Contraseña h2 observe.config.h2.serverPort.description=Puerto del servidor h2 +observe.config.logConfigurationFile.description= observe.config.map.background.description= observe.config.map.layer1.description= observe.config.map.layer10.description= @@ -1461,6 +1462,7 @@ observe.routes.title= observe.runner.config.loaded=Configuración de Observe v. %1$s cargada. observe.runner.config.migrate.file=El fichero de configuración %1$s ha sido reemplazado por \n%2$s\nvers\n%3$s observe.runner.context.loaded=Finlazada la inicialización del contexto en %1$s. +observe.runner.copy.default.logConfigurationFile.file= observe.runner.copy.default.map.file= observe.runner.copy.default.report.file=Creación del archivo de informes %1$s. observe.runner.copy.default.ui.file=Creación del archivo de - Création du fichier de cosmétique %1$s. diff --git a/observe-swing/src/main/resources/i18n/observe-swing_fr_FR.properties b/observe-swing/src/main/resources/i18n/observe-swing_fr_FR.properties index db614ac..6c7d853 100644 --- a/observe-swing/src/main/resources/i18n/observe-swing_fr_FR.properties +++ b/observe-swing/src/main/resources/i18n/observe-swing_fr_FR.properties @@ -957,11 +957,12 @@ observe.config.defaultReportDirectory.description=Répertoire par défaut des ra observe.config.defaultResourcesDirectory.description=Le répertoire où sont stockées les resources de l'utilisateur comme les traductions ou les requètes de rapports. observe.config.defaultTmpDirectory.description=Le répertoire temporaire par défaut observe.config.defaultValidationReportDirectory.description=Le répertoire par défaut où sont stockés les rapports de validation -observe.config.devMode= +observe.config.devMode=Mode développeur observe.config.h2.can.migrate.description=Autoriser la mise à jour des bases locales (h2) observe.config.h2.login.description=Le login h2 observe.config.h2.password.description=Le mot de passe h2 observe.config.h2.serverPort.description=Port du serveur h2 +observe.config.logConfigurationFile.description=Fichier de configuration des logs observe.config.map.background.description=Couleur du fond de carte observe.config.map.layer1.description=Fichier (shapeFiles) du premier calque de la carte observe.config.map.layer10.description=Fichier (shapeFiles) du dixième calque de la carte @@ -1454,6 +1455,7 @@ observe.routes.title=Routes observe.runner.config.loaded=Configuration d'ObServe v. %1$s chargée. observe.runner.config.migrate.file=Le fichier de configuration %1$s a été déplacée de \n%2$s\nvers\n%3$s observe.runner.context.loaded=Initialisation du contexte terminée en %1$s. +observe.runner.copy.default.logConfigurationFile.file=Création du fichier de configuration des logs $1. observe.runner.copy.default.map.file= observe.runner.copy.default.report.file=Création du fichier de reports %1$s. observe.runner.copy.default.ui.file=Création du fichier de cosmétique %1$s. -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.