From 354a21d1a72867b352edbd0aa25b4980938d2749 Mon Sep 17 00:00:00 2001 From: Zach Smith Date: Mon, 16 Oct 2017 11:54:59 -0700 Subject: Consolidate files --- .../scala/xyz/driver/core/rest/ServiceDiscovery.scala | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src/main/scala/xyz/driver/core/rest/ServiceDiscovery.scala') diff --git a/src/main/scala/xyz/driver/core/rest/ServiceDiscovery.scala b/src/main/scala/xyz/driver/core/rest/ServiceDiscovery.scala index f0f3b5b..5f589a9 100644 --- a/src/main/scala/xyz/driver/core/rest/ServiceDiscovery.scala +++ b/src/main/scala/xyz/driver/core/rest/ServiceDiscovery.scala @@ -6,3 +6,21 @@ trait ServiceDiscovery { def discover[T <: Service](serviceName: Name[Service]): T } + +object ServiceDiscovery { + trait SavingUsedServiceDiscovery { + private val usedServices = new scala.collection.mutable.HashSet[String]() + + def saveServiceUsage(serviceName: Name[Service]): Unit = usedServices.synchronized { + usedServices += serviceName.value + } + + def getUsedServices: Set[String] = usedServices.synchronized { usedServices.toSet } + } + + class NoServiceDiscovery extends ServiceDiscovery with SavingUsedServiceDiscovery { + + def discover[T <: Service](serviceName: Name[Service]): T = + throw new IllegalArgumentException(s"Service with name $serviceName is unknown") + } +} -- cgit v1.2.3