From 3ef22127eda060cd520a1dfdb05d5a8622a6fd23 Mon Sep 17 00:00:00 2001 From: Antonio Perez Dieppa Date: Thu, 9 Apr 2026 16:34:08 +0100 Subject: [PATCH] refactor: flamingock-bom --- .github/workflows/release.yml | 6 +- .../flamingock.project-structure.gradle.kts | 8 +-- .../kotlin/flamingock.publishing.gradle.kts | 4 +- cloud/flamingock-cloud-bom/build.gradle.kts | 31 --------- core/flamingock-bom/build.gradle.kts | 64 +++++++++++++++++++ settings.gradle.kts | 8 +-- 6 files changed, 77 insertions(+), 44 deletions(-) delete mode 100644 cloud/flamingock-cloud-bom/build.gradle.kts create mode 100644 core/flamingock-bom/build.gradle.kts diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e72dcba7a..52313db23 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -109,11 +109,11 @@ jobs: FLAMINGOCK_JRELEASER_GPG_SECRET_KEY: ${{ secrets.FLAMINGOCK_JRELEASER_GPG_SECRET_KEY }} FLAMINGOCK_JRELEASER_GPG_PASSPHRASE: ${{ secrets.FLAMINGOCK_JRELEASER_GPG_PASSPHRASE }} - flamingock-cloud-bom: + flamingock-bom: needs: [ build ] uses: ./.github/workflows/module-release-graalvm.yml with: - module: flamingock-cloud-bom + module: flamingock-bom secrets: FLAMINGOCK_JRELEASER_GITHUB_TOKEN: ${{ secrets.FLAMINGOCK_JRELEASER_GITHUB_TOKEN }} FLAMINGOCK_JRELEASER_MAVENCENTRAL_USERNAME: ${{ secrets.FLAMINGOCK_JRELEASER_MAVENCENTRAL_USERNAME }} @@ -534,7 +534,7 @@ jobs: flamingock-processor, flamingock-graalvm, flamingock-cloud, - flamingock-cloud-bom, + flamingock-bom, flamingock-community, flamingock-community-bom, flamingock-mongodb-sync-auditstore, diff --git a/buildSrc/src/main/kotlin/flamingock.project-structure.gradle.kts b/buildSrc/src/main/kotlin/flamingock.project-structure.gradle.kts index 2dc2053fb..9f17033dc 100644 --- a/buildSrc/src/main/kotlin/flamingock.project-structure.gradle.kts +++ b/buildSrc/src/main/kotlin/flamingock.project-structure.gradle.kts @@ -11,12 +11,12 @@ val coreProjects = setOf( "flamingock-template-api", "flamingock-processor", "flamingock-graalvm", - "flamingock-test-support" + "flamingock-test-support", + "flamingock-bom" ) val cloudProjects = setOf( - "flamingock-cloud", - "flamingock-cloud-bom" + "flamingock-cloud" ) val communityProjects = setOf( @@ -76,7 +76,7 @@ val allProjects = coreProjects + cloudProjects + communityProjects + pluginProje // Project classification utilities fun Project.isBomModule(): Boolean = name.endsWith("-bom") -fun Project.isLibraryModule(): Boolean = name !in setOf("flamingock-community-bom", "flamingock-cloud-bom", "flamingock-community-bom") +fun Project.isLibraryModule(): Boolean = name !in setOf("flamingock-bom", "flamingock-community-bom") // Module category lookup fun Project.getProjectCategory(): String? = when (name) { diff --git a/buildSrc/src/main/kotlin/flamingock.publishing.gradle.kts b/buildSrc/src/main/kotlin/flamingock.publishing.gradle.kts index 06c56ce20..e3fff3606 100644 --- a/buildSrc/src/main/kotlin/flamingock.publishing.gradle.kts +++ b/buildSrc/src/main/kotlin/flamingock.publishing.gradle.kts @@ -5,8 +5,8 @@ plugins { fun Project.isBomModule(): Boolean = name.endsWith("-bom") fun Project.isLibraryModule(): Boolean = name !in setOf( - "flamingock-community-bom", - "flamingock-cloud-bom" + "flamingock-bom", + "flamingock-community-bom" ) val fromComponentPublishing = if (isBomModule()) "javaPlatform" else "java" diff --git a/cloud/flamingock-cloud-bom/build.gradle.kts b/cloud/flamingock-cloud-bom/build.gradle.kts deleted file mode 100644 index 4cef8ad15..000000000 --- a/cloud/flamingock-cloud-bom/build.gradle.kts +++ /dev/null @@ -1,31 +0,0 @@ -plugins { - `java-platform` -} - -dependencies { - constraints { - // Add constraints for BOM managed modules - api("io.flamingock:flamingock-cloud:${version}") - api("io.flamingock:flamingock-test-support:${version}") - - //target systems - api("io.flamingock:flamingock-nontransactional-targetsystem:${version}") - api("io.flamingock:flamingock-mongodb-externalsystem-api:${version}") - api("io.flamingock:flamingock-mongodb-sync-targetsystem:${version}") - api("io.flamingock:flamingock-mongodb-springdata-targetsystem:${version}") - api("io.flamingock:flamingock-sql-externalsystem-api:${version}") - api("io.flamingock:flamingock-sql-targetsystem:${version}") - api("io.flamingock:flamingock-dynamodb-externalsystem-api:${version}") - api("io.flamingock:flamingock-dynamodb-targetsystem:${version}") - api("io.flamingock:flamingock-couchbase-externalsystem-api:${version}") - api("io.flamingock:flamingock-couchbase-targetsystem:${version}") - api("io.flamingock:flamingock-sql-template:$version") - api("io.flamingock:flamingock-mongodb-sync-template:${version}") - api("io.flamingock:flamingock-springboot-integration:${version}") - api("io.flamingock:flamingock-springboot-test-support:${version}") - api("io.flamingock:flamingock-graalvm:${version}") - api("io.flamingock:mongock-support:${version}") - } -} - -description = "Bill of Materials for Cloud Edition dependency management" diff --git a/core/flamingock-bom/build.gradle.kts b/core/flamingock-bom/build.gradle.kts new file mode 100644 index 000000000..6e2c23914 --- /dev/null +++ b/core/flamingock-bom/build.gradle.kts @@ -0,0 +1,64 @@ +val sqlVersion: String by extra +val mongodbTemplateVersion: String by extra +val coreApiVersion: String by extra +val generalUtilVersion: String by extra +val templateApiVersion: String by extra + +plugins { + `java-platform` +} + +dependencies { + constraints { + // Flamingock Core + api("io.flamingock:flamingock-general-util:${generalUtilVersion}") + api("io.flamingock:flamingock-core-api:${coreApiVersion}") + api("io.flamingock:flamingock-template-api:${templateApiVersion}") + api("io.flamingock:flamingock-test-support:${version}") + api("io.flamingock:flamingock-nontransactional-targetsystem:${version}") + + //Flamingock Cloud + api("io.flamingock:flamingock-cloud:${version}") + + // Flamingock Community + api("io.flamingock:flamingock-community:${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") + + + + // Springboot + api("io.flamingock:flamingock-springboot-integration:${version}") + api("io.flamingock:flamingock-springboot-test-support:${version}") + api("io.flamingock:flamingock-graalvm:${version}") + + // Mongock + api("io.flamingock:mongock-support:${version}") + + // Sql + api("io.flamingock:flamingock-sql-util:${sqlVersion}") + api("io.flamingock:flamingock-sql-targetsystem:${version}") + api("io.flamingock:flamingock-sql-externalsystem-api:${version}") + api("io.flamingock:flamingock-sql-test-util:${sqlVersion}") + api("io.flamingock:flamingock-sql-template:${sqlVersion}") + + // Mongodb + api("io.flamingock:flamingock-mongodb-externalsystem-api:${version}") + api("io.flamingock:flamingock-mongodb-sync-targetsystem:${version}") + api("io.flamingock:flamingock-mongodb-springdata-targetsystem:${version}") + api("io.flamingock:flamingock-mongodb-sync-template:${mongodbTemplateVersion}") + + // Dynamodb + api("io.flamingock:flamingock-dynamodb-externalsystem-api:${version}") + api("io.flamingock:flamingock-dynamodb-targetsystem:${version}") + + // Couchbase + api("io.flamingock:flamingock-couchbase-externalsystem-api:${version}") + api("io.flamingock:flamingock-couchbase-targetsystem:${version}") + } +} + +description = "Bill of Materials for Flamingock dependency management" diff --git a/settings.gradle.kts b/settings.gradle.kts index 2847618ed..e7f7d5fac 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -28,6 +28,10 @@ include("core:flamingock-test-support") project(":core:flamingock-test-support").name = "flamingock-test-support" project(":core:flamingock-test-support").projectDir = file("core/flamingock-test-support") +include("core:flamingock-bom") +project(":core:flamingock-bom").name = "flamingock-bom" +project(":core:flamingock-bom").projectDir = file("core/flamingock-bom") + ////////////////////////////////////// // CLOUD @@ -36,10 +40,6 @@ include("cloud:flamingock-cloud") project(":cloud:flamingock-cloud").name = "flamingock-cloud" project(":cloud:flamingock-cloud").projectDir = file("cloud/flamingock-cloud") -include("cloud:flamingock-cloud-bom") -project(":cloud:flamingock-cloud-bom").name = "flamingock-cloud-bom" -project(":cloud:flamingock-cloud-bom").projectDir = file("cloud/flamingock-cloud-bom") - ////////////////////////////////////// // COMMUNITY //////////////////////////////////////