From 31c8899ec0f0f5e8e9ea9061b35d497308d6b3a6 Mon Sep 17 00:00:00 2001 From: Tamino Dauth Date: Wed, 10 Apr 2019 15:08:33 +0200 Subject: [PATCH] Adapt transactions to create sessions #19 --- build.sbt | 1 + .../guistatemachine/api/neo4j/Neo4jSessionFactory.scala | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index a22c21b..5bef904 100644 --- a/build.sbt +++ b/build.sbt @@ -24,6 +24,7 @@ resolvers += "sonatype-snapshots" at "https://oss.sonatype.org/content/repositor libraryDependencies += "org.neo4j" % "neo4j" % "3.5.4" libraryDependencies += "org.neo4j" % "neo4j-ogm-core" % "3.1.8" libraryDependencies += "org.neo4j" % "neo4j-ogm-embedded-driver" % "3.1.8" +libraryDependencies += "org.neo4j" % "neo4j-bolt" % "3.5.4" // Dependencies to represent states and actions: libraryDependencies += "de.retest" % "surili-commons" % "0.1.0-SNAPSHOT" withSources () withJavadoc () changing () diff --git a/src/main/scala/de/retest/guistatemachine/api/neo4j/Neo4jSessionFactory.scala b/src/main/scala/de/retest/guistatemachine/api/neo4j/Neo4jSessionFactory.scala index b7a605c..20945b2 100644 --- a/src/main/scala/de/retest/guistatemachine/api/neo4j/Neo4jSessionFactory.scala +++ b/src/main/scala/de/retest/guistatemachine/api/neo4j/Neo4jSessionFactory.scala @@ -18,7 +18,9 @@ object Neo4jSessionFactory { sessionFactory } - def transaction[A](f: => A)(implicit session: Session): A = { + def transaction[A](f: Session => A)(implicit uri: String): A = { + // We have to create a session for every transaction since sessions are not thread-safe. + val session = Neo4jSessionFactory.getSessionFactory(uri).openSession() // TODO #19 Close the session at some point? var txn: Option[Transaction] = None try { val transaction = session.beginTransaction()