Skip to content

Commit

Permalink
Introduced Cassandra driver
Browse files Browse the repository at this point in the history
  • Loading branch information
manuelkiessling committed Jan 18, 2016
1 parent 3a96b61 commit 0fa30e4
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 1 deletion.
19 changes: 19 additions & 0 deletions app/cassandra/CassandraConnectionUri.scala
@@ -0,0 +1,19 @@
package cassandra

import java.net.URI

case class CassandraConnectionUri(connectionString: String) {

private val uri = new URI(connectionString)

private val additionalHosts = Option(uri.getQuery) match {
case Some(query) => query.split('&').map(_.split('=')).filter(param => param(0) == "host").map(param => param(1)).toSeq
case None => Seq.empty
}

val host = uri.getHost
val hosts = Seq(uri.getHost) ++ additionalHosts
val port = uri.getPort
val keyspace = uri.getPath.substring(1)

}
19 changes: 19 additions & 0 deletions app/cassandra/CassandraConnector.scala
@@ -0,0 +1,19 @@
package cassandra

import com.datastax.driver.core._

object CassandraConnector {

def createSessionAndInitKeyspace(uri: CassandraConnectionUri,
defaultConsistencyLevel: ConsistencyLevel = QueryOptions.DEFAULT_CONSISTENCY_LEVEL) = {
val cluster = new Cluster.Builder().
addContactPoints(uri.hosts.toArray: _*).
withPort(uri.port).
withQueryOptions(new QueryOptions().setConsistencyLevel(defaultConsistencyLevel)).build

val session = cluster.connect
session.execute(s"USE ${uri.keyspace}")
session
}

}
3 changes: 2 additions & 1 deletion build.sbt
Expand Up @@ -10,7 +10,8 @@ libraryDependencies ++= Seq(
jdbc, jdbc,
cache, cache,
ws, ws,
"org.scalatestplus" %% "play" % "1.4.0-M4" % "test" "org.scalatestplus" %% "play" % "1.4.0-M4" % "test",
"com.datastax.cassandra" % "cassandra-driver-core" % "2.1.+"
) )


resolvers += "scalaz-bintray" at "http://dl.bintray.com/scalaz/releases" resolvers += "scalaz-bintray" at "http://dl.bintray.com/scalaz/releases"
Expand Down

0 comments on commit 0fa30e4

Please sign in to comment.