From 4546d951f832bf9f58b7a0d3548edbe7faf38388 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Manciot?= Date: Mon, 22 Jun 2026 20:18:11 +0200 Subject: [PATCH 1/3] feat(licensing): add AdbcDriver and Repl features to Community license --- .../app/softnetwork/elastic/licensing/package.scala | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/licensing/src/main/scala/app/softnetwork/elastic/licensing/package.scala b/licensing/src/main/scala/app/softnetwork/elastic/licensing/package.scala index dbdf8df0..0d44144d 100644 --- a/licensing/src/main/scala/app/softnetwork/elastic/licensing/package.scala +++ b/licensing/src/main/scala/app/softnetwork/elastic/licensing/package.scala @@ -162,8 +162,14 @@ package object licensing { val Community: LicenseKey = LicenseKey( id = "community", licenseType = LicenseType.Community, - features = - Set(Feature.MaterializedViews, Feature.JdbcDriver, Feature.FlightSql, Feature.Federation), + features = Set( + Feature.MaterializedViews, + Feature.JdbcDriver, + Feature.AdbcDriver, + Feature.FlightSql, + Feature.Federation, + Feature.Repl + ), expiresAt = None, quota = Some(Quota.Community) ) From b2d6e48c85f7dedd9d1ea12bcefb5687d59ea1c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Manciot?= Date: Mon, 22 Jun 2026 20:23:52 +0200 Subject: [PATCH 2/3] feat(license): add products method to extract ProductType from features --- .../main/scala/app/softnetwork/elastic/licensing/package.scala | 2 ++ 1 file changed, 2 insertions(+) diff --git a/licensing/src/main/scala/app/softnetwork/elastic/licensing/package.scala b/licensing/src/main/scala/app/softnetwork/elastic/licensing/package.scala index 0d44144d..ae41088e 100644 --- a/licensing/src/main/scala/app/softnetwork/elastic/licensing/package.scala +++ b/licensing/src/main/scala/app/softnetwork/elastic/licensing/package.scala @@ -156,6 +156,8 @@ package object licensing { /** Testable variant: days since expiry relative to a given instant. */ def daysSinceExpiryAt(now: java.time.Instant): Option[Long] = expiresAt.map(exp => -daysBetween(now, exp)) + + def products: Set[ProductType] = features.collect { case p: ProductType => p } } object LicenseKey { From d5ed27ad3728c1219344ff3f19c1e6c4df2de0a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Manciot?= Date: Mon, 22 Jun 2026 21:07:34 +0200 Subject: [PATCH 3/3] test(license): update tests to include AdbcDriver and Repl features --- .../elastic/licensing/LicenseManagerSpec.scala | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/licensing/src/test/scala/app/softnetwork/elastic/licensing/LicenseManagerSpec.scala b/licensing/src/test/scala/app/softnetwork/elastic/licensing/LicenseManagerSpec.scala index 0c66d95b..376cdc0a 100644 --- a/licensing/src/test/scala/app/softnetwork/elastic/licensing/LicenseManagerSpec.scala +++ b/licensing/src/test/scala/app/softnetwork/elastic/licensing/LicenseManagerSpec.scala @@ -39,12 +39,12 @@ class LicenseManagerSpec extends AnyFlatSpec with Matchers { manager.hasFeature(Feature.Federation) shouldBe true } - it should "not include AdbcDriver" in { - manager.hasFeature(Feature.AdbcDriver) shouldBe false + it should "include AdbcDriver" in { + manager.hasFeature(Feature.AdbcDriver) shouldBe true } - it should "not include Repl" in { - manager.hasFeature(Feature.Repl) shouldBe false + it should "include Repl" in { + manager.hasFeature(Feature.Repl) shouldBe true } it should "not include UnlimitedResults" in {