r2998 - in branches/ng-jtimer: . src/main/java/org/chorem/jtimer src/main/java/org/chorem/jtimer/config src/main/java/org/chorem/jtimer/storage src/main/java/org/chorem/jtimer/web src/main/resources
Author: obruce Date: 2014-06-11 16:23:29 +0200 (Wed, 11 Jun 2014) New Revision: 2998 Url: http://forge.chorem.org/projects/jtimer/repository/revisions/2998 Log: Ajout de nuiton config Added: branches/ng-jtimer/src/main/java/org/chorem/jtimer/config/ branches/ng-jtimer/src/main/java/org/chorem/jtimer/config/JtimerConfig.java branches/ng-jtimer/src/main/java/org/chorem/jtimer/config/JtimerConfigOption.java branches/ng-jtimer/src/main/resources/jtimer-default.properties Modified: branches/ng-jtimer/pom.xml branches/ng-jtimer/src/main/java/org/chorem/jtimer/storage/Storage.java branches/ng-jtimer/src/main/java/org/chorem/jtimer/web/RestApplication.java Modified: branches/ng-jtimer/pom.xml =================================================================== --- branches/ng-jtimer/pom.xml 2014-06-06 16:12:32 UTC (rev 2997) +++ branches/ng-jtimer/pom.xml 2014-06-11 14:23:29 UTC (rev 2998) @@ -59,6 +59,7 @@ <artifactId>nuiton-js-angular-ui-bootstrap</artifactId> <version>0.11.0-2</version> </dependency> + <dependency> <groupId>org.nuiton.js</groupId> <artifactId>nuiton-js-jquery</artifactId> @@ -198,6 +199,11 @@ <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> </dependency> + <dependency> + <groupId>org.nuiton</groupId> + <artifactId>nuiton-config</artifactId> + <version>3.0-alpha-2</version> + </dependency> </dependencies> <repositories> Added: branches/ng-jtimer/src/main/java/org/chorem/jtimer/config/JtimerConfig.java =================================================================== --- branches/ng-jtimer/src/main/java/org/chorem/jtimer/config/JtimerConfig.java (rev 0) +++ branches/ng-jtimer/src/main/java/org/chorem/jtimer/config/JtimerConfig.java 2014-06-11 14:23:29 UTC (rev 2998) @@ -0,0 +1,77 @@ +package org.chorem.jtimer.config; + +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.nuiton.config.ApplicationConfig; + +import java.util.Properties; + +/** + * Created by olivia on 11/06/14. + * <p/> + * Project name : jtimer + * <p/> + * Package name : org.chorem.jtimer.config + */ +public class JtimerConfig{ + + static private Log log = LogFactory.getLog(JtimerConfig.class); + + /** Fichier de configuration par defaut */ + protected static final String JTIMER_DEFAULT_CONF_FILENAME = "jtimer-default.properties"; + + /** Application configuration */ + protected ApplicationConfig appConfig; + + /** + * Constructeur par defaut + */ + public JtimerConfig() throws Exception { + + try{ + //On essaye de retrouver le fichier de conf par defaut et de le parser + appConfig = new ApplicationConfig(JTIMER_DEFAULT_CONF_FILENAME); + appConfig.loadDefaultOptions(JtimerConfigOption.values()); + appConfig.parse(); + + }catch(Exception e){ + throw new Exception("Can't read property file"); + } + + } + + + + public JtimerConfig(String configFileName) throws Exception { + + try { + //On essaye de retrouver le fichier de conf par defaut et de le parser + ApplicationConfig defaultConfig = new ApplicationConfig(JTIMER_DEFAULT_CONF_FILENAME); + defaultConfig.loadDefaultOptions(JtimerConfigOption.values()); + defaultConfig.parse(); + + if (StringUtils.isNotBlank(configFileName)) { + Properties flatOptions = defaultConfig.getFlatOptions(false); + appConfig = new ApplicationConfig(flatOptions, configFileName); + appConfig.parse(); + } else { + if (log.isWarnEnabled()) { + log.warn("No specific configuration provided, using the default one"); + } + appConfig = defaultConfig; + } + } catch (Exception e) { + throw new Exception("Can't read property file"); + } + } + + + /** + * Methode qui retourne le path ou implanter le storage + * @return le path du storage + */ + public String getStoragePath(){ + return appConfig.getOption(JtimerConfigOption.JTIMER_STORAGE_PATH.getKey()); + } +} Added: branches/ng-jtimer/src/main/java/org/chorem/jtimer/config/JtimerConfigOption.java =================================================================== --- branches/ng-jtimer/src/main/java/org/chorem/jtimer/config/JtimerConfigOption.java (rev 0) +++ branches/ng-jtimer/src/main/java/org/chorem/jtimer/config/JtimerConfigOption.java 2014-06-11 14:23:29 UTC (rev 2998) @@ -0,0 +1,83 @@ +package org.chorem.jtimer.config; + +import org.nuiton.config.ConfigOptionDef; + +/** + * Created by olivia on 11/06/14. + * <p/> + * Project name : jtimer + * <p/> + * Package name : org.chorem.jtimer.config + */ +public enum JtimerConfigOption implements ConfigOptionDef { + JTIMER_STORAGE_PATH( + "jtimer.storage.path", + "chemin qui indique où se trouve le stockage", + "/tmp/jtimer8080", + String.class), + JTIMER_STORAGE_CREDENTIALS( + "jtimer.storage.credentials", + "indique les éléments dont on a besoin pour s'authentifier à la base", + "", + String.class); + + public final String key; + public final String description; + public String defaultValue; + public final Class<?> type; + + + JtimerConfigOption(String key, String description, String defaultValue, + Class<?> type) { + this.key = key; + this.description = description; + this.defaultValue = defaultValue; + this.type = type; + + } + + @Override + public String getKey() { + return key; + } + + @Override + public Class<?> getType() { + return type; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public String getDefaultValue() { + return defaultValue; + } + + @Override + public boolean isTransient() { + return false; + } + + @Override + public boolean isFinal() { + return false; + } + + @Override + public void setDefaultValue(String defaultValue) { + this.defaultValue = defaultValue; + } + + @Override + public void setTransient(boolean isTransient) { + + } + + @Override + public void setFinal(boolean isFinal) { + + } +} Modified: branches/ng-jtimer/src/main/java/org/chorem/jtimer/storage/Storage.java =================================================================== --- branches/ng-jtimer/src/main/java/org/chorem/jtimer/storage/Storage.java 2014-06-06 16:12:32 UTC (rev 2997) +++ branches/ng-jtimer/src/main/java/org/chorem/jtimer/storage/Storage.java 2014-06-11 14:23:29 UTC (rev 2998) @@ -35,10 +35,14 @@ protected static final String TABLE_TIME = "tasktime"; protected static final String TABLE_VERSION = "version"; + protected static String STORAGE_PATH; + protected Connection connection; - public Storage() { + public Storage(String path) { + this.STORAGE_PATH = path; + try { if (log.isDebugEnabled()) { log.debug("Registering jdbc driver"); @@ -65,14 +69,11 @@ } protected Connection getConnection() throws SQLException { - //TODO obruce 15-05-14 path a definir - String url = "/tmp/jtimer/jtimer8080"; - //String url = "/home/olivia/Bureau/jtimer/jtimer"; if (log.isInfoEnabled()) { - log.info("Opening connection to database : " + url); + log.info("Opening connection to database : " + STORAGE_PATH); } - Connection conn = DriverManager.getConnection("jdbc:h2:" + url, "sa", + Connection conn = DriverManager.getConnection("jdbc:h2:" + STORAGE_PATH, "sa", ""); conn.setAutoCommit(true); Modified: branches/ng-jtimer/src/main/java/org/chorem/jtimer/web/RestApplication.java =================================================================== --- branches/ng-jtimer/src/main/java/org/chorem/jtimer/web/RestApplication.java 2014-06-06 16:12:32 UTC (rev 2997) +++ branches/ng-jtimer/src/main/java/org/chorem/jtimer/web/RestApplication.java 2014-06-11 14:23:29 UTC (rev 2998) @@ -3,6 +3,7 @@ import org.apache.commons.lang3.tuple.Pair; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.chorem.jtimer.config.JtimerConfig; import org.chorem.jtimer.entities.TodoList; import org.chorem.jtimer.storage.Storage; import org.restlet.Application; @@ -25,8 +26,11 @@ protected static final Log log = LogFactory.getLog(RestApplication.class); /** Determine si la connexion est établie */ //TODO obruce 05/06/2014 to change when configuration available - protected boolean connected = true; + protected boolean connected = false; + /**Application configuration */ + JtimerConfig jtimerConf; + /** Todolist instance */ protected TodoList todoList; @@ -39,7 +43,11 @@ // Create a router Restlet that routes each call to a // new instance of ProjectsResource. Context context = getContext(); - initContext(context); + try { + initContext(context); + } catch (Exception e) { + e.printStackTrace(); + } Router router = new Router(context); // Defines only one route @@ -56,13 +64,13 @@ * Initialise le context de l'application REST * @param context */ - protected void initContext(Context context) { - //Initialisation du storage - Storage storage = new Storage(); + protected void initContext(Context context) throws Exception { - if (storage.getTasksCount() == 0) { + // Application Configuration + jtimerConf = new JtimerConfig(); - } + //Initialisation du storage + Storage storage = new Storage(jtimerConf.getStoragePath()); context.getAttributes().put(Storage.class.getName(), storage); Added: branches/ng-jtimer/src/main/resources/jtimer-default.properties =================================================================== --- branches/ng-jtimer/src/main/resources/jtimer-default.properties (rev 0) +++ branches/ng-jtimer/src/main/resources/jtimer-default.properties 2014-06-11 14:23:29 UTC (rev 2998) @@ -0,0 +1,6 @@ +### +# jTimer default properties +### +# jTimer storage path +jtimer.storage.path=/home/olivia/Bureau/jtimer/jtimer/jtimer +
participants (1)
-
obruce@users.chorem.org