Author: obruce Date: 2014-07-18 09:52:13 +0200 (Fri, 18 Jul 2014) New Revision: 3016 Url: http://forge.chorem.org/projects/jtimer/repository/revisions/3016 Log: base ajout du path Modified: 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/java/org/chorem/jtimer/entities/TimerTask.java branches/ng-jtimer/src/main/java/org/chorem/jtimer/storage/Storage.java branches/ng-jtimer/src/main/java/org/chorem/jtimer/web/TasksResource.java branches/ng-jtimer/src/main/resources/jtimer-default.properties Modified: branches/ng-jtimer/src/main/java/org/chorem/jtimer/config/JtimerConfig.java =================================================================== --- branches/ng-jtimer/src/main/java/org/chorem/jtimer/config/JtimerConfig.java 2014-07-17 12:28:50 UTC (rev 3015) +++ branches/ng-jtimer/src/main/java/org/chorem/jtimer/config/JtimerConfig.java 2014-07-18 07:52:13 UTC (rev 3016) @@ -119,6 +119,10 @@ return appConfig.getOption(JtimerConfigOption.JTIMER_STORAGE_SELECT_COUNT_TASK.getKey()); } + public String getStorageQuerySelectPath(){ + return appConfig.getOption(JtimerConfigOption.JTIMER_STORAGE_SELECT_PATH.getKey()); + } + public String getStorageQuerySelectTimedTask(){ return appConfig.getOption(JtimerConfigOption.JTIMER_STORAGE_SELECT_TIMED_TASK.getKey()); } @@ -165,6 +169,10 @@ return appConfig.getOption(JtimerConfigOption.JTIMER_STORAGE_UPDATE_TASK_WITHID.getKey()); } + public String getStorageQueryUpdateTaskPath(){ + return appConfig.getOption(JtimerConfigOption.JTIMER_STORAGE_UPDATE_TASK_PATH.getKey()); + } + public String getStorageQueryUpdateAlarm(){ return appConfig.getOption(JtimerConfigOption.JTIMER_STORAGE_UPDATE_ALARM_WITHID.getKey()); } Modified: branches/ng-jtimer/src/main/java/org/chorem/jtimer/config/JtimerConfigOption.java =================================================================== --- branches/ng-jtimer/src/main/java/org/chorem/jtimer/config/JtimerConfigOption.java 2014-07-17 12:28:50 UTC (rev 3015) +++ branches/ng-jtimer/src/main/java/org/chorem/jtimer/config/JtimerConfigOption.java 2014-07-18 07:52:13 UTC (rev 3016) @@ -106,6 +106,12 @@ "", String.class ), + JTIMER_STORAGE_SELECT_PATH( + "jtimer.storage.select.path", + "requête qui va récupérer le path", + "", + String.class + ), JTIMER_STORAGE_SELECT_TIMED_TASK( "jtimer.storage.select.timed.task", "requête de selection des tâches minutées", @@ -184,6 +190,13 @@ "", String.class ), + JTIMER_STORAGE_UPDATE_TASK_PATH( + "jtimer.storage.update.task.path", + "méthode qui va faire l'update du path d'une tâche", + "", + String.class + ), + JTIMER_STORAGE_UPDATE_TASK_WITHID( "jtimer.storage.update.task.withid", "requête de mise à jour d'une taches avec un identifiant", Modified: branches/ng-jtimer/src/main/java/org/chorem/jtimer/entities/TimerTask.java =================================================================== --- branches/ng-jtimer/src/main/java/org/chorem/jtimer/entities/TimerTask.java 2014-07-17 12:28:50 UTC (rev 3015) +++ branches/ng-jtimer/src/main/java/org/chorem/jtimer/entities/TimerTask.java 2014-07-18 07:52:13 UTC (rev 3016) @@ -70,6 +70,8 @@ /** date if task is removed */ protected long removed; + protected String[] path; + /** * Constructor. */ @@ -91,6 +93,7 @@ this.creationDate = new Date(); this.modificationDate = new Date(); this.removed = 0; + this.path = null; } public Date getCreationDate() { @@ -210,15 +213,24 @@ @Override public String toString() { - return "TimerTask {" + - "taskId='" + taskId + '\'' + - ", parent='" + parent + '\'' + - ", name='" + name + '\'' + - ", modificationDate=" + modificationDate + - ", closed=" + closed + - ", todayTime=" + todayTime + - ", totalTime=" + totalTime + - ", removed=" + removed + - '}'; + String res ="TimerTask {" + + "taskId='" + taskId + '\'' + + ", parent='" + parent + '\'' + + ", name='" + name + '\'' + + ", modificationDate=" + modificationDate + + ", closed=" + closed + + ", todayTime=" + todayTime + + ", totalTime=" + totalTime + + ", removed=" + removed +'}'; + + if(path != null) + res += ",path= " + path.toString(); + + return res; + } + + public void setPath(String[] path) { + this.path = path; + } } \ No newline at end of file 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-07-17 12:28:50 UTC (rev 3015) +++ branches/ng-jtimer/src/main/java/org/chorem/jtimer/storage/Storage.java 2014-07-18 07:52:13 UTC (rev 3016) @@ -1,5 +1,6 @@ package org.chorem.jtimer.storage; +import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.chorem.jtimer.config.JtimerConfig; @@ -7,6 +8,7 @@ import org.chorem.jtimer.entities.TimerTask; import org.chorem.jtimer.entities.TimerTime; import org.chorem.jtimer.utils.ReportTask; +import org.h2.jdbc.JdbcSQLException; import java.sql.Connection; import java.sql.DriverManager; @@ -15,6 +17,7 @@ import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; +import java.util.Arrays; import java.util.Date; import java.util.HashMap; import java.util.Iterator; @@ -199,6 +202,8 @@ public void addTask(TimerTask task) { PreparedStatement statement = null; + PreparedStatement statement2 = null; + PreparedStatement statement3 = null; try { statement = connection.prepareStatement(config.getStorageQueryInsertTask()); statement.setString(1, task.getName()); @@ -211,6 +216,31 @@ statement.setLong(8,task.getRemoved()); statement.executeUpdate(); + String[] array; + + //On recupere le path du parent + if(StringUtils.isNotBlank(task.getParent())) { + + statement2 = connection.prepareStatement(config.getStorageQuerySelectPath()); + statement2.setString(1, task.getTaskId()); + + ResultSet rs = statement2.executeQuery(); + try { + String[] parentArray = (String[]) rs.getObject("path"); + array = Arrays.copyOf(parentArray, parentArray.length + 1); + array[parentArray.length] = task.getTaskId(); + }catch(JdbcSQLException eee){ + log.error(eee); + array = new String[]{task.getTaskId()}; + } + } else { + array = new String[]{task.getTaskId()}; + } + + + updateTaskPath(task.getTaskId(), array); + + } catch (SQLException ex) { throw new StorageException("Can't add project", ex); } finally { @@ -345,6 +375,9 @@ ArrayList<TimerTask> tasks = new ArrayList<>(); PreparedStatement statement = null; PreparedStatement statement2 = null; + + log.warn("plouplou"); + try { statement = connection.prepareStatement(config.getStorageQuerySelectTimedTask()); statement.setLong(1, date); @@ -358,6 +391,10 @@ task.setName(rs.getString("name")); task.setParent(rs.getString("parent")); task.setRemoved(rs.getLong("removed")); + + log.info("recherche " + rs.getObject("path")); + task.setPath((String[]) rs.getObject("path")); + task.setTodayTime(0); task.setCreationDate(new java.util.Date(rs.getLong("creationDate"))); task.setModificationDate(new java.util.Date(rs.getLong("modificationDate"))); @@ -388,6 +425,8 @@ closeStatement(statement); closeStatement(statement2); } + + log.warn(tasks); return tasks; } @@ -722,7 +761,27 @@ } + /** + * + * @param taskId + */ + public void updateTaskPath(String taskId, String[] array){ + PreparedStatement statement = null; + try { + //On update celui du fils + statement = connection.prepareStatement(config.getStorageQueryUpdateTaskPath()); + statement.setObject(1, array); + statement.setString(2, taskId); + statement.executeUpdate(); + }catch (SQLException ex) { + throw new StorageException("Can't modify alarm", ex); + } finally { + closeStatement(statement); + } + } + + /** Suppression de tuple **/ /** Modified: branches/ng-jtimer/src/main/java/org/chorem/jtimer/web/TasksResource.java =================================================================== --- branches/ng-jtimer/src/main/java/org/chorem/jtimer/web/TasksResource.java 2014-07-17 12:28:50 UTC (rev 3015) +++ branches/ng-jtimer/src/main/java/org/chorem/jtimer/web/TasksResource.java 2014-07-18 07:52:13 UTC (rev 3016) @@ -84,7 +84,7 @@ date = Long.valueOf(getQuery().getValues("date")); } catch (Exception e) { if(log.isErrorEnabled()){ - log.warn("entities.getTasks REST date null"); + log.warn("resource REST tasks : date null"); } } ArrayList<TimerTask> timerTasks; Modified: branches/ng-jtimer/src/main/resources/jtimer-default.properties =================================================================== --- branches/ng-jtimer/src/main/resources/jtimer-default.properties 2014-07-17 12:28:50 UTC (rev 3015) +++ branches/ng-jtimer/src/main/resources/jtimer-default.properties 2014-07-18 07:52:13 UTC (rev 3016) @@ -2,7 +2,7 @@ # jTimer default properties ### # jTimer storage path -jtimer.storage.path=/home/olivia/Bureau/jtimer/jtimer/newWithAlarm +jtimer.storage.path=/home/olivia/Bureau/jtimer/jtimer/BDDTest ### # SQL properties ### @@ -21,6 +21,7 @@ creationDate LONG, \ modificationDate LONG, \ hidden BOOLEAN, \ + path ARRAY, \ note TEXT, \ removed LONG, \ PRIMARY KEY (taskId)) @@ -63,6 +64,7 @@ #SELECT jtimer.storage.select.table.name=SELECT table_name FROM information_schema.tables; jtimer.storage.select.count.task=SELECT count(*) FROM task WHERE removed = 0 +jtimer.storage.select.path =SELECT path FROM task WHERE taskId = ? jtimer.storage.select.timed.task=SELECT TA.*, sum(TI.duration) AS totalduration \ FROM task TA, tasktime TI \ WHERE TA.taskId = TI.taskid \ @@ -77,7 +79,7 @@ WHERE TA.taskId = TI.taskid AND TI.modificationDate > ? jtimer.storage.select.notremoved.tasktime=SELECT TI.* \ FROM task TA, tasktime TI \ - WHERE TA.taskId = TI.taskid AND TA.taskId = '?' \ + WHERE TA.taskId = TI.taskid AND TA.taskId = ? \ AND TA.removed = 0 \ AND TI.modificationDate > ? jtimer.storage.select.removed.tasktime=SELECT TA.*, sum(TI.duration) AS totalduration \ @@ -117,6 +119,9 @@ jtimer.storage.delete.alarm.withid=DELETE FROM taskalarm WHERE alarmId = ? ### #UPDATE +jtimer.storage.update.task.path=UPDATE task \ + SET path=? \ + WHERE taskId = ? jtimer.storage.update.task.withid=UPDATE task SET name=?, parent=?, hidden=?, note=?, modificationDate=?, removed=? \ WHERE taskId = ? jtimer.storage.update.time.withid=UPDATE tasktime SET date=?, duration=?, modificationDate=?, removed = ? \