branch feature/7494 updated (61245bc -> 0ede2d6)
This is an automated email from the git hooks/post-receive script. New change to branch feature/7494 in repository observe. See http://git.codelutin.com/observe.git from 61245bc Modélisation des utilisateurs et chargement au démarrage de l'application web (See #7494) new 0ede2d6 Faire fonctionner le chargement dynamqieu de la configuration des logs The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit 0ede2d64482f14b8c61790f02eff8eeaaad7e67d Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Aug 30 15:55:55 2015 +0200 Faire fonctionner le chargement dynamqieu de la configuration des logs Summary of changes: .../ObserveWebApplicationConfiguration.java | 67 +++++++++++----------- .../src/main/resources/observeweb-log4j.conf | 2 +- pom.xml | 2 +- 3 files changed, 35 insertions(+), 36 deletions(-) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/7494 in repository observe. See http://git.codelutin.com/observe.git commit 0ede2d64482f14b8c61790f02eff8eeaaad7e67d Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Aug 30 15:55:55 2015 +0200 Faire fonctionner le chargement dynamqieu de la configuration des logs --- .../ObserveWebApplicationConfiguration.java | 67 +++++++++++----------- .../src/main/resources/observeweb-log4j.conf | 2 +- pom.xml | 2 +- 3 files changed, 35 insertions(+), 36 deletions(-) diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/configuration/ObserveWebApplicationConfiguration.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/configuration/ObserveWebApplicationConfiguration.java index 4429dcc..eea7653 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/configuration/ObserveWebApplicationConfiguration.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/configuration/ObserveWebApplicationConfiguration.java @@ -1,6 +1,8 @@ package fr.ird.observe.application.web.configuration; import com.google.common.base.Charsets; +import com.google.common.io.CharSource; +import com.google.common.io.Resources; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.log4j.LogManager; @@ -10,11 +12,9 @@ import org.nuiton.config.ApplicationConfigHelper; import org.nuiton.config.ApplicationConfigProvider; import org.nuiton.config.ArgumentsParserException; +import java.io.BufferedReader; import java.io.File; import java.io.IOException; -import java.io.InputStream; -import java.net.MalformedURLException; -import java.net.URL; import java.nio.file.Files; import java.nio.file.attribute.FileAttribute; import java.nio.file.attribute.PosixFilePermission; @@ -90,6 +90,10 @@ public class ObserveWebApplicationConfiguration { return applicationConfig.getOptionAsFile(ObserveWebApplicationConfigurationOption.USERS_CONFIGURATION_FILE.getKey()); } + public File getLog4jConfigurationFile() { + return applicationConfig.getOptionAsFile(ObserveWebApplicationConfigurationOption.LOG4J_CONFIGURATION_FILE.getKey()); + } + public int getSessionExpirationDelay() { return applicationConfig.getOptionAsInt(ObserveWebApplicationConfigurationOption.SESSION_EXPIRATION_DELAY.getKey()); } @@ -124,12 +128,11 @@ public class ObserveWebApplicationConfiguration { throw new ObserveWebApplicationConfigurationInitException("Impossible de créer le répertoire temporaire de l'application (" + temporaryDirectory + ")", e); } - boolean devMode = isDevMode(); - File databasesConfigurationFile = getDatabasesConfigurationFile(); File usersConfigurationFile = getUsersConfigurationFile(); + File log4jConfigurationFile = getLog4jConfigurationFile(); - if (devMode) { + if (isDevMode()) { if (!databasesConfigurationFile.exists()) { @@ -157,6 +160,21 @@ public class ObserveWebApplicationConfiguration { throw new ObserveWebApplicationConfigurationInitException("Impossible de créer un fichier de configuration des utilisateurs pour développement", e); } } + + if (!log4jConfigurationFile.exists()) { + + // Generate a default log4jConfigurationFile + try { + CharSource charSource = Resources.asCharSource(getClass().getResource("/observeweb-log4j.conf"), Charsets.UTF_8); + String log4jFileContent = charSource.read(); + if (log.isInfoEnabled()) { + log.info("Generate a default log4jConfigurationFile for tests purpose only:\n" + log4jFileContent); + } + Files.write(log4jConfigurationFile.toPath(), log4jFileContent.getBytes()); + } catch (IOException e) { + throw new ObserveWebApplicationConfigurationInitException("Impossible de créer un fichier de log4j pour développement", e); + } + } } if (!databasesConfigurationFile.exists()) { @@ -167,9 +185,7 @@ public class ObserveWebApplicationConfiguration { throw new ObserveWebApplicationConfigurationInitException("Le fichier de configuration des utilisateurs n'existe pas : " + usersConfigurationFile); } - if (!devMode) { - initLog(); - } + initLog(); } @@ -193,35 +209,18 @@ public class ObserveWebApplicationConfiguration { protected void initLog() { - String logFilePath = applicationConfig.getOption(ObserveWebApplicationConfigurationOption.LOG4J_CONFIGURATION_FILE.getKey()); - - URL resource; - if (logFilePath.startsWith("classpath:")) { - resource = getClass().getResource(logFilePath.substring(10)); - - } else { - File logFile = applicationConfig.getOptionAsFile(ObserveWebApplicationConfigurationOption.LOG4J_CONFIGURATION_FILE.getKey()); - - if (!logFile.exists()) { - throw new ObserveWebApplicationConfigurationInitException("Le fichier de configuration des logs (" + logFile + ") n'existe pas"); - } - - try { - resource = logFile.toURI().toURL(); - } catch (MalformedURLException e) { - - throw new ObserveWebApplicationConfigurationInitException("L'url du fichier de configuration des logs (" + logFile + ") est malformée", e); - - } + File logFile = getLog4jConfigurationFile(); + if (!logFile.exists()) { + throw new ObserveWebApplicationConfigurationInitException("Le fichier de configuration des logs (" + logFile + ") n'existe pas"); } if (log.isInfoEnabled()) { - log.info("Chargement du fichier de de log4j depuis " + resource); + log.info("Chargement du fichier de log : " + logFile); } Properties finalLogConfigurationProperties = new Properties(); - try (InputStream inputStream = resource.openStream()) { + try (BufferedReader inputStream = Files.newBufferedReader(logFile.toPath(), Charsets.UTF_8)) { Properties logConfigurationProperties = new Properties(); logConfigurationProperties.load(inputStream); @@ -229,10 +228,10 @@ public class ObserveWebApplicationConfiguration { for (Map.Entry<Object, Object> entry : logConfigurationProperties.entrySet()) { String key = (String) entry.getKey(); String value = (String) entry.getValue(); - String newValue = applicationConfig.getOption(value); + String newValue = applicationConfig.replaceRecursiveOptions(value); finalLogConfigurationProperties.setProperty(key, newValue); } - } catch (IOException e) { + } catch (Exception e) { throw new ObserveWebApplicationConfigurationInitException("Impossible de charger le fichier de configuration des logs", e); } @@ -241,7 +240,7 @@ public class ObserveWebApplicationConfiguration { log = LogFactory.getLog(ObserveWebApplicationConfiguration.class); if (log.isInfoEnabled()) { - log.info("Initialisation de log4j terminées depuis " + logFilePath); + log.info("Configuration des logs chargée depuis le fichier " + logFile); } } diff --git a/observe-application-web/src/main/resources/observeweb-log4j.conf b/observe-application-web/src/main/resources/observeweb-log4j.conf index 2d6733f..f4d9189 100644 --- a/observe-application-web/src/main/resources/observeweb-log4j.conf +++ b/observe-application-web/src/main/resources/observeweb-log4j.conf @@ -9,7 +9,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=${observeweb.baseDirectory}/log/observeweb-${observeweb.version}.log +log4j.appender.file.File=${observeweb.baseDirectory}/log/observeweb-${observeweb.build.version}.log log4j.appender.file.MaxFileSize=10MB log4j.appender.file.MaxBackupIndex=4 log4j.appender.file.layout=org.apache.log4j.PatternLayout diff --git a/pom.xml b/pom.xml index f0fede6..f154559 100644 --- a/pom.xml +++ b/pom.xml @@ -277,7 +277,7 @@ <dependency> <groupId>org.nuiton</groupId> <artifactId>nuiton-config</artifactId> - <version>3.0-rc-2</version> + <version>3.0-SNAPSHOT</version> <scope>compile</scope> </dependency> <dependency> -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
participants (1)
-
codelutin.com scm