From 23f6afb4836baa7789b7ebf8d63ae447b30033fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Brage=20Skj=C3=B8nborg?= Date: Thu, 22 Jan 2026 18:32:18 +0100 Subject: [PATCH] Using my time for UTC --- src/main/kotlin/no/iktdev/eventi/MyTime.kt | 12 ++++++++++++ src/main/kotlin/no/iktdev/eventi/ZDS.kt | 4 ++-- .../eventi/events/EventPollerImplementation.kt | 3 ++- src/main/kotlin/no/iktdev/eventi/models/Metadata.kt | 3 ++- 4 files changed, 18 insertions(+), 4 deletions(-) create mode 100644 src/main/kotlin/no/iktdev/eventi/MyTime.kt diff --git a/src/main/kotlin/no/iktdev/eventi/MyTime.kt b/src/main/kotlin/no/iktdev/eventi/MyTime.kt new file mode 100644 index 0000000..ea04db0 --- /dev/null +++ b/src/main/kotlin/no/iktdev/eventi/MyTime.kt @@ -0,0 +1,12 @@ +package no.iktdev.eventi + +import java.time.Clock +import java.time.LocalDateTime + +object MyTime { + private val clock: Clock = Clock.systemUTC() + + @JvmStatic + fun UtcNow(): LocalDateTime = + LocalDateTime.now(clock) +} diff --git a/src/main/kotlin/no/iktdev/eventi/ZDS.kt b/src/main/kotlin/no/iktdev/eventi/ZDS.kt index e4bad2f..638a619 100644 --- a/src/main/kotlin/no/iktdev/eventi/ZDS.kt +++ b/src/main/kotlin/no/iktdev/eventi/ZDS.kt @@ -21,7 +21,7 @@ import java.time.format.DateTimeFormatter object ZDS { val gson = WGson.gson - fun Event.toPersisted(id: Long, persistedAt: LocalDateTime = LocalDateTime.now()): PersistedEvent? { + fun Event.toPersisted(id: Long, persistedAt: LocalDateTime = MyTime.UtcNow()): PersistedEvent? { val payloadJson = gson.toJson(this) val eventName = this::class.simpleName ?: run { throw IllegalStateException("Missing class name for event: $this") @@ -47,7 +47,7 @@ object ZDS { return gson.fromJson(data, clazz) } - fun Task.toPersisted(id: Long, status: TaskStatus = TaskStatus.Pending, persistedAt: LocalDateTime = LocalDateTime.now()): PersistedTask? { + fun Task.toPersisted(id: Long, status: TaskStatus = TaskStatus.Pending, persistedAt: LocalDateTime = MyTime.UtcNow()): PersistedTask? { val payloadJson = gson.toJson(this) val taskName = this::class.simpleName ?: run { throw IllegalStateException("Missing class name for task: $this") diff --git a/src/main/kotlin/no/iktdev/eventi/events/EventPollerImplementation.kt b/src/main/kotlin/no/iktdev/eventi/events/EventPollerImplementation.kt index c76dd2d..4668c3a 100644 --- a/src/main/kotlin/no/iktdev/eventi/events/EventPollerImplementation.kt +++ b/src/main/kotlin/no/iktdev/eventi/events/EventPollerImplementation.kt @@ -2,6 +2,7 @@ package no.iktdev.eventi.events import kotlinx.coroutines.delay import mu.KotlinLogging +import no.iktdev.eventi.MyTime import no.iktdev.eventi.ZDS.toEvent import no.iktdev.eventi.stores.EventStore import java.time.Duration @@ -33,7 +34,7 @@ abstract class EventPollerImplementation( } suspend fun pollOnce() { - val pollStartedAt = LocalDateTime.now() + val pollStartedAt = MyTime.UtcNow() log.debug { "Polling for new events" } val newPersisted = eventStore.getPersistedEventsAfter(lastSeenTime) diff --git a/src/main/kotlin/no/iktdev/eventi/models/Metadata.kt b/src/main/kotlin/no/iktdev/eventi/models/Metadata.kt index 79e762c..2e70dee 100644 --- a/src/main/kotlin/no/iktdev/eventi/models/Metadata.kt +++ b/src/main/kotlin/no/iktdev/eventi/models/Metadata.kt @@ -1,10 +1,11 @@ package no.iktdev.eventi.models +import no.iktdev.eventi.MyTime import java.time.LocalDateTime import java.util.UUID class Metadata { - val created: LocalDateTime = LocalDateTime.now() + val created: LocalDateTime = MyTime.UtcNow() var derivedFromId: Set? = null private set fun derivedFromEventId(vararg id: UUID) = apply {