diff --git a/lib/compile/jar/jdb-util-1.1.jar b/lib/compile/jar/jdb-util-1.1.jar deleted file mode 100644 index 94962af..0000000 Binary files a/lib/compile/jar/jdb-util-1.1.jar and /dev/null differ diff --git a/lib/compile/jar/jdb-util-2.0.jar b/lib/compile/jar/jdb-util-2.0.jar new file mode 100644 index 0000000..b82c989 Binary files /dev/null and b/lib/compile/jar/jdb-util-2.0.jar differ diff --git a/lib/runtime/jar/jdb-util-1.1.jar b/lib/runtime/jar/jdb-util-1.1.jar deleted file mode 100644 index 94962af..0000000 Binary files a/lib/runtime/jar/jdb-util-1.1.jar and /dev/null differ diff --git a/lib/runtime/jar/jdb-util-2.0.jar b/lib/runtime/jar/jdb-util-2.0.jar new file mode 100644 index 0000000..b82c989 Binary files /dev/null and b/lib/runtime/jar/jdb-util-2.0.jar differ diff --git a/project.properties b/project.properties index 734725f..dfd6a49 100644 --- a/project.properties +++ b/project.properties @@ -1,5 +1,5 @@ -#Fri, 09 Aug 2013 11:36:19 -0500 +#Fri, 13 Sep 2013 08:25:17 -0500 name=timestamper-lib -version=1.2 +version=1.3 lib.local=true -build.number=1 +build.number=10 diff --git a/release/timestamper-lib-1.2.jar b/release/timestamper-lib-1.2.jar deleted file mode 100644 index 8948848..0000000 Binary files a/release/timestamper-lib-1.2.jar and /dev/null differ diff --git a/release/timestamper-lib-1.3.jar b/release/timestamper-lib-1.3.jar new file mode 100644 index 0000000..a5961a0 Binary files /dev/null and b/release/timestamper-lib-1.3.jar differ diff --git a/src/main/com/jdblabs/timestamper/core/JDBLabsWebTimelineSource.groovy b/src/main/com/jdblabs/timestamper/core/JDBLabsWebTimelineSource.groovy index 05f2be1..f457476 100644 --- a/src/main/com/jdblabs/timestamper/core/JDBLabsWebTimelineSource.groovy +++ b/src/main/com/jdblabs/timestamper/core/JDBLabsWebTimelineSource.groovy @@ -153,7 +153,7 @@ public class JDBLabsWebTimelineSource extends TimelineSource { requestContentType = JSON body = entryBody - response.success = { entryHashes.put(fullHash(entry), entry.id) } + response.success = { entryHashes.put(fullHash(entry), entry.id ?: 0) } } } } diff --git a/src/main/com/jdblabs/timestamper/core/SyncTarget.java b/src/main/com/jdblabs/timestamper/core/SyncTarget.java index 6ec779e..d31f412 100644 --- a/src/main/com/jdblabs/timestamper/core/SyncTarget.java +++ b/src/main/com/jdblabs/timestamper/core/SyncTarget.java @@ -91,11 +91,19 @@ public class SyncTarget { remoteTimeline.addAll(diffFromLocal); syncPerformed = true; } + + // try to persist the updated remote timeline + SyncTarget.this.source.persist(remoteTimeline); } return syncPerformed; } + public void shutdown() { + syncTimer.cancel(); + syncTimer.purge(); + } + public String getName() { return name; } public TimelineSource getSource() { return source; } diff --git a/src/main/com/jdblabs/timestamper/core/TimelineProperties.java b/src/main/com/jdblabs/timestamper/core/TimelineProperties.java index b4fb0b9..96bb507 100644 --- a/src/main/com/jdblabs/timestamper/core/TimelineProperties.java +++ b/src/main/com/jdblabs/timestamper/core/TimelineProperties.java @@ -123,9 +123,6 @@ public class TimelineProperties { timeline = timelineSource.read(); // search keys for remote timeline entries - // TODO: this code will add a new sync object for every remote target - // property, regardless of whether the SyncTarget for that remote URI - // already exists for (Object keyObj : config.keySet()) { if (!(keyObj instanceof String)) continue; @@ -138,6 +135,14 @@ public class TimelineProperties { if (!m.matches()) continue; stName = m.group(1); + + // skip if we have already setup this remote sync + boolean stExists = false; + for (SyncTarget target : syncTargets) + if (target.getName().equals(stName)) + stExists = true; + if (stExists) continue; + remoteBase = REMOTE_TIMELINE_BASE + stName; strURI = (String) config.getProperty(remoteBase + ".uri", "");