Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 8 additions & 2 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,15 @@ root = true

[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
end_of_line = lf
indent_style = space
indent_size = 4
max_line_length = 130
max_line_length = 130

[*.{yml,yaml,toml,json}]
indent_size = 2

[*.md]
trim_trailing_whitespace = false
4 changes: 2 additions & 2 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ updates:
- package-ecosystem: "gradle" # See documentation for possible values
directory: "/" # Location of package manifests
schedule:
interval: "weekly"
interval: "monthly"
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
interval: "monthly"
rebase-strategy: "disabled"
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

# kolbasa

Kolbasa is a small, efficient and capable Kotlin library to add PostgreSQL-based queues to your project.
**kolbasa** — a reliable message & job queue for Java & Kotlin, built on PostgreSQL. Use the database you already have — no Kafka, no RabbitMQ. Supports transactional sends, deduplication, delays, retries, dead-letter & archive queues, and batching.

## Features
* PostgreSQL as a persistent storage
Expand Down Expand Up @@ -35,14 +35,14 @@ version 10 and above.
## How to add Kolbasa into your project
### Gradle
```groovy
implementation "io.github.vgv:kolbasa:0.184.0"
implementation "io.github.vgv:kolbasa:0.198.0"
```
### Maven
```xml
<dependency>
<groupId>io.github.vgv</groupId>
<artifactId>kolbasa</artifactId>
<version>0.184.0</version>
<version>0.198.0</version>
</dependency>
```

Expand Down
47 changes: 23 additions & 24 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import org.jetbrains.kotlin.gradle.dsl.JvmDefaultMode
import org.jetbrains.kotlin.gradle.dsl.KotlinVersion

plugins {
java
alias(libs.plugins.kotlin.jvm)
signing
`maven-publish`
Expand Down Expand Up @@ -32,7 +31,6 @@ dependencies {
compileOnly(libs.opentelemetry.semconv)
compileOnly(libs.opentelemetry.instrumentation.api)
compileOnly(libs.opentelemetry.instrumentation.api.incubator)
// ---------------------------------------------------------------------------------

// Test
testImplementation(libs.junit.jupiter)
Expand All @@ -54,6 +52,7 @@ dependencies {
kotlin {
jvmToolchain(17)
compilerOptions {
// Pin to 1.9 so the published bytecode stays consumable by projects on older Kotlin compilers.
apiVersion = KotlinVersion.KOTLIN_1_9
languageVersion = KotlinVersion.KOTLIN_1_9
// We need JVM default methods for interfaces, but don't need the compatibility bridges
Expand Down Expand Up @@ -84,18 +83,18 @@ tasks.register<JavaExec>("example") {

// Unit tests settings
tasks.withType<Test> {
enableAssertions = true

// enable parallel tests execution
systemProperties["junit.jupiter.execution.parallel.enabled"] = true
systemProperties["junit.jupiter.execution.parallel.mode.default"] = "concurrent"

// JUnit settings
useJUnitPlatform {
enableAssertions = true
testLogging {
exceptionFormat = TestExceptionFormat.FULL
events = setOf(TestLogEvent.FAILED, TestLogEvent.SKIPPED)
showStandardStreams = false
}
useJUnitPlatform()

testLogging {
exceptionFormat = TestExceptionFormat.FULL
events = setOf(TestLogEvent.FAILED, TestLogEvent.SKIPPED)
showStandardStreams = false
}
}

Expand Down Expand Up @@ -185,8 +184,8 @@ tasks.withType<PublishToMavenRepository> {
tasks.register("printFinalReleaseNote") {
doLast {
printFinalReleaseNote(
groupId = "io.github.vgv",
artifactId = "kolbasa",
groupId = SettingsProvider.ARTIFACT_GROUP_ID,
artifactId = SettingsProvider.ARTIFACT_NAME,
sanitizedVersion = project.sanitizeVersion()
)
}
Expand All @@ -196,8 +195,8 @@ tasks.register("printFinalReleaseNote") {
tasks.register("printDevSnapshotReleaseNote") {
doLast {
printDevSnapshotReleaseNote(
groupId = "io.github.vgv",
artifactId = "kolbasa",
groupId = SettingsProvider.ARTIFACT_GROUP_ID,
artifactId = SettingsProvider.ARTIFACT_NAME,
sanitizedVersion = project.sanitizeVersion()
)
}
Expand All @@ -208,8 +207,8 @@ publishing {
publications {
create<MavenPublication>("mavenJava") {
from(components["java"])
groupId = "io.github.vgv"
artifactId = "kolbasa"
groupId = SettingsProvider.ARTIFACT_GROUP_ID
artifactId = SettingsProvider.ARTIFACT_NAME
version = project.sanitizeVersion()
versionMapping {
usage("java-api") {
Expand All @@ -221,7 +220,7 @@ publishing {
}
pom {
name.set("Kolbasa")
description.set("Kotlin library for PostgreSQL queues")
description.set("A reliable message & job queue for Java & Kotlin, built on PostgreSQL.")
url.set("https://github.com/vgv/kolbasa")
licenses {
license {
Expand Down Expand Up @@ -255,7 +254,7 @@ nexusPublishing {
repositories {
sonatype {
useStaging.set(!project.isSnapshotVersion())
packageGroup.set("io.github.vgv")
packageGroup.set(SettingsProvider.ARTIFACT_GROUP_ID)
username = settingsProvider.sonatypeUsername
password = settingsProvider.sonatypePassword
nexusUrl.set(uri("https://ossrh-staging-api.central.sonatype.com/service/local/"))
Expand Down Expand Up @@ -305,11 +304,8 @@ fun printFinalReleaseNote(groupId: String, artifactId: String, sanitizedVersion:
println("Discover on Maven Central:")
println(" https://repo1.maven.org/maven2/${groupId.replace('.', '/')}/$artifactId/")
println()
println("Edit or delete artifacts on OSS Nexus Repository Manager:")
println(" https://oss.sonatype.org/#nexus-search;gav~$groupId~~~~")
println()
println("Control staging repositories on OSS Nexus Repository Manager:")
println(" https://oss.sonatype.org/#stagingRepositories")
println("View on Central Portal:")
println(" https://central.sonatype.com/artifact/$groupId/$artifactId/$sanitizedVersion")
println()
println("========================================================")
println()
Expand Down Expand Up @@ -358,7 +354,10 @@ class SettingsProvider {
lazyMessage = { "Both $SONATYPE_USERNAME_PROPERTY and $SONATYPE_PASSWORD_PROPERTY environment variables must not be empty" }
)

private companion object {
companion object {
const val ARTIFACT_GROUP_ID = "io.github.vgv"
const val ARTIFACT_NAME = "kolbasa"

// it should be a so-called "ascii-armored in-memory PGP secret key"
private const val GPG_SIGNING_KEY_PROPERTY = "GPG_SIGNING_KEY"
private const val GPG_SIGNING_PASSWORD_PROPERTY = "GPG_SIGNING_PASSWORD"
Expand Down
6 changes: 3 additions & 3 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,15 @@ nexus = "2.0.0"

prometheus = "1.6.1"
opentelemetry = "1.62.0"
opentelemetry-instrumentation = "2.27.0"
opentelemetry-instrumentation-incubator = "2.27.0-alpha"
opentelemetry-instrumentation = "2.28.1"
opentelemetry-instrumentation-incubator = "2.28.1-alpha"
opentelemetry-semconv = "1.41.1"
hikaricp = "7.0.2"
postgresql = "42.7.11"

logback = "1.5.32"
testcontainers = "2.0.5"
junit = "6.0.3"
junit = "6.1.0"
mockk = "1.14.9"

[libraries]
Expand Down
1 change: 0 additions & 1 deletion settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,4 @@ pluginManagement {
gradlePluginPortal()
mavenCentral()
}

}