1
1
package com.campspot
2
2
3
3
import com.campspot.dao.PunchDAO
4
+ import com.campspot.jdbi3.DAOManager
5
+ import com.campspot.jdbi3.TransactionApplicationListener
4
6
import com.campspot.lib.MockableObject
5
7
import com.campspot.lib.PunchLib
6
- import com.campspot.middleware.CharsetResponseFilter
8
+ import com.campspot.middleware.charset. CharsetResponseFilter
7
9
import com.campspot.resources.PunchResource
10
+ import com.fasterxml.jackson.annotation.JsonCreator
8
11
import com.fasterxml.jackson.module.kotlin.KotlinModule
12
+ import com.fasterxml.jackson.module.paramnames.ParameterNamesModule
9
13
import com.github.arteam.jdbi3.JdbiFactory
10
14
import io.dropwizard.Application
11
15
import io.dropwizard.assets.AssetsBundle
@@ -43,6 +47,7 @@ class TimeTrackingApplication : Application<TimeTrackingConfiguration>() {
43
47
44
48
val objectMapper = environment.objectMapper
45
49
objectMapper.registerModule(KotlinModule ())
50
+ objectMapper.registerModule(ParameterNamesModule (JsonCreator .Mode .PROPERTIES ))
46
51
objectMapper.configure(com.fasterxml.jackson.databind.SerializationFeature .WRITE_DATES_AS_TIMESTAMPS , false )
47
52
objectMapper.setTimeZone(utc)
48
53
@@ -52,11 +57,14 @@ class TimeTrackingApplication : Application<TimeTrackingConfiguration>() {
52
57
jdbi.installPlugin(KotlinSqlObjectPlugin ())
53
58
TimeZone .setDefault(DateTimeZone .UTC .toTimeZone())
54
59
55
- environment.jersey().register(CharsetResponseFilter ())
60
+ val daoManager = DAOManager (PunchDAO ::class )
61
+ val punchLib = PunchLib (daoManager, MockableObject ())
56
62
57
- val punchDAO = jdbi.onDemand<PunchDAO >(PunchDAO ::class .java)
63
+ val transactionApplicationListener = TransactionApplicationListener (daoManager)
64
+ transactionApplicationListener.registerDbi(TimeTrackingApplication .MASTER , jdbi)
65
+ environment.jersey().register(transactionApplicationListener)
58
66
59
- val punchLib = PunchLib (punchDAO, MockableObject ())
67
+ environment.jersey().register( CharsetResponseFilter ())
60
68
61
69
environment.jersey().register(PunchResource (punchLib))
62
70
}
@@ -66,5 +74,7 @@ class TimeTrackingApplication : Application<TimeTrackingConfiguration>() {
66
74
@JvmStatic fun main (args : Array <String >) {
67
75
TimeTrackingApplication ().run (* args)
68
76
}
77
+
78
+ const val MASTER = " master"
69
79
}
70
80
}
0 commit comments