From 2037b8c0c240042b01bb3153d988925216658157 Mon Sep 17 00:00:00 2001 From: Colin Webb Date: Thu, 2 Jul 2020 13:34:08 +0100 Subject: [PATCH] BDOG-910: Use key to lookup default heartbeatFrequencyMS We had trouble rolling out a platform-wide default in app-config-common, as the configuration currently has some applications using 'Prod.mongodb'. See comments on the JIRA ticket for further description. --- .../play/modules/reactivemongo/MongoConfig.scala | 1 + .../play/modules/reactivemongo/MongoConfigSpec.scala | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/src/main/scala/play/modules/reactivemongo/MongoConfig.scala b/src/main/scala/play/modules/reactivemongo/MongoConfig.scala index 428cb8c..b92df11 100644 --- a/src/main/scala/play/modules/reactivemongo/MongoConfig.scala +++ b/src/main/scala/play/modules/reactivemongo/MongoConfig.scala @@ -64,6 +64,7 @@ class MongoConfig( lazy val defaultHeartbeatFrequencyMS: Option[Int] = mongoConfig.getOptional[Int]("defaultHeartbeatFrequencyMS") + .orElse(configuration.getOptional[Int]("platform.mongodb.defaultHeartbeatFrequencyMS")) // see BDOG-910 comments private lazy val mongoConfig: Configuration = configuration .getOptional[Configuration]("mongodb") diff --git a/src/test/scala/play/modules/reactivemongo/MongoConfigSpec.scala b/src/test/scala/play/modules/reactivemongo/MongoConfigSpec.scala index c265bd0..066f3c5 100644 --- a/src/test/scala/play/modules/reactivemongo/MongoConfigSpec.scala +++ b/src/test/scala/play/modules/reactivemongo/MongoConfigSpec.scala @@ -117,6 +117,18 @@ class MongoConfigSpec extends WordSpec with MockFactory with PropertyChecks { val value = mongoConfig(s"$mongodbConfigKey.defaultHeartbeatFrequencyMS" -> defaultHeartbeatFrequencyMS).defaultHeartbeatFrequencyMS value shouldBe Some(defaultHeartbeatFrequencyMS) } + + s"ignore 'platform.mongodb.defaultHeartbeatFrequencyMS' if $mongodbConfigKey.defaultHeartbeatFrequencyMS specified" in new Setup { + val defaultValue = 999 + val value = mongoConfig("platform.mongodb.defaultHeartbeatFrequencyMS" -> defaultValue, s"$mongodbConfigKey.defaultHeartbeatFrequencyMS" -> defaultHeartbeatFrequencyMS).defaultHeartbeatFrequencyMS + value shouldBe Some(defaultHeartbeatFrequencyMS) + } + + s"fallback to 'platform.mongodb.defaultHeartbeatFrequencyMS' if $mongodbConfigKey.defaultHeartbeatFrequencyMS not specified" in new Setup { + val defaultValue = 999 + val value = mongoConfig("platform.mongodb.defaultHeartbeatFrequencyMS" -> defaultValue, s"$mongodbConfigKey.uri" -> "something").defaultHeartbeatFrequencyMS + value shouldBe Some(defaultValue) + } } }