@@ -14,8 +14,6 @@ import org.vertx.scala.core.eventbus.EventBus._
14
14
15
15
class Starter extends Verticle {
16
16
17
- var connection : String = null
18
- var configuration : Configuration = null
19
17
var handler : ConnectionHandler = null
20
18
21
19
override def start (startedResult : org.vertx.scala.core.Future [Void ]) = {
@@ -25,23 +23,11 @@ class Starter extends Verticle {
25
23
try {
26
24
val config = Option (new JsonObject (container.config().toString())).getOrElse(new JsonObject )
27
25
28
- connection = config.getString(" connection" , " postgresql" ).toLowerCase match {
29
- case " postgresql" => " postgresql"
30
- case " mysql" => " mysql"
31
- case x => throw new IllegalArgumentException (" unknown connection type " + x)
32
- }
33
-
34
26
val address = config.getString(" address" , " campudus.asyncdb" )
27
+ val dbType = getDatabaseType(config)
28
+ val configuration = getConfiguration(config, dbType)
35
29
36
- val host = config.getString(" host" , " localhost" )
37
- val port = config.getInteger(" port" , defaultPortFor(connection))
38
- val username = config.getString(" username" , defaultUserFor(connection))
39
- val password = Option (config.getString(" password" )).orElse(defaultPasswordFor(connection))
40
- val database = Option (config.getString(" database" )).orElse(defaultDatabaseFor(connection))
41
-
42
- configuration = Configuration (username, host, port, password, database)
43
-
44
- handler = new ConnectionHandler (vertx, connection, configuration)
30
+ handler = new ConnectionHandler (this , dbType, configuration)
45
31
vertx.eventBus.registerHandler(address)(handler)
46
32
47
33
logger.error(" Async database module for MySQL and PostgreSQL started with config " + configuration)
@@ -58,6 +44,24 @@ class Starter extends Verticle {
58
44
Option (handler).map(_.close)
59
45
}
60
46
47
+ private def getDatabaseType (config : JsonObject ) = {
48
+ config.getString(" connection" , " postgresql" ).toLowerCase match {
49
+ case " postgresql" => " postgresql"
50
+ case " mysql" => " mysql"
51
+ case x => throw new IllegalArgumentException (" unknown connection type " + x)
52
+ }
53
+ }
54
+
55
+ private def getConfiguration (config : JsonObject , dbType : String ) = {
56
+ val host = config.getString(" host" , " localhost" )
57
+ val port = config.getInteger(" port" , defaultPortFor(dbType))
58
+ val username = config.getString(" username" , defaultUserFor(dbType))
59
+ val password = Option (config.getString(" password" )).orElse(defaultPasswordFor(dbType))
60
+ val database = Option (config.getString(" database" )).orElse(defaultDatabaseFor(dbType))
61
+
62
+ Configuration (username, host, port, password, database)
63
+ }
64
+
61
65
private def defaultPortFor (connection : String ): Integer = connection match {
62
66
case " postgresql" => 5432
63
67
case " mysql" => 3306
0 commit comments