diff --git a/buildSrc/src/main/kotlin/flamingock.publishing.gradle.kts b/buildSrc/src/main/kotlin/flamingock.publishing.gradle.kts index e3fff3606..98bbd8f3d 100644 --- a/buildSrc/src/main/kotlin/flamingock.publishing.gradle.kts +++ b/buildSrc/src/main/kotlin/flamingock.publishing.gradle.kts @@ -1,3 +1,6 @@ +import groovy.util.Node +import org.gradle.api.artifacts.ExternalModuleDependency + plugins { `maven-publish` id("org.jreleaser") @@ -11,6 +14,15 @@ fun Project.isLibraryModule(): Boolean = name !in setOf( val fromComponentPublishing = if (isBomModule()) "javaPlatform" else "java" val mavenPublication = if (isBomModule()) "communityBom" else "maven" +val externalCompileOnlyApiDependencies = provider { + configurations.findByName("compileOnlyApi") + ?.dependencies + ?.filterIsInstance() + ?.filter { dependency -> dependency.group != "io.flamingock" } + ?.map { dependency -> "${dependency.group}:${dependency.name}" } + ?.toSet() + ?: emptySet() +} publishing { publications { @@ -20,6 +32,31 @@ publishing { version = project.version.toString() from(components[fromComponentPublishing]) pom { + withXml { + val optionalDependencies = externalCompileOnlyApiDependencies.get() + val dependencies = (asNode().get("dependencies") as List<*>) + .filterIsInstance() + .flatMap { dependenciesNode -> + (dependenciesNode.get("dependency") as List<*>).filterIsInstance() + } + + dependencies + .filter { dependency -> + val groupId = (dependency.get("groupId") as List<*>) + .filterIsInstance() + .firstOrNull() + ?.text() + val artifactId = (dependency.get("artifactId") as List<*>) + .filterIsInstance() + .firstOrNull() + ?.text() + "$groupId:$artifactId" in optionalDependencies + } + .filter { dependency -> + (dependency.get("optional") as List<*>).isEmpty() + } + .forEach { dependency -> dependency.appendNode("optional", "true") } + } name.set(project.name) description.set("Flamingock is a Java library that brings Change-as-Code to your applications. It enables you to define and apply versioned, auditable changes to databases, event schemas, and external systems, ensuring safety, synchronization, and governance at runtime") url.set("https://www.flamingock.io") @@ -102,4 +139,4 @@ tasks.register("createStagingDeployFolder") { tasks.matching { it.name == "publish" }.configureEach { finalizedBy("createStagingDeployFolder") -} \ No newline at end of file +} diff --git a/cloud/flamingock-cloud/build.gradle.kts b/cloud/flamingock-cloud/build.gradle.kts index d2432c887..b955e7be3 100644 --- a/cloud/flamingock-cloud/build.gradle.kts +++ b/cloud/flamingock-cloud/build.gradle.kts @@ -1,9 +1,7 @@ -val coreApiVersion: String by extra dependencies { // Core api(project(":cloud:flamingock-cloud-api")) - implementation(project(":core:flamingock-core")) - api("io.flamingock:flamingock-core-api:${coreApiVersion}") + api(project(":core:flamingock-core")) // target systems api(project(":core:target-systems:flamingock-nontransactional-targetsystem")) api(project(":core:target-systems:flamingock-couchbase-targetsystem")) @@ -22,8 +20,10 @@ dependencies { api(project(":community:flamingock-mongodb-sync-auditstore")) api(project(":community:flamingock-sql-auditstore")) + implementation("org.apache.httpcomponents:httpclient:4.5.14") - // Test + // Test + testImplementation("com.github.tomakehurst:wiremock-jre8:2.35.2") testAnnotationProcessor(project(":core:flamingock-processor")) testImplementation(project(":utils:test-util")) testImplementation(project(":core:target-systems:flamingock-nontransactional-targetsystem")) diff --git a/community/flamingock-community-bom/build.gradle.kts b/community/flamingock-community-bom/build.gradle.kts index feb6aa159..ac83bbf7e 100644 --- a/community/flamingock-community-bom/build.gradle.kts +++ b/community/flamingock-community-bom/build.gradle.kts @@ -12,7 +12,6 @@ dependencies { api("io.flamingock:flamingock-community:${version}") api("io.flamingock:flamingock-mongodb-reactive-auditstore:$version") api("io.flamingock:flamingock-mongodb-sync-auditstore:$version") - api("io.flamingock:flamingock-mongodb-springdata-auditstore:${version}") api("io.flamingock:flamingock-couchbase-auditstore:$version") api("io.flamingock:flamingock-dynamodb-auditstore:$version") api("io.flamingock:flamingock-sql-auditstore:$version") diff --git a/community/flamingock-community/build.gradle.kts b/community/flamingock-community/build.gradle.kts index 16413ac7f..3c96e3053 100644 --- a/community/flamingock-community/build.gradle.kts +++ b/community/flamingock-community/build.gradle.kts @@ -1,8 +1,4 @@ -val coreApiVersion: String by extra dependencies { -// Core - api(project(":core:flamingock-core")) - api("io.flamingock:flamingock-core-api:${coreApiVersion}") // target systems api(project(":core:target-systems:flamingock-nontransactional-targetsystem")) api(project(":core:target-systems:flamingock-couchbase-targetsystem")) diff --git a/community/flamingock-dynamodb-auditstore/build.gradle.kts b/community/flamingock-dynamodb-auditstore/build.gradle.kts index 0ea7661ec..0a53d3bfe 100644 --- a/community/flamingock-dynamodb-auditstore/build.gradle.kts +++ b/community/flamingock-dynamodb-auditstore/build.gradle.kts @@ -1,8 +1,6 @@ dependencies { implementation(project(":utils:dynamodb-util")) - implementation(project(":core:flamingock-core")) - - + api(project(":core:flamingock-core")) api(project(":core:target-systems:flamingock-dynamodb-externalsystem-api")) compileOnly("software.amazon.awssdk:dynamodb-enhanced:2.25.29") diff --git a/community/flamingock-mongodb-reactive-auditstore/build.gradle.kts b/community/flamingock-mongodb-reactive-auditstore/build.gradle.kts index e6315ed76..96be9af34 100644 --- a/community/flamingock-mongodb-reactive-auditstore/build.gradle.kts +++ b/community/flamingock-mongodb-reactive-auditstore/build.gradle.kts @@ -1,14 +1,14 @@ import org.jetbrains.kotlin.gradle.utils.extendsFrom dependencies { - implementation(project(":utils:mongodb-util")) + api(project(":utils:mongodb-util")) implementation(project(":utils:mongodb-reactive-util")) implementation(project(":utils:flamingock-reactive-util")) - implementation(project(":core:flamingock-core")) + api(project(":core:flamingock-core")) api(project(":core:target-systems:flamingock-mongodb-reactive-externalsystem-api")) - compileOnly("org.mongodb:mongodb-driver-reactivestreams:4.0.0") + compileOnlyApi("org.mongodb:mongodb-driver-reactivestreams:4.0.0") testImplementation(project(":utils:test-util")) testImplementation(project(":utils:mongodb-reactive-test-kit")) diff --git a/community/flamingock-mongodb-sync-auditstore/build.gradle.kts b/community/flamingock-mongodb-sync-auditstore/build.gradle.kts index df389916e..e507ff7e1 100644 --- a/community/flamingock-mongodb-sync-auditstore/build.gradle.kts +++ b/community/flamingock-mongodb-sync-auditstore/build.gradle.kts @@ -1,14 +1,14 @@ import org.jetbrains.kotlin.gradle.utils.extendsFrom dependencies { - implementation(project(":utils:mongodb-util")) + api(project(":utils:mongodb-util")) implementation(project(":utils:mongodb-sync-util")) - implementation(project(":core:flamingock-core")) + api(project(":core:flamingock-core")) api(project(":core:target-systems:flamingock-mongodb-externalsystem-api")) // api(project(":community:flamingock-community")) - compileOnly("org.mongodb:mongodb-driver-sync:4.0.0") + compileOnlyApi("org.mongodb:mongodb-driver-sync:4.0.0") testImplementation(project(":utils:test-util")) diff --git a/community/flamingock-sql-auditstore/build.gradle.kts b/community/flamingock-sql-auditstore/build.gradle.kts index 3fbca5822..3ea1dd7a3 100644 --- a/community/flamingock-sql-auditstore/build.gradle.kts +++ b/community/flamingock-sql-auditstore/build.gradle.kts @@ -3,11 +3,10 @@ import java.time.Duration val sqlVersion: String by extra dependencies { - api(project(":core:flamingock-core")) - api(project(":core:target-systems:flamingock-sql-externalsystem-api")) - api(project(":core:target-systems:flamingock-sql-targetsystem")) + api(project(":core:flamingock-core")) + implementation(project(":core:target-systems:flamingock-sql-targetsystem")) implementation("io.flamingock:flamingock-sql-util:${sqlVersion}") testImplementation(project(":core:target-systems:flamingock-sql-externalsystem-api")) @@ -65,4 +64,3 @@ tasks.test { showStandardStreams = false } } - diff --git a/core/flamingock-bom/build.gradle.kts b/core/flamingock-bom/build.gradle.kts index 334a3551e..90e2433a7 100644 --- a/core/flamingock-bom/build.gradle.kts +++ b/core/flamingock-bom/build.gradle.kts @@ -26,7 +26,6 @@ dependencies { api("io.flamingock:flamingock-community:${version}") api("io.flamingock:flamingock-mongodb-reactive-auditstore:$version") api("io.flamingock:flamingock-mongodb-sync-auditstore:$version") - api("io.flamingock:flamingock-mongodb-springdata-auditstore:${version}") api("io.flamingock:flamingock-couchbase-auditstore:$version") api("io.flamingock:flamingock-dynamodb-auditstore:$version") api("io.flamingock:flamingock-sql-auditstore:$version") diff --git a/core/flamingock-core-commons/build.gradle.kts b/core/flamingock-core-commons/build.gradle.kts index a82c8fbc1..dec8953ee 100644 --- a/core/flamingock-core-commons/build.gradle.kts +++ b/core/flamingock-core-commons/build.gradle.kts @@ -4,8 +4,8 @@ val coreApiVersion: String by extra dependencies { // api(project(":cloud:flamingock-cloud-api")) api("io.flamingock:flamingock-core-api:${coreApiVersion}") - api("io.flamingock:flamingock-general-util:${generalUtilVersion}")//todo implementation - api("jakarta.annotation:jakarta.annotation-api:2.1.1")//todo can this be implementation? + api("io.flamingock:flamingock-general-util:${generalUtilVersion}") + implementation("jakarta.annotation:jakarta.annotation-api:2.1.1") implementation("com.fasterxml.jackson.core:jackson-databind:$jacksonVersion") implementation("com.fasterxml.jackson.core:jackson-core:$jacksonVersion") @@ -17,4 +17,4 @@ java { toolchain { languageVersion.set(JavaLanguageVersion.of(8)) } -} \ No newline at end of file +} diff --git a/core/flamingock-core/build.gradle.kts b/core/flamingock-core/build.gradle.kts index e93aaf6e6..ce2593574 100644 --- a/core/flamingock-core/build.gradle.kts +++ b/core/flamingock-core/build.gradle.kts @@ -1,19 +1,17 @@ val jacksonVersion = "2.16.0" -val generalUtilVersion: String by extra dependencies { api(project(":core:flamingock-core-commons")) - api("io.flamingock:flamingock-general-util:${generalUtilVersion}")//todo implementation - api("javax.inject:javax.inject:1") - api("org.javassist:javassist:3.30.2-GA") - api("com.google.code.findbugs:jsr305:3.0.2") - api("org.objenesis:objenesis:3.2") - api("org.yaml:snakeyaml:2.2") + implementation("javax.inject:javax.inject:1") + implementation("org.javassist:javassist:3.30.2-GA") + implementation("com.google.code.findbugs:jsr305:3.0.2") + implementation("org.objenesis:objenesis:3.2") + implementation("org.yaml:snakeyaml:2.2") - api("org.apache.httpcomponents:httpclient:4.5.14") + implementation("org.apache.httpcomponents:httpclient:4.5.14") - api("com.fasterxml.jackson.core:jackson-databind:$jacksonVersion") + implementation("com.fasterxml.jackson.core:jackson-databind:$jacksonVersion") testImplementation(project(":utils:test-util")) diff --git a/core/flamingock-graalvm/build.gradle.kts b/core/flamingock-graalvm/build.gradle.kts index 0e994d5c0..38dd2f4a0 100644 --- a/core/flamingock-graalvm/build.gradle.kts +++ b/core/flamingock-graalvm/build.gradle.kts @@ -1,10 +1,10 @@ val generalUtilVersion: String by extra dependencies { - api("io.flamingock:flamingock-general-util:${generalUtilVersion}") + implementation("io.flamingock:flamingock-general-util:${generalUtilVersion}") // GraalVM SDK for native image support — compileOnly because it's only needed at // native-image build time, never at JVM runtime. - compileOnly("org.graalvm.sdk:graal-sdk:22.3.0") + compileOnlyApi("org.graalvm.sdk:graal-sdk:22.3.0") } description = "GraalVM native image support and configuration for Flamingock applications" diff --git a/core/flamingock-processor/build.gradle.kts b/core/flamingock-processor/build.gradle.kts index d3ffa2eaf..fddc44fed 100644 --- a/core/flamingock-processor/build.gradle.kts +++ b/core/flamingock-processor/build.gradle.kts @@ -1,10 +1,8 @@ val jacksonVersion = "2.16.0" -val generalUtilVersion: String by extra dependencies { api(project(":core:flamingock-core-commons")) - api("io.flamingock:flamingock-general-util:${generalUtilVersion}")//todo implementation - api("org.yaml:snakeyaml:2.2")//todo implementation - api("com.fasterxml.jackson.core:jackson-databind:$jacksonVersion")//todo implementation + implementation("org.yaml:snakeyaml:2.2") + implementation("com.fasterxml.jackson.core:jackson-databind:$jacksonVersion") } description = "Annotation processor for generating change metadata and pipeline configurations from @Change annotations and YAML templates" diff --git a/core/flamingock-test-support/build.gradle.kts b/core/flamingock-test-support/build.gradle.kts index 584940b76..81f91ba5f 100644 --- a/core/flamingock-test-support/build.gradle.kts +++ b/core/flamingock-test-support/build.gradle.kts @@ -1,5 +1,5 @@ dependencies { - implementation(project(":core:flamingock-core")) + api(project(":core:flamingock-core")) testImplementation(platform("org.junit:junit-bom:5.10.0")) @@ -9,7 +9,7 @@ dependencies { // Add test utilities from the repository so tests can use InMemoryTestKit and pipeline helpers testImplementation(project(":utils:test-util")) testImplementation(project(":core:target-systems:flamingock-nontransactional-targetsystem")) - api("org.mockito:mockito-inline:4.11.0") + implementation("org.mockito:mockito-inline:4.11.0") } description = "Test support module for Flamingock framework" @@ -28,4 +28,4 @@ java { toolchain { languageVersion.set(JavaLanguageVersion.of(8)) } -} \ No newline at end of file +} diff --git a/core/target-systems/flamingock-couchbase-externalsystem-api/build.gradle.kts b/core/target-systems/flamingock-couchbase-externalsystem-api/build.gradle.kts index 827c0ae61..b4d934521 100644 --- a/core/target-systems/flamingock-couchbase-externalsystem-api/build.gradle.kts +++ b/core/target-systems/flamingock-couchbase-externalsystem-api/build.gradle.kts @@ -1,9 +1,9 @@ val coreApiVersion: String by extra dependencies { - implementation("io.flamingock:flamingock-core-api:${coreApiVersion}") + api("io.flamingock:flamingock-core-api:${coreApiVersion}") //General - compileOnly("com.couchbase.client:java-client:3.6.0") + compileOnlyApi("com.couchbase.client:java-client:3.6.0") } description = "Couchbase external system api" @@ -12,4 +12,4 @@ java { toolchain { languageVersion.set(JavaLanguageVersion.of(8)) } -} \ No newline at end of file +} diff --git a/core/target-systems/flamingock-couchbase-targetsystem/build.gradle.kts b/core/target-systems/flamingock-couchbase-targetsystem/build.gradle.kts index d2b74603a..42effac20 100644 --- a/core/target-systems/flamingock-couchbase-targetsystem/build.gradle.kts +++ b/core/target-systems/flamingock-couchbase-targetsystem/build.gradle.kts @@ -8,7 +8,7 @@ dependencies { implementation(project(":legacy:mongock-importer-couchbase")) //General - compileOnly("com.couchbase.client:java-client:3.6.0") + compileOnlyApi("com.couchbase.client:java-client:3.6.0") //Test testImplementation("org.testcontainers:testcontainers-couchbase:2.0.2") @@ -28,4 +28,4 @@ java { configurations.testImplementation { extendsFrom(configurations.compileOnly.get()) -} \ No newline at end of file +} diff --git a/core/target-systems/flamingock-dynamodb-externalsystem-api/build.gradle.kts b/core/target-systems/flamingock-dynamodb-externalsystem-api/build.gradle.kts index 1e99c314d..3683b9ffa 100644 --- a/core/target-systems/flamingock-dynamodb-externalsystem-api/build.gradle.kts +++ b/core/target-systems/flamingock-dynamodb-externalsystem-api/build.gradle.kts @@ -1,9 +1,9 @@ val coreApiVersion: String by extra dependencies { - implementation("io.flamingock:flamingock-core-api:${coreApiVersion}") + api("io.flamingock:flamingock-core-api:${coreApiVersion}") //General - compileOnly("software.amazon.awssdk:dynamodb-enhanced:2.25.29") + compileOnlyApi("software.amazon.awssdk:dynamodb:2.25.29") } description = "DynamoDB external system api" @@ -12,4 +12,4 @@ java { toolchain { languageVersion.set(JavaLanguageVersion.of(8)) } -} \ No newline at end of file +} diff --git a/core/target-systems/flamingock-dynamodb-targetsystem/build.gradle.kts b/core/target-systems/flamingock-dynamodb-targetsystem/build.gradle.kts index 0e2e4375e..567af0372 100644 --- a/core/target-systems/flamingock-dynamodb-targetsystem/build.gradle.kts +++ b/core/target-systems/flamingock-dynamodb-targetsystem/build.gradle.kts @@ -5,7 +5,7 @@ dependencies { implementation(project(":utils:dynamodb-util")) implementation(project(":legacy:mongock-importer-dynamodb")) - compileOnly("software.amazon.awssdk:dynamodb-enhanced:2.25.29") + compileOnlyApi("software.amazon.awssdk:dynamodb-enhanced:2.25.29") testImplementation("software.amazon.awssdk:dynamodb:2.25.29") testImplementation("software.amazon.awssdk:dynamodb-enhanced:2.25.29") @@ -24,4 +24,4 @@ java { toolchain { languageVersion.set(JavaLanguageVersion.of(8)) } -} \ No newline at end of file +} diff --git a/core/target-systems/flamingock-mongodb-externalsystem-api/build.gradle.kts b/core/target-systems/flamingock-mongodb-externalsystem-api/build.gradle.kts index 55b8e566f..d8a711f30 100644 --- a/core/target-systems/flamingock-mongodb-externalsystem-api/build.gradle.kts +++ b/core/target-systems/flamingock-mongodb-externalsystem-api/build.gradle.kts @@ -1,10 +1,8 @@ -val coreApiVersion: String by extra dependencies { - api(project(":core:flamingock-core-commons")) // MongoDB driver for storage implementations - compileOnly("org.mongodb:mongodb-driver-sync:4.0.0") + compileOnlyApi("org.mongodb:mongodb-driver-sync:4.0.0") } description = "MongoDB external system api" @@ -13,4 +11,4 @@ java { toolchain { languageVersion.set(JavaLanguageVersion.of(8)) } -} \ No newline at end of file +} diff --git a/core/target-systems/flamingock-mongodb-reactive-externalsystem-api/build.gradle.kts b/core/target-systems/flamingock-mongodb-reactive-externalsystem-api/build.gradle.kts index 63012fb52..f3405efa8 100644 --- a/core/target-systems/flamingock-mongodb-reactive-externalsystem-api/build.gradle.kts +++ b/core/target-systems/flamingock-mongodb-reactive-externalsystem-api/build.gradle.kts @@ -1,9 +1,9 @@ val coreApiVersion: String by extra dependencies { - implementation("io.flamingock:flamingock-core-api:${coreApiVersion}") + api("io.flamingock:flamingock-core-api:${coreApiVersion}") - compileOnly("org.mongodb:mongodb-driver-reactivestreams:4.0.0") + compileOnlyApi("org.mongodb:mongodb-driver-reactivestreams:4.0.0") } description = "MongoDB reactive external system api" diff --git a/core/target-systems/flamingock-mongodb-reactive-targetsystem/build.gradle.kts b/core/target-systems/flamingock-mongodb-reactive-targetsystem/build.gradle.kts index e95ae9763..a0ff344e0 100644 --- a/core/target-systems/flamingock-mongodb-reactive-targetsystem/build.gradle.kts +++ b/core/target-systems/flamingock-mongodb-reactive-targetsystem/build.gradle.kts @@ -3,10 +3,10 @@ dependencies { implementation(project(":utils:mongodb-util")) implementation(project(":utils:mongodb-reactive-util")) implementation(project(":legacy:mongock-importer-mongodb-reactive")) - api(project(":utils:flamingock-reactive-util")) + implementation(project(":utils:flamingock-reactive-util")) api(project(":core:target-systems:flamingock-mongodb-reactive-externalsystem-api")) - compileOnly("org.mongodb:mongodb-driver-reactivestreams:4.0.0") + compileOnlyApi("org.mongodb:mongodb-driver-reactivestreams:4.0.0") testImplementation("org.testcontainers:testcontainers-mongodb:2.0.2") testImplementation("org.testcontainers:testcontainers-junit-jupiter:2.0.2") diff --git a/core/target-systems/flamingock-mongodb-springdata-reactive-targetsystem/build.gradle.kts b/core/target-systems/flamingock-mongodb-springdata-reactive-targetsystem/build.gradle.kts index b0ca96ccc..dfe057347 100644 --- a/core/target-systems/flamingock-mongodb-springdata-reactive-targetsystem/build.gradle.kts +++ b/core/target-systems/flamingock-mongodb-springdata-reactive-targetsystem/build.gradle.kts @@ -7,12 +7,12 @@ val versions = mapOf( dependencies { api(project(":core:flamingock-core")) - api(project(":utils:flamingock-reactive-util")) + implementation(project(":utils:flamingock-reactive-util")) api(project(":core:target-systems:flamingock-mongodb-reactive-externalsystem-api")) implementation(project(":legacy:mongock-importer-mongodb-reactive")) - compileOnly("org.mongodb:mongodb-driver-reactivestreams:${versions["mongodb"]}") - compileOnly("org.springframework.data:spring-data-mongodb:${versions["spring-data"]}") + compileOnlyApi("org.mongodb:mongodb-driver-reactivestreams:${versions["mongodb"]}") + compileOnlyApi("org.springframework.data:spring-data-mongodb:${versions["spring-data"]}") compileOnly("io.projectreactor:reactor-core:3.4.34") testImplementation("org.testcontainers:testcontainers-mongodb:2.0.2") diff --git a/core/target-systems/flamingock-mongodb-springdata-targetsystem/build.gradle.kts b/core/target-systems/flamingock-mongodb-springdata-targetsystem/build.gradle.kts index e20c51802..f706013b8 100644 --- a/core/target-systems/flamingock-mongodb-springdata-targetsystem/build.gradle.kts +++ b/core/target-systems/flamingock-mongodb-springdata-targetsystem/build.gradle.kts @@ -15,8 +15,8 @@ dependencies { api(project(":core:target-systems:flamingock-mongodb-externalsystem-api")) //General - compileOnly("org.mongodb:mongodb-driver-sync:${versions["mongodb"]}") - compileOnly("org.springframework.data:spring-data-mongodb:${versions["spring-data"]}") + compileOnlyApi("org.mongodb:mongodb-driver-sync:${versions["mongodb"]}") + compileOnlyApi("org.springframework.data:spring-data-mongodb:${versions["spring-data"]}") //Test testImplementation("org.testcontainers:testcontainers-mongodb:2.0.2") diff --git a/core/target-systems/flamingock-mongodb-sync-targetsystem/build.gradle.kts b/core/target-systems/flamingock-mongodb-sync-targetsystem/build.gradle.kts index 5a22f2b21..1a1f4ce51 100644 --- a/core/target-systems/flamingock-mongodb-sync-targetsystem/build.gradle.kts +++ b/core/target-systems/flamingock-mongodb-sync-targetsystem/build.gradle.kts @@ -8,7 +8,7 @@ dependencies { api(project(":core:target-systems:flamingock-mongodb-externalsystem-api")) //General - compileOnly("org.mongodb:mongodb-driver-sync:4.0.0") + compileOnlyApi("org.mongodb:mongodb-driver-sync:4.0.0") //Test testImplementation("org.testcontainers:testcontainers-mongodb:2.0.2") diff --git a/core/target-systems/flamingock-sql-externalsystem-api/build.gradle.kts b/core/target-systems/flamingock-sql-externalsystem-api/build.gradle.kts index 47a2bb63f..402ec50cf 100644 --- a/core/target-systems/flamingock-sql-externalsystem-api/build.gradle.kts +++ b/core/target-systems/flamingock-sql-externalsystem-api/build.gradle.kts @@ -1,11 +1,9 @@ val coreApiVersion: String by extra val sqlVersion: String by extra dependencies { - implementation("io.flamingock:flamingock-core-api:${coreApiVersion}") + api("io.flamingock:flamingock-core-api:${coreApiVersion}") implementation("io.flamingock:flamingock-sql-util:${sqlVersion}") - //General - compileOnly("software.amazon.awssdk:dynamodb-enhanced:2.25.29") } description = "DynamoDB external system api" @@ -14,4 +12,4 @@ java { toolchain { languageVersion.set(JavaLanguageVersion.of(8)) } -} \ No newline at end of file +} diff --git a/core/target-systems/flamingock-sql-targetsystem/build.gradle.kts b/core/target-systems/flamingock-sql-targetsystem/build.gradle.kts index 04863b867..4cabc4f55 100644 --- a/core/target-systems/flamingock-sql-targetsystem/build.gradle.kts +++ b/core/target-systems/flamingock-sql-targetsystem/build.gradle.kts @@ -6,7 +6,7 @@ val sqlVersion: String by extra dependencies { //Flamingock api(project(":core:flamingock-core")) - implementation(project(":core:target-systems:flamingock-sql-externalsystem-api")) + api(project(":core:target-systems:flamingock-sql-externalsystem-api")) implementation("io.flamingock:flamingock-sql-util:${sqlVersion}") //Test @@ -61,4 +61,4 @@ tasks.test { events("passed", "skipped", "failed") showStandardStreams = false } -} \ No newline at end of file +} diff --git a/e2e/core-e2e/build.gradle.kts b/e2e/core-e2e/build.gradle.kts index f2cdacd1c..8b0d2f1ce 100644 --- a/e2e/core-e2e/build.gradle.kts +++ b/e2e/core-e2e/build.gradle.kts @@ -9,6 +9,7 @@ dependencies { testImplementation("org.junit.jupiter:junit-jupiter-engine:5.9.2") testImplementation("org.mockito:mockito-core:4.11.0") testImplementation("org.mockito:mockito-junit-jupiter:4.11.0") + testImplementation("javax.inject:javax.inject:1") } description = "End-to-end integration tests for core functionality" @@ -21,4 +22,4 @@ java { tasks.test { useJUnitPlatform() -} \ No newline at end of file +} diff --git a/legacy/mongock-importer-couchbase/build.gradle.kts b/legacy/mongock-importer-couchbase/build.gradle.kts index 2e0ea5614..f05fbb7c7 100644 --- a/legacy/mongock-importer-couchbase/build.gradle.kts +++ b/legacy/mongock-importer-couchbase/build.gradle.kts @@ -1,9 +1,9 @@ dependencies { - implementation(project(":core:flamingock-core-commons")) + api(project(":core:flamingock-core-commons")) implementation(project(":utils:couchbase-util")) //General - compileOnly("com.couchbase.client:java-client:3.6.0") + compileOnlyApi("com.couchbase.client:java-client:3.6.0") testAnnotationProcessor(project(":core:flamingock-processor")) diff --git a/legacy/mongock-importer-dynamodb/build.gradle.kts b/legacy/mongock-importer-dynamodb/build.gradle.kts index c19337354..24ea80a28 100644 --- a/legacy/mongock-importer-dynamodb/build.gradle.kts +++ b/legacy/mongock-importer-dynamodb/build.gradle.kts @@ -1,8 +1,8 @@ dependencies { - implementation(project(":core:flamingock-core-commons")) + api(project(":core:flamingock-core-commons")) implementation(project(":utils:dynamodb-util")) - compileOnly("software.amazon.awssdk:dynamodb-enhanced:2.25.29") + compileOnlyApi("software.amazon.awssdk:dynamodb-enhanced:2.25.29") testAnnotationProcessor(project(":core:flamingock-processor")) testAnnotationProcessor(project(":legacy:mongock-support")) @@ -43,4 +43,4 @@ tasks.withType().configureEach { } configurations.testImplementation { extendsFrom(configurations.compileOnly.get()) -} \ No newline at end of file +} diff --git a/legacy/mongock-importer-mongodb-reactive/build.gradle.kts b/legacy/mongock-importer-mongodb-reactive/build.gradle.kts index 56147cee5..a90b63452 100644 --- a/legacy/mongock-importer-mongodb-reactive/build.gradle.kts +++ b/legacy/mongock-importer-mongodb-reactive/build.gradle.kts @@ -1,7 +1,7 @@ dependencies { implementation(project(":core:flamingock-core-commons")) implementation(project(":utils:flamingock-reactive-util")) - compileOnly("org.mongodb:mongodb-driver-reactivestreams:4.0.0") + compileOnlyApi("org.mongodb:mongodb-driver-reactivestreams:4.0.0") testAnnotationProcessor(project(":core:flamingock-processor")) testAnnotationProcessor(project(":legacy:mongock-support")) diff --git a/legacy/mongock-importer-mongodb/build.gradle.kts b/legacy/mongock-importer-mongodb/build.gradle.kts index 35d3a834f..75f13abdd 100644 --- a/legacy/mongock-importer-mongodb/build.gradle.kts +++ b/legacy/mongock-importer-mongodb/build.gradle.kts @@ -1,6 +1,6 @@ dependencies { - implementation(project(":core:flamingock-core-commons")) - compileOnly("org.mongodb:mongodb-driver-sync:4.0.0") + api(project(":core:flamingock-core-commons")) + compileOnlyApi("org.mongodb:mongodb-driver-sync:4.0.0") testAnnotationProcessor(project(":core:flamingock-processor")) testAnnotationProcessor(project(":legacy:mongock-support")) diff --git a/legacy/mongock-support/build.gradle.kts b/legacy/mongock-support/build.gradle.kts index 808216221..c0bbd9c00 100644 --- a/legacy/mongock-support/build.gradle.kts +++ b/legacy/mongock-support/build.gradle.kts @@ -1,7 +1,6 @@ -val coreApiVersion: String by extra dependencies { - api(project(":core:flamingock-core"))//todo implementation - api("io.flamingock:flamingock-core-api:${coreApiVersion}")//todo remove. This should be imported by core + api(project(":core:flamingock-core")) + compileOnlyApi("javax.inject:javax.inject:1") } description = "Provides a compatibility layer for Mongock-based applications, including drop-in annotations and audit store migration utilities to Flamingock." diff --git a/platform-plugins/flamingock-springboot-integration/build.gradle.kts b/platform-plugins/flamingock-springboot-integration/build.gradle.kts index 65a16142a..70cf0bb56 100644 --- a/platform-plugins/flamingock-springboot-integration/build.gradle.kts +++ b/platform-plugins/flamingock-springboot-integration/build.gradle.kts @@ -3,9 +3,9 @@ val springBootVersion = "2.0.0.RELEASE" val springFrameworkVersion = "5.0.4.RELEASE" dependencies { api(project(":core:flamingock-core")) - compileOnly("org.springframework:spring-context:${springFrameworkVersion}") - compileOnly("org.springframework.boot:spring-boot:${springBootVersion}") - compileOnly("org.springframework.boot:spring-boot-autoconfigure:${springBootVersion}") + compileOnlyApi("org.springframework:spring-context:${springFrameworkVersion}") + compileOnlyApi("org.springframework.boot:spring-boot:${springBootVersion}") + compileOnlyApi("org.springframework.boot:spring-boot-autoconfigure:${springBootVersion}") annotationProcessor("org.springframework.boot:spring-boot-configuration-processor:${springBootVersion}") @@ -24,4 +24,4 @@ java { configurations.testImplementation { extendsFrom(configurations.compileOnly.get()) -} \ No newline at end of file +} diff --git a/platform-plugins/flamingock-springboot-test-support/build.gradle.kts b/platform-plugins/flamingock-springboot-test-support/build.gradle.kts index 7cf1f3bb0..d073a02dc 100644 --- a/platform-plugins/flamingock-springboot-test-support/build.gradle.kts +++ b/platform-plugins/flamingock-springboot-test-support/build.gradle.kts @@ -4,13 +4,13 @@ dependencies { api(project(":core:flamingock-test-support")) implementation(project(":core:flamingock-core")) - compileOnly("org.springframework:spring-context:${springFrameworkVersion}") - compileOnly("org.springframework.boot:spring-boot:${springBootVersion}") - compileOnly("org.springframework.boot:spring-boot-autoconfigure:${springBootVersion}") + compileOnlyApi("org.springframework:spring-context:${springFrameworkVersion}") + compileOnlyApi("org.springframework.boot:spring-boot:${springBootVersion}") + compileOnlyApi("org.springframework.boot:spring-boot-autoconfigure:${springBootVersion}") annotationProcessor("org.springframework.boot:spring-boot-configuration-processor:${springBootVersion}") // Required for @FlamingockSpringBootTest annotation - implementation("org.springframework.boot:spring-boot-test:${springBootVersion}") + api("org.springframework.boot:spring-boot-test:${springBootVersion}") implementation("org.springframework:spring-test:${springFrameworkVersion}") @@ -41,4 +41,4 @@ java { configurations.testImplementation { extendsFrom(configurations.compileOnly.get()) -} \ No newline at end of file +} diff --git a/utils/couchbase-test-kit/build.gradle.kts b/utils/couchbase-test-kit/build.gradle.kts index 3ac64dccc..831164b3c 100644 --- a/utils/couchbase-test-kit/build.gradle.kts +++ b/utils/couchbase-test-kit/build.gradle.kts @@ -1,9 +1,9 @@ dependencies { implementation(project(":core:flamingock-core")) implementation(project(":utils:couchbase-util")) - implementation(project(":utils:test-util")) + api(project(":utils:test-util")) - compileOnly("com.couchbase.client:java-client:3.6.0") + compileOnlyApi("com.couchbase.client:java-client:3.6.0") } description = "Couchbase TestKit for Flamingock testing" diff --git a/utils/couchbase-util/build.gradle.kts b/utils/couchbase-util/build.gradle.kts index 59f09b51c..7404d70a5 100644 --- a/utils/couchbase-util/build.gradle.kts +++ b/utils/couchbase-util/build.gradle.kts @@ -1,6 +1,6 @@ dependencies { implementation(project(":core:flamingock-core")) - compileOnly("com.couchbase.client:java-client:3.6.0") + compileOnlyApi("com.couchbase.client:java-client:3.6.0") testImplementation(project(":utils:test-util")) testImplementation("com.couchbase.client:java-client:3.6.0") @@ -12,4 +12,4 @@ java { toolchain { languageVersion.set(JavaLanguageVersion.of(8)) } -} \ No newline at end of file +} diff --git a/utils/dynamodb-test-kit/build.gradle.kts b/utils/dynamodb-test-kit/build.gradle.kts index c797bd9cd..cb87db201 100644 --- a/utils/dynamodb-test-kit/build.gradle.kts +++ b/utils/dynamodb-test-kit/build.gradle.kts @@ -1,15 +1,13 @@ -val generalUtilVersion: String by extra dependencies { implementation(project(":core:flamingock-core")) implementation(project(":utils:dynamodb-util")) - implementation("io.flamingock:flamingock-general-util:${generalUtilVersion}") - implementation(project(":utils:test-util")) + api(project(":utils:test-util")) - compileOnly("software.amazon.awssdk:dynamodb-enhanced:2.25.29") + compileOnlyApi("software.amazon.awssdk:dynamodb-enhanced:2.25.29") - compileOnly("software.amazon.awssdk:url-connection-client:2.24.11") + implementation("software.amazon.awssdk:url-connection-client:2.24.11") - compileOnly("org.testcontainers:testcontainers:2.0.2") + compileOnlyApi("org.testcontainers:testcontainers:2.0.2") compileOnly("org.testcontainers:testcontainers-junit-jupiter:2.0.2") } diff --git a/utils/dynamodb-util/build.gradle.kts b/utils/dynamodb-util/build.gradle.kts index 4ad55d06d..94bc7973c 100644 --- a/utils/dynamodb-util/build.gradle.kts +++ b/utils/dynamodb-util/build.gradle.kts @@ -1,9 +1,7 @@ -val generalUtilVersion: String by extra dependencies { implementation(project(":core:flamingock-core")) - implementation("io.flamingock:flamingock-general-util:${generalUtilVersion}") - compileOnly("software.amazon.awssdk:dynamodb-enhanced:2.25.29") + compileOnlyApi("software.amazon.awssdk:dynamodb-enhanced:2.25.29") } description = "Amazon DynamoDB utilities and helpers for database operations" @@ -12,4 +10,4 @@ java { toolchain { languageVersion.set(JavaLanguageVersion.of(8)) } -} \ No newline at end of file +} diff --git a/utils/mongodb-reactive-test-kit/build.gradle.kts b/utils/mongodb-reactive-test-kit/build.gradle.kts index 8433860d2..a3d1ca905 100644 --- a/utils/mongodb-reactive-test-kit/build.gradle.kts +++ b/utils/mongodb-reactive-test-kit/build.gradle.kts @@ -2,9 +2,9 @@ dependencies { implementation(project(":core:flamingock-core")) implementation(project(":utils:mongodb-util")) implementation(project(":utils:flamingock-reactive-util")) - implementation(project(":utils:test-util")) + api(project(":utils:test-util")) - compileOnly("org.mongodb:mongodb-driver-reactivestreams:4.0.0") + compileOnlyApi("org.mongodb:mongodb-driver-reactivestreams:4.0.0") } description = "MongoDB reactive streams TestKit for Flamingock testing" diff --git a/utils/mongodb-reactive-util/build.gradle.kts b/utils/mongodb-reactive-util/build.gradle.kts index 1e742461d..dda313ca2 100644 --- a/utils/mongodb-reactive-util/build.gradle.kts +++ b/utils/mongodb-reactive-util/build.gradle.kts @@ -2,7 +2,7 @@ dependencies { implementation(project(":utils:mongodb-util")) implementation(project(":core:flamingock-core-commons")) - compileOnly("org.mongodb:mongodb-driver-reactivestreams:4.0.0") + compileOnlyApi("org.mongodb:mongodb-driver-reactivestreams:4.0.0") } description = "MongoDB reactive streams driver utilities" diff --git a/utils/mongodb-sync-util/build.gradle.kts b/utils/mongodb-sync-util/build.gradle.kts index 734db3514..480b71598 100644 --- a/utils/mongodb-sync-util/build.gradle.kts +++ b/utils/mongodb-sync-util/build.gradle.kts @@ -1,7 +1,7 @@ dependencies { implementation(project(":utils:mongodb-util")) - compileOnly("org.mongodb:mongodb-driver-sync:4.0.0") + compileOnlyApi("org.mongodb:mongodb-driver-sync:4.0.0") } description = "MongoDB synchronous driver utilities" diff --git a/utils/mongodb-test-kit/build.gradle.kts b/utils/mongodb-test-kit/build.gradle.kts index 8fce37eac..7e02258d1 100644 --- a/utils/mongodb-test-kit/build.gradle.kts +++ b/utils/mongodb-test-kit/build.gradle.kts @@ -1,9 +1,9 @@ dependencies { implementation(project(":core:flamingock-core")) implementation(project(":utils:mongodb-util")) - implementation(project(":utils:test-util")) + api(project(":utils:test-util")) - compileOnly("org.mongodb:mongodb-driver-sync:4.0.0") + compileOnlyApi("org.mongodb:mongodb-driver-sync:4.0.0") } description = "MongoDB TestKit for Flamingock testing" diff --git a/utils/mongodb-util/build.gradle.kts b/utils/mongodb-util/build.gradle.kts index 7e860f249..45d7b06cf 100644 --- a/utils/mongodb-util/build.gradle.kts +++ b/utils/mongodb-util/build.gradle.kts @@ -1,7 +1,7 @@ dependencies { implementation(project(":core:flamingock-core")) - compileOnly("org.mongodb:bson:4.0.0") + compileOnlyApi("org.mongodb:bson:4.0.0") testImplementation(project(":utils:test-util")) } diff --git a/utils/reactive-util/build.gradle.kts b/utils/reactive-util/build.gradle.kts index 894737f94..ec74a31e1 100644 --- a/utils/reactive-util/build.gradle.kts +++ b/utils/reactive-util/build.gradle.kts @@ -1,5 +1,5 @@ dependencies { - compileOnly("org.reactivestreams:reactive-streams:1.0.3") + compileOnlyApi("org.reactivestreams:reactive-streams:1.0.3") testImplementation("org.junit.jupiter:junit-jupiter-api:5.9.2") testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.9.2") diff --git a/utils/sql-test-kit/build.gradle.kts b/utils/sql-test-kit/build.gradle.kts index edc3bfb5e..69cb33f5d 100644 --- a/utils/sql-test-kit/build.gradle.kts +++ b/utils/sql-test-kit/build.gradle.kts @@ -2,7 +2,7 @@ val sqlVersion: String by extra dependencies { implementation(project(":core:flamingock-core")) implementation("io.flamingock:flamingock-sql-util:${sqlVersion}") - implementation(project(":utils:test-util")) + api(project(":utils:test-util")) } description = "SQL TestKit for Flamingock testing" diff --git a/utils/test-util/build.gradle.kts b/utils/test-util/build.gradle.kts index fb528afb7..484e27af4 100644 --- a/utils/test-util/build.gradle.kts +++ b/utils/test-util/build.gradle.kts @@ -1,27 +1,15 @@ -val jacksonVersion = "2.16.0" -val generalUtilVersion: String by extra dependencies { - api("io.flamingock:flamingock-general-util:${generalUtilVersion}") api(project(":cloud:flamingock-cloud-api")) api(project(":core:flamingock-core")) - api(project(":core:flamingock-core-commons")) - api(project(":core:flamingock-processor")) + implementation(project(":core:flamingock-processor")) - api("javax.inject:javax.inject:1") - api("org.objenesis:objenesis:3.2") - api("org.yaml:snakeyaml:2.2") - - api("org.apache.httpcomponents:httpclient:4.5.14") - - api("com.fasterxml.jackson.core:jackson-databind:$jacksonVersion") - - - api("com.github.tomakehurst:wiremock-jre8:2.35.2") + implementation("com.github.tomakehurst:wiremock-jre8:2.35.2") + api("com.fasterxml.jackson.core:jackson-databind:2.16.0") // JUnit for assertion utilities - api("org.junit.jupiter:junit-jupiter-api:5.9.2") - api("org.mockito:mockito-inline:4.11.0") + implementation("org.junit.jupiter:junit-jupiter-api:5.9.2") + implementation("org.mockito:mockito-inline:4.11.0") }