This is an automated email from the git hooks/post-receive script. New commit to branch feature/sync in repository jtimer. See https://gitlab.nuiton.org/chorem/jtimer.git commit 702848b51ef0a38618eaee2a49ce893f6d5c8e0e Author: servantie <servantie.c@gmail.com> Date: Mon Jul 11 12:04:33 2016 +0200 changed the syncatstartup boolean to be in the SyncInfo and not in the Task --- .../java/org/chorem/jtimer/data/TimerCore.java | 8 +++--- .../org/chorem/jtimer/data/TimerDataManager.java | 4 +-- .../java/org/chorem/jtimer/entities/SyncInfo.java | 18 +++++++++++++ .../java/org/chorem/jtimer/entities/TimerTask.java | 29 ++++++++++++++------ .../chorem/jtimer/io/GTimerIncrementalSaver.java | 20 +++----------- .../chorem/jtimer/io/TimerTaskSynchronizer.java | 31 +++++++++++++++------- 6 files changed, 70 insertions(+), 40 deletions(-) diff --git a/src/main/java/org/chorem/jtimer/data/TimerCore.java b/src/main/java/org/chorem/jtimer/data/TimerCore.java index fd2ea8f..21c5b8d 100644 --- a/src/main/java/org/chorem/jtimer/data/TimerCore.java +++ b/src/main/java/org/chorem/jtimer/data/TimerCore.java @@ -34,6 +34,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.chorem.jtimer.JTimer; import org.chorem.jtimer.JTimerFactory; +import org.chorem.jtimer.entities.SyncInfo; import org.chorem.jtimer.entities.TimerProject; import org.chorem.jtimer.entities.TimerTask; import org.chorem.jtimer.io.DataLockingException; @@ -208,9 +209,10 @@ public class TimerCore { if (log.isDebugEnabled()) { log.debug("Adding tasks that were not synchronized at last jTimer exit"); } - - if (task.getIsSyncAtStartUp()) { - synchronizer.addTask(task); + for (SyncInfo sync : task.getSynchronizingInfoList()) { + if (sync.getIsToSyncAtStartUp()) { + synchronizer.addTask(task); + } } task.getSubTasks().forEach(this::addTaskToSync); } diff --git a/src/main/java/org/chorem/jtimer/data/TimerDataManager.java b/src/main/java/org/chorem/jtimer/data/TimerDataManager.java index bf85b24..ab4ddf0 100644 --- a/src/main/java/org/chorem/jtimer/data/TimerDataManager.java +++ b/src/main/java/org/chorem/jtimer/data/TimerDataManager.java @@ -645,7 +645,7 @@ public class TimerDataManager { public void syncInfoChanged(TimerTask task, SyncInfo info) { task.addSyncInfo(info); - task.setSyncAtStartUp(true); + task.setSyncAtStartUp(true, info.getSyncURL()); for (DataEventListener dataEventListener : dataEventListeners) { dataEventListener.syncInfoChanged(task, info); @@ -678,7 +678,7 @@ public class TimerDataManager { * @param syncInfo */ public void taskSynchronized(TimerTask task, SyncInfo syncInfo) { - task.setSyncAtStartUp(false); + task.setSyncAtStartUp(false, syncInfo.getSyncURL()); for (DataEventListener dataEventListener: dataEventListeners) { dataEventListener.taskSynchronized(task, syncInfo); diff --git a/src/main/java/org/chorem/jtimer/entities/SyncInfo.java b/src/main/java/org/chorem/jtimer/entities/SyncInfo.java index 4b7720c..e20edbe 100644 --- a/src/main/java/org/chorem/jtimer/entities/SyncInfo.java +++ b/src/main/java/org/chorem/jtimer/entities/SyncInfo.java @@ -22,6 +22,9 @@ public class SyncInfo { /** true if annotations included */ protected boolean isWithAnnotations; + /** true if the synchronization needs to be done at next start */ + protected boolean isToSyncAtStartUp; + /** * Empty constructor (necessary for yaml) */ @@ -40,6 +43,7 @@ public class SyncInfo { this.lastSync = lastSync; this.isActiveSync = isActiveSync; this.isWithAnnotations = isWithAnnotations; + this.isToSyncAtStartUp = true; } /** @@ -52,6 +56,7 @@ public class SyncInfo { this.isActiveSync = true; this.isWithAnnotations = false; this.lastSync = new Date(0); + this.isToSyncAtStartUp = true; } /** @@ -116,6 +121,19 @@ public class SyncInfo { } /** + * Gets the isToSyncAtStartUp + * @return a boolean + */ + public boolean getIsToSyncAtStartUp() {return isToSyncAtStartUp; } + + /** + * Sets the isToSyncAtStartUp + * @param isToSyncAtStartUp a boolean + */ + public void setIsToSyncAtStartUp(boolean isToSyncAtStartUp) { this.isToSyncAtStartUp = isToSyncAtStartUp; } + + + /** * Overrides the toString() method to return the url (for combobox) */ @Override diff --git a/src/main/java/org/chorem/jtimer/entities/TimerTask.java b/src/main/java/org/chorem/jtimer/entities/TimerTask.java index a1d3707..dab5a27 100644 --- a/src/main/java/org/chorem/jtimer/entities/TimerTask.java +++ b/src/main/java/org/chorem/jtimer/entities/TimerTask.java @@ -92,12 +92,6 @@ public class TimerTask implements Cloneable, * Synchronization Info */ protected List<SyncInfo> synchronisingInfoList; - - /** - * Boolean to keep track of tasks not synced before jtimer exit - */ - protected boolean syncAtStartUp; - /** * Constructor. */ @@ -383,14 +377,33 @@ public class TimerTask implements Cloneable, /** * Sets the sync at startup * @param syncAtStart boolean + * @param url the url of the syncInfo */ - public void setSyncAtStartUp(boolean syncAtStart) { this.syncAtStartUp = syncAtStart;} + public void setSyncAtStartUp(boolean syncAtStart, String url) { + if(!synchronisingInfoList.isEmpty()) { + for (SyncInfo sync : synchronisingInfoList) { + if (sync.syncURL.equals(url)) { + sync.setIsToSyncAtStartUp(syncAtStart); + } + } + } + } /** * Get the sync at startup * @return boolean */ - public boolean getIsSyncAtStartUp() { return this.syncAtStartUp;} + public boolean getIsSyncAtStartUp(String url) { + boolean syncsAtStart = false; + if(!synchronisingInfoList.isEmpty()) { + for (SyncInfo sync : synchronisingInfoList) { + if (sync.syncURL.equals(url)) { + syncsAtStart = sync.getIsToSyncAtStartUp(); + } + } + } + return syncsAtStart; + } /** * Add task's subtask. diff --git a/src/main/java/org/chorem/jtimer/io/GTimerIncrementalSaver.java b/src/main/java/org/chorem/jtimer/io/GTimerIncrementalSaver.java index 7129012..22c2680 100644 --- a/src/main/java/org/chorem/jtimer/io/GTimerIncrementalSaver.java +++ b/src/main/java/org/chorem/jtimer/io/GTimerIncrementalSaver.java @@ -604,14 +604,6 @@ public class GTimerIncrementalSaver extends AbstractSaver implements Saver, } try (BufferedReader parseIn = new BufferedReader(new FileReader(syncTaskFile))) { - //get first line to know if the tasks has to be synced at the start - String first_line = parseIn.readLine().trim(); - if ("SyncAtStartUp : true".equals(first_line)) { - task.setSyncAtStartUp(true); - } - else { - task.setSyncAtStartUp(false); - } //make a yaml object for the syncInfo Yaml yaml = new Yaml(); for (Object obj : yaml.loadAll(parseIn)) { @@ -1126,13 +1118,7 @@ public class GTimerIncrementalSaver extends AbstractSaver implements Saver, // first make backup backupfile = makeBackupFile(synchronizationTaskFile); - //add on first line if sync at startup is needed - if (task.getIsSyncAtStartUp()) { - out.write("SyncAtStartUp : true\n"); - } - else { - out.write("SyncAtStartUp : false\n"); - } + //use Yaml to write it with pretty flow to make it easier to read DumperOptions dumper = new DumperOptions(); dumper.setPrettyFlow(true); @@ -1365,7 +1351,6 @@ public class GTimerIncrementalSaver extends AbstractSaver implements Saver, // si le merge a merger les annotations par // exemple. // Potentiellement aussi lors d'un move. - task.setSyncAtStartUp(true); saveTaskAnnotation(task); saveAlerts(task); saveSynchronizationInfo(task); @@ -1387,6 +1372,7 @@ public class GTimerIncrementalSaver extends AbstractSaver implements Saver, // en cours d'execution if (!runningTasks.contains(task)) { saveTask(task); + saveSynchronizationInfo(task); } } @@ -1448,7 +1434,7 @@ public class GTimerIncrementalSaver extends AbstractSaver implements Saver, // remove task from running task and force save runningTasks.remove(task); saveTask(task); - task.setSyncAtStartUp(true); + saveSynchronizationInfo(task); } @Override diff --git a/src/main/java/org/chorem/jtimer/io/TimerTaskSynchronizer.java b/src/main/java/org/chorem/jtimer/io/TimerTaskSynchronizer.java index aa0ac6d..9157890 100644 --- a/src/main/java/org/chorem/jtimer/io/TimerTaskSynchronizer.java +++ b/src/main/java/org/chorem/jtimer/io/TimerTaskSynchronizer.java @@ -142,7 +142,7 @@ public class TimerTaskSynchronizer implements DataEventListener { Calendar cal = Calendar.getInstance(); task.setLastSync(cal.getTime(), syncURL); //it doesn't have to be synced at startup sync it succeeded - task.setSyncAtStartUp(false); + task.setSyncAtStartUp(false, syncURL); } } } @@ -211,9 +211,12 @@ public class TimerTaskSynchronizer implements DataEventListener { //add it only if the URL is not empty if ((!task.getSynchronizingInfoList().isEmpty()) && (!task.getSynchronizingURLList().isEmpty())) { tasksToSync.add(task); - task.setSyncAtStartUp(true); } } + //set the syncAtStartup to true for all syncInfo + for (SyncInfo info : task.getSynchronizingInfoList()) { + info.setIsToSyncAtStartUp(true); + } } /** @@ -239,11 +242,13 @@ public class TimerTaskSynchronizer implements DataEventListener { //add it only if the URL is not empty if ((task.getSynchronizingURLList() != null) && !(task.getSynchronizingURLList().isEmpty())) { tasksToSync.add(task); - task.setSyncAtStartUp(true); - log.info(task.getName() + " " + task.getIsSyncAtStartUp()+ " time set"); } } + //set the syncAtStartup to true for all syncInfo + for (SyncInfo info : task.getSynchronizingInfoList()) { + info.setIsToSyncAtStartUp(true); + } } /** @@ -256,9 +261,12 @@ public class TimerTaskSynchronizer implements DataEventListener { //add it only if the URL is not empty if ((task.getSynchronizingURLList() != null) && !(task.getSynchronizingURLList().isEmpty())) { tasksToSync.add(task); - task.setSyncAtStartUp(true); } } + //set the syncAtStartup to true for all syncInfo + for (SyncInfo info : task.getSynchronizingInfoList()) { + info.setIsToSyncAtStartUp(true); + } } /** @@ -272,24 +280,27 @@ public class TimerTaskSynchronizer implements DataEventListener { if ((task.getSynchronizingURLList() != null) && !(task.getSynchronizingURLList().isEmpty())) { tasksToSync.add(task); } - task.setSyncAtStartUp(true); + } + //set the syncAtStartup to true for all syncInfo + for (SyncInfo info : task.getSynchronizingInfoList()) { + info.setIsToSyncAtStartUp(true); } } /** * When the syncInfo is changed, add the task to sync list * @param task the task to sync - * @param syncURL the url to sync on (a String) + * @param info the url to sync on (a String) */ @Override - public void syncInfoChanged(TimerTask task, SyncInfo syncURL) { + public void syncInfoChanged(TimerTask task, SyncInfo info) { if (!tasksToSync.contains(task)) { //add it only if the URL is not empty if ((task.getSynchronizingURLList() != null) && !(task.getSynchronizingURLList().isEmpty())) { tasksToSync.add(task); } } - task.setSyncAtStartUp(true); + task.setSyncAtStartUp(true, info.getSyncURL()); } /** @@ -299,6 +310,6 @@ public class TimerTaskSynchronizer implements DataEventListener { */ @Override public void taskSynchronized(TimerTask task, SyncInfo info) { - task.setSyncAtStartUp(false); + task.setSyncAtStartUp(false, info.getSyncURL()); } } -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.