Skip to content

Commit 51f990c

Browse files
committed
Add a context object onto Bind to provide access to DataSource for later extensions to the Bind class.
1 parent 2aa755f commit 51f990c

File tree

20 files changed

+74
-78
lines changed

20 files changed

+74
-78
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Add the required dependencies to your project:
1717

1818
```kotlin
1919
dependencies {
20-
implementation("com.caplin.integration:datasourcex-<java-flow|kotlin|reactivestreams>:<version>")
20+
implementation("com.caplin.integration.datasourcex:datasourcex-<java-flow|kotlin|reactivestreams>:<version>")
2121
}
2222
```
2323

@@ -40,7 +40,7 @@ Add the following dependency to your project:
4040

4141
```kotlin
4242
dependencies {
43-
implementation("com.caplin.integration:spring-boot-starter-datasource:<version>")
43+
implementation("com.caplin.integration.datasourcex:spring-boot-starter-datasource:<version>")
4444
}
4545
```
4646

buildSrc/build.gradle.kts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,14 @@ plugins {
44
}
55

66
dependencies {
7+
implementation(libs.kotlinpoet)
8+
79
implementation(libs.ktfmt.plugin)
810
implementation(libs.dokka.plugin)
911
implementation(libs.detekt.plugin)
1012
implementation(libs.binary.compatibility.validator.plugin)
1113
implementation(libs.kover.plugin)
1214
implementation(libs.kotlin.plugin)
1315
implementation(libs.kotlin.allopen.plugin)
14-
implementation(libs.kotlinpoet.plugin)
1516
implementation(libs.vanniktech.maven.publish.plugin)
1617
}

examples/spring-kotlin-chat/build.gradle.kts

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,4 @@ dependencies {
1212
implementation("org.springframework.boot:spring-boot-starter")
1313
}
1414

15-
dokka {
16-
dokkaSourceSets.configureEach {
17-
includes.from("README.md")
18-
}
19-
}
15+
dokka { dokkaSourceSets.configureEach { includes.from("README.md") } }

gradle/libs.versions.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ springBoot = "3.5.0"
33
kotlin = "1.9.25" # Keep in sync with Spring - https://docs.spring.io/spring-boot/docs/current/reference/html/dependency-versions.html
44
kotlinCollectionsImmutable = "0.3.8"
55
jsonPatch = "1.13"
6+
kotlinpoet = "2.2.0"
67

78
# Caplin Dependencies
89
datasource = "8.0.6-1430-651ec808"
@@ -15,18 +16,18 @@ mockk = "1.13.14"
1516
# Spring BOM should manage other dependencies versions.
1617

1718
# Plugins
18-
ktfmt-plugin = "0.21.0"
19+
ktfmt-plugin = "0.23.0"
1920
dokka-plugin = "2.0.0"
2021
binary-compatibility-validator-plugin = "0.17.0"
2122
kover-plugin = "0.9.1"
22-
kotlinpoet-plugin = "2.1.0"
2323
detekt-plugin = "1.23.8"
2424
vanniktech-maven-publish-plugin = "0.31.0"
2525

2626

2727
[libraries]
2828
kotlin-collections-immutable = { module = "org.jetbrains.kotlinx:kotlinx-collections-immutable", version.ref = "kotlinCollectionsImmutable" }
2929
json-patch = { module = "com.github.java-json-tools:json-patch", version.ref = "jsonPatch" }
30+
kotlinpoet = { module = "com.squareup:kotlinpoet", version.ref = "kotlinpoet" }
3031

3132
# Caplin Dependencies
3233
datasource = { module = "com.caplin.platform.integration.java:datasource", version.ref = "datasource" }
@@ -43,7 +44,6 @@ ktfmt-plugin = { module = "com.ncorti.ktfmt.gradle:plugin", version.ref = "ktfmt
4344
dokka-plugin = { module = "org.jetbrains.dokka:dokka-gradle-plugin", version.ref = "dokka-plugin" }
4445
binary-compatibility-validator-plugin = { module = "org.jetbrains.kotlinx:binary-compatibility-validator", version.ref = "binary-compatibility-validator-plugin" }
4546
kover-plugin = { module = "org.jetbrains.kotlinx.kover:org.jetbrains.kotlinx.kover.gradle.plugin", version.ref = "kover-plugin" }
46-
kotlinpoet-plugin = { module = "com.squareup:kotlinpoet", version.ref = "kotlinpoet-plugin" }
4747
kotlin-plugin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" }
4848
kotlin-allopen-plugin = { module = "org.jetbrains.kotlin.plugin.allopen:org.jetbrains.kotlin.plugin.allopen.gradle.plugin", version.ref = "kotlin" }
4949
vanniktech-maven-publish-plugin = { module = "com.vanniktech.maven.publish:com.vanniktech.maven.publish.gradle.plugin", version.ref = "vanniktech-maven-publish-plugin"}

reactive/api/api/datasourcex-reactive-api.api

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,10 @@ public final class com/caplin/integration/datasourcex/reactive/api/ActiveContain
5050
public final fun setRowRecordType (Lcom/caplin/integration/datasourcex/reactive/api/RecordType;)V
5151
}
5252

53+
public abstract interface class com/caplin/integration/datasourcex/reactive/api/BindContext {
54+
public abstract fun getDataSource ()Lcom/caplin/datasource/DataSource;
55+
}
56+
5357
public abstract interface annotation class com/caplin/integration/datasourcex/reactive/api/BindMarker : java/lang/annotation/Annotation {
5458
}
5559

reactive/api/build.gradle.kts

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
plugins {
2-
`common-library`
3-
}
1+
plugins { `common-library` }
42

53
description = "Common public API for Reactive DataSource extensions"
64

@@ -18,12 +16,6 @@ dependencies {
1816
testImplementation(libs.turbine)
1917
}
2018

21-
apiValidation {
22-
ignoredPackages.add("com.caplin.integration.datasourcex.reactive.internal")
23-
}
19+
apiValidation { ignoredPackages.add("com.caplin.integration.datasourcex.reactive.internal") }
2420

25-
dokka {
26-
dokkaSourceSets.configureEach {
27-
includes.from("README.md")
28-
}
29-
}
21+
dokka { dokkaSourceSets.configureEach { includes.from("README.md") } }
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package com.caplin.integration.datasourcex.reactive.api
2+
3+
import com.caplin.datasource.DataSource
4+
5+
interface BindContext {
6+
/** The [DataSource] that is currently being bound to. */
7+
val dataSource: DataSource
8+
}

reactive/core/build.gradle.kts

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
plugins {
2-
`common-library`
3-
}
1+
plugins { `common-library` }
42

53
description = "Common private implementation for Reactive DataSource extensions"
64

@@ -20,6 +18,4 @@ dependencies {
2018
testImplementation(libs.turbine)
2119
}
2220

23-
apiValidation {
24-
ignoredPackages.add("com.caplin.integration.datasourcex.reactive.core")
25-
}
21+
apiValidation { ignoredPackages.add("com.caplin.integration.datasourcex.reactive.core") }

reactive/core/src/main/kotlin/com/caplin/integration/datasourcex/reactive/core/Binder.kt

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -67,10 +67,7 @@ import kotlinx.coroutines.launch
6767
import kotlinx.coroutines.selects.whileSelect
6868

6969
class Binder
70-
private constructor(
71-
private val dataSource: ScopedDataSource,
72-
private val serviceInfo: ServiceInfo?
73-
) {
70+
private constructor(val dataSource: ScopedDataSource, private val serviceInfo: ServiceInfo?) {
7471

7572
constructor(dataSource: ScopedDataSource) : this(dataSource, null)
7673

reactive/java-flow/api/datasourcex-java-flow.api

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ public final class com/caplin/integration/datasourcex/reactive/java/Bind {
88
public final synthetic fun broadcast (Lkotlin/jvm/functions/Function1;)V
99
public final fun channel (Ljava/util/function/Consumer;)V
1010
public final synthetic fun channel (Lkotlin/jvm/functions/Function1;)V
11+
public final fun getContext ()Lcom/caplin/integration/datasourcex/reactive/api/BindContext;
1112
public final fun to (Ljava/lang/String;Ljava/util/function/Consumer;Ljava/util/function/Consumer;)V
1213
public final synthetic fun to (Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)V
1314
public static synthetic fun to$default (Lcom/caplin/integration/datasourcex/reactive/java/Bind;Ljava/lang/String;Ljava/util/function/Consumer;Ljava/util/function/Consumer;ILjava/lang/Object;)V

0 commit comments

Comments
 (0)