From fe6b67c51fe3d256ba1c6353e73c64e703f5d2cc Mon Sep 17 00:00:00 2001 From: funyin Date: Sun, 3 Dec 2023 05:39:29 +0100 Subject: [PATCH 1/3] extracted driver dependencies --- .github/workflows/deploy-docs.yml | 2 +- build.gradle.kts | 2 +- example/app/build.gradle.kts | 9 +++------ example/app/src/main/kotlin/example/App.kt | 12 +++++------- src/jvmMain/kotlin/kronos/Kronos.kt | 11 +++++++---- src/jvmTest/kotlin/kronos/TestDataProvider.kt | 9 ++------- 6 files changed, 19 insertions(+), 26 deletions(-) diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml index a5e90e4..fbc6583 100644 --- a/.github/workflows/deploy-docs.yml +++ b/.github/workflows/deploy-docs.yml @@ -30,5 +30,5 @@ jobs: git fetch origin gh-pages --depth=1 git config user.name ci-bot git config user.email ci-bot@example.com - mike deploy --push --update-aliases 0.0.2 latest + mike deploy --push --update-aliases 0.0.3 latest mike set-default --push latest diff --git a/build.gradle.kts b/build.gradle.kts index 186449b..3defd65 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -9,7 +9,7 @@ plugins { group = "com.funyinkash" //version = "0.0.1-SNAPSHOT" -version = "0.0.2" +version = "0.0.3" repositories { mavenCentral() diff --git a/example/app/build.gradle.kts b/example/app/build.gradle.kts index 2fdd779..82c1c68 100644 --- a/example/app/build.gradle.kts +++ b/example/app/build.gradle.kts @@ -10,20 +10,17 @@ repositories { // maven { // url = uri("https://s01.oss.sonatype.org/content/repositories/snapshots/") // } -// mavenLocal() + mavenLocal() } dependencies { - implementation("com.funyinkash:kronos:0.0.2") + implementation("com.funyinkash:kronos:0.0.3") // implementation(project(":kronos")) testImplementation("org.jetbrains.kotlin:kotlin-test-junit5") testImplementation("org.junit.jupiter:junit-jupiter-engine:5.9.2") testRuntimeOnly("org.junit.platform:junit-platform-launcher") implementation("com.google.guava:guava:31.1-jre") - implementation("org.mongodb:mongodb-driver-kotlin-coroutine:4.11.1") - implementation("io.lettuce:lettuce-core:6.3.0.RELEASE") - implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.0") - implementation("org.mongodb:bson-kotlinx:4.11.1") + implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.0") } java { diff --git a/example/app/src/main/kotlin/example/App.kt b/example/app/src/main/kotlin/example/App.kt index f217444..a943816 100644 --- a/example/app/src/main/kotlin/example/App.kt +++ b/example/app/src/main/kotlin/example/App.kt @@ -1,18 +1,17 @@ package example -import com.mongodb.kotlin.client.coroutine.MongoClient -import io.lettuce.core.RedisClient + import kotlinx.coroutines.delay import kronos.* import java.time.Instant suspend fun main() { - val mongoClient = MongoClient.create("mongodb://localhost:27017") - val redisClient = RedisClient.create("redis://localhost:6379") - val connection = redisClient.connect() //Initialize - Kronos.init(mongoClient = mongoClient, redisConnection = connection) + Kronos.init( + mongoConnectionString = "mongodb://localhost:27017", + redisConnectionString = "redis://localhost:6379" + ) //Register a Job Kronos.register(SayHello) //Schedule a one time job @@ -47,7 +46,6 @@ suspend fun main() { jobId?.let { Kronos.dropJob(SayHello.name) } Kronos.dropAll() - delay(1000 * 60 * 7) } diff --git a/src/jvmMain/kotlin/kronos/Kronos.kt b/src/jvmMain/kotlin/kronos/Kronos.kt index bda4d61..36f92a0 100644 --- a/src/jvmMain/kotlin/kronos/Kronos.kt +++ b/src/jvmMain/kotlin/kronos/Kronos.kt @@ -6,6 +6,7 @@ import com.mongodb.client.model.Projections import com.mongodb.kotlin.client.coroutine.FindFlow import com.mongodb.kotlin.client.coroutine.MongoClient import io.lettuce.core.ExperimentalLettuceCoroutinesApi +import io.lettuce.core.RedisClient import io.lettuce.core.api.StatefulRedisConnection import io.lettuce.core.api.coroutines import kotlinx.coroutines.* @@ -43,16 +44,18 @@ object Kronos { * @throws IllegalStateException on attempting to initialize a second time */ fun init( - mongoClient: MongoClient, - redisConnection: StatefulRedisConnection, + mongoConnectionString: String, + redisConnectionString: String, dispatcher: CoroutineDispatcher = Dispatchers.IO, jobsDbName: String = "jobsDb", ) { if (this::coroutineScope.isInitialized) throw IllegalStateException("Kronos already initialized") + + this.jobsDbName = jobsDbName - this.mongoClient = mongoClient - this.redisConnection = redisConnection + this.mongoClient = MongoClient.create(mongoConnectionString) + this.redisConnection = RedisClient.create(redisConnectionString).connect() coroutineScope = CoroutineScope(dispatcher) //runner is not started for test dispatchers //so I can control the curren time passed to the runner diff --git a/src/jvmTest/kotlin/kronos/TestDataProvider.kt b/src/jvmTest/kotlin/kronos/TestDataProvider.kt index ef55bc3..9f31186 100644 --- a/src/jvmTest/kotlin/kronos/TestDataProvider.kt +++ b/src/jvmTest/kotlin/kronos/TestDataProvider.kt @@ -2,7 +2,6 @@ package kronos import com.mongodb.kotlin.client.coroutine.MongoClient import com.redis.testcontainers.RedisContainer -import com.redis.testcontainers.RedisStackContainer import io.lettuce.core.RedisClient import io.mockk.spyk import kotlinx.coroutines.CoroutineDispatcher @@ -43,13 +42,9 @@ object TestDataProvider { private lateinit var redisConnectionString: String fun initKronos(dispatcher: CoroutineDispatcher) { - val mongoClient = MongoClient.create(mongoConnectionString) - - val redisClient = RedisClient.create(redisConnectionString) - val redisConnection = redisClient.connect() Kronos.init( - mongoClient = mongoClient, - redisConnection = redisConnection, + mongoConnectionString = mongoConnectionString, + redisConnectionString = redisConnectionString, dispatcher = dispatcher, jobsDbName = "testJobsDb" ) From cce1e422e5bcdbb80a39cb7d90be0b7f2816620b Mon Sep 17 00:00:00 2001 From: funyin Date: Sun, 3 Dec 2023 05:46:28 +0100 Subject: [PATCH 2/3] added change log --- CHANGELOG.md | 6 ++++++ README.md | 8 ++++---- docs/index.md | 9 ++++----- docs/installation.md | 11 ++++------- 4 files changed, 18 insertions(+), 16 deletions(-) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..90532d9 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,6 @@ +## 0.0.3 - Dec 3 +- Changed initialization to only collect connection string +- Updated Docs + +## 0.0.2 - Dec 2 +- Initial release \ No newline at end of file diff --git a/README.md b/README.md index a2f9331..7fa35ab 100644 --- a/README.md +++ b/README.md @@ -12,12 +12,12 @@ The persistent job scheduling library for kotlin multiplatform. ```kotlin suspend fun main() { - val mongoClient = MongoClient.create("mongodb://localhost:27017") - val redisClient = RedisClient.create("redis://localhost:6379") - val connection = redisClient.connect() //Initialize - Kronos.init(mongoClient = mongoClient, redisConnection = connection) + Kronos.init( + mongoConnectionString = "mongodb://localhost:27017", + redisConnectionString = "redis://localhost:6379" + ) //Register a Job Kronos.register(SayHello) //Schedule a one time job diff --git a/docs/index.md b/docs/index.md index d58e511..3bbef49 100644 --- a/docs/index.md +++ b/docs/index.md @@ -6,12 +6,11 @@ Welcome to Kronos. The persistent job scheduling library for kotlin multiplatfor ```kotlin suspend fun main() { - val mongoClient = MongoClient.create("mongodb://localhost:27017") - val redisClient = RedisClient.create("redis://localhost:6379") - val connection = redisClient.connect() - //Initialize - Kronos.init(mongoClient = mongoClient, redisConnection = connection) + Kronos.init( + mongoConnectionString = "mongodb://localhost:27017", + redisConnectionString = "redis://localhost:6379" + ) //Register a Job Kronos.register(SayHello) //Schedule a one time job diff --git a/docs/installation.md b/docs/installation.md index be76f96..2c8f729 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -19,7 +19,7 @@ Kronos is pushed to MavenCentral repository as kotlin multiplatform library. Add dependencies: ```kotlin - implementation("com.funyinkash:kronos:0.0.2") + implementation("com.funyinkash:kronos:$latest") ``` === "Gradle" @@ -35,7 +35,7 @@ Kronos is pushed to MavenCentral repository as kotlin multiplatform library. Add dependencies (you can also add other modules that you need): ```groovy - implementation 'com.funyinkash:kronos:0.0.2' + implementation 'com.funyinkash:kronos:$latest' ``` === "Maven" @@ -59,7 +59,7 @@ Kronos is pushed to MavenCentral repository as kotlin multiplatform library. com.funyinkash kronos - 0.0.2 + $latest ``` @@ -68,10 +68,7 @@ Specific dependencies. The Multiplatform dependency above should be sufficient, === "jvm" ```kotlin - implementation("com.funyinkash:kronos-jvm:0.0.2") - //supporting libraries that are required to initialize kronos - implementation("org.mongodb:mongodb-driver-kotlin-coroutine:4.11.1") - implementation("io.lettuce:lettuce-core:6.3.0.RELEASE") + implementation("com.funyinkash:kronos-jvm:$latest") ``` === "js" From 58a3af151b4d0b94c8ecc22acb140f878d11dba4 Mon Sep 17 00:00:00 2001 From: funyin Date: Sun, 3 Dec 2023 05:48:52 +0100 Subject: [PATCH 3/3] updated docs for version 0.0.3 --- site/404.html | 34 ++++++++++++------------- site/community/contributing/index.html | 8 +++--- site/community/index.html | 8 +++--- site/examples/index.html | 8 +++--- site/index.html | 17 ++++++------- site/installation/index.html | 19 ++++++-------- site/job/index.html | 8 +++--- site/job/runner/index.html | 8 +++--- site/quick_start/index.html | 8 +++--- site/roadmap/index.html | 8 +++--- site/schedule/index.html | 8 +++--- site/schedule/periodic/index.html | 8 +++--- site/search/search_index.json | 2 +- site/sitemap.xml | 24 ++++++++--------- site/sitemap.xml.gz | Bin 313 -> 313 bytes site/why_how/index.html | 8 +++--- 16 files changed, 86 insertions(+), 90 deletions(-) diff --git a/site/404.html b/site/404.html index a60d1e9..c20582b 100644 --- a/site/404.html +++ b/site/404.html @@ -11,7 +11,7 @@ - + @@ -20,10 +20,10 @@ - + - + @@ -42,7 +42,7 @@ - + @@ -92,7 +92,7 @@