Skip to content

Commit 42e8448

Browse files
authored
#37: Remove global execution context usage (#41)
1 parent a453411 commit 42e8448

File tree

5 files changed

+12
-7
lines changed

5 files changed

+12
-7
lines changed

core/src/main/scala/za/co/absa/fadb/DBEngine.scala

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,7 @@
1616

1717
package za.co.absa.fadb
1818

19-
import scala.concurrent.ExecutionContext.Implicits.global
20-
import scala.concurrent.Future
19+
import scala.concurrent.{ExecutionContext, Future}
2120
import scala.language.higherKinds
2221

2322
/**
@@ -31,6 +30,8 @@ trait DBEngine {
3130
*/
3231
type QueryType[T] <: Query[T]
3332

33+
implicit val executor: ExecutionContext
34+
3435
/**
3536
* The actual query executioner of the queries of the engine
3637
* @param query - the query to execute

core/src/test/scala/za/co/absa/fadb/DBFunctionSuite.scala

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,9 @@ package za.co.absa.fadb
1818

1919
import org.scalatest.funsuite.AnyFunSuite
2020

21-
import scala.concurrent.Future
21+
import scala.concurrent.{ExecutionContext, Future}
2222
import za.co.absa.fadb.naming_conventions.SnakeCaseNaming.Implicits.namingConvention
2323

24-
2524
class DBFunctionSuite extends AnyFunSuite {
2625

2726
private def neverHappens: Nothing = {
@@ -30,6 +29,8 @@ class DBFunctionSuite extends AnyFunSuite {
3029

3130
private implicit object EngineThrow extends DBEngine {
3231
override def run[R](query: QueryType[R]): Future[Seq[R]] = neverHappens
32+
33+
override implicit val executor: ExecutionContext = ExecutionContext.Implicits.global
3334
}
3435

3536
private object FooNamed extends DBSchema(EngineThrow)

core/src/test/scala/za/co/absa/fadb/DBSchemaSuite.scala

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,16 @@ package za.co.absa.fadb
1818
import org.scalatest.funsuite.AnyFunSuite
1919
import za.co.absa.fadb.naming_conventions.SnakeCaseNaming.Implicits.namingConvention
2020

21-
import scala.concurrent.{Await, Future}
21+
import scala.concurrent.{Await, ExecutionContext, Future}
2222

2323
class DBSchemaSuite extends AnyFunSuite {
2424

2525
private object EngineThrow extends DBEngine {
2626
override def run[R](query: QueryType[R]): Future[Seq[R]] = {
2727
throw new Exception("Should never get here")
2828
}
29+
30+
override implicit val executor: ExecutionContext = ExecutionContext.Implicits.global
2931
}
3032

3133
test("schema name default") {

examples/src/test/scala/za/co/absa/fadb/examples/enceladus/DatasetSchemaSuite.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import za.co.absa.fadb.statushandling.StatusException
2525

2626
import scala.concurrent.Await
2727
import scala.concurrent.duration.Duration
28+
import scala.concurrent.ExecutionContext.Implicits.global
2829

2930
class DatasetSchemaSuite extends AnyWordSpec with Matchers {
3031
private val db = Database.forConfig("menasdb")

slick/src/main/scala/za/co/absa/fadb/slick/SlickPgEngine.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ package za.co.absa.fadb.slick
1919

2020
import za.co.absa.fadb.DBEngine
2121

22-
import scala.concurrent.Future
22+
import scala.concurrent.{ExecutionContext, Future}
2323
import slick.jdbc.PostgresProfile.api._
2424

2525
import scala.language.higherKinds
@@ -28,7 +28,7 @@ import scala.language.higherKinds
2828
* [[DBEngine]] based on the Slick library in the Postgres flavor
2929
* @param db - the Slick database
3030
*/
31-
class SlickPgEngine(val db: Database) extends DBEngine {
31+
class SlickPgEngine(val db: Database)(implicit val executor: ExecutionContext) extends DBEngine {
3232

3333
/**
3434
* The type of Queries for Slick

0 commit comments

Comments
 (0)