12
12
import no .obos .util .servicebuilder .model .Addon ;
13
13
import no .obos .util .servicebuilder .util .GuavaHelper ;
14
14
import org .glassfish .hk2 .api .Factory ;
15
- import org .skife .jdbi .v2 .DBI ;
15
+ import org .jdbi .v3 .core .Jdbi ;
16
+ import org .jdbi .v3 .sqlobject .SqlObjectPlugin ;
16
17
17
18
import javax .sql .DataSource ;
18
19
import java .util .Set ;
@@ -24,7 +25,7 @@ public class JdbiAddon implements NamedAddon {
24
25
@ Wither (AccessLevel .PRIVATE )
25
26
public final String name ;
26
27
@ Wither (AccessLevel .PRIVATE )
27
- public final DBI dbi ;
28
+ public final Jdbi jdbi ;
28
29
@ Wither (AccessLevel .PRIVATE )
29
30
public final ImmutableList <Class <?>> daos ;
30
31
@@ -42,23 +43,25 @@ public Addon initialize(ServiceConfig serviceConfig) {
42
43
}
43
44
}
44
45
DataSource dataSource = dataSourceAddon .getDataSource ();
45
- DBI dbi = new DBI (dataSource );
46
- return this .dbi (dbi );
46
+ Jdbi jdbi = Jdbi .create (dataSource );
47
+ SqlObjectPlugin sqlObjectPlugin = new SqlObjectPlugin ();
48
+ sqlObjectPlugin .customizeJdbi (jdbi );
49
+ return this .jdbi (jdbi );
47
50
}
48
51
49
52
@ Override
50
53
public void addToJerseyConfig (JerseyConfig jerseyConfig ) {
51
54
jerseyConfig .addBinder (binder -> {
52
55
if (name != null ) {
53
- binder .bind (dbi ).to (DBI .class ).named (name );
56
+ binder .bind (jdbi ).to (Jdbi .class ).named (name );
54
57
binder .bind (this ).to (JdbiAddon .class ).named (name );
55
58
} else {
56
- binder .bind (dbi ).to (DBI .class );
59
+ binder .bind (jdbi ).to (Jdbi .class );
57
60
binder .bind (this ).to (JdbiAddon .class );
58
61
}
59
62
60
63
daos .forEach (clazz ->
61
- binder .bindFactory (new DaoFactory (dbi , clazz )).to (clazz )
64
+ binder .bindFactory (new DaoFactory (jdbi , clazz )).to (clazz )
62
65
);
63
66
64
67
});
@@ -67,11 +70,11 @@ public void addToJerseyConfig(JerseyConfig jerseyConfig) {
67
70
@ AllArgsConstructor
68
71
public static class DaoFactory implements Factory <Object > {
69
72
70
- final DBI dbi ;
73
+ final Jdbi jdbi ;
71
74
final Class <?> clazz ;
72
75
73
76
public Object provide () {
74
- return dbi .onDemand (clazz );
77
+ return jdbi .onDemand (clazz );
75
78
}
76
79
77
80
@ Override
@@ -81,7 +84,7 @@ public void dispose(Object instance) {
81
84
}
82
85
83
86
public <T > T createDao (Class <T > requiredType ) {
84
- return dbi .onDemand (requiredType );
87
+ return jdbi .onDemand (requiredType );
85
88
}
86
89
87
90
@@ -98,7 +101,7 @@ public JdbiAddon name(String name) {
98
101
return withName (name );
99
102
}
100
103
101
- public JdbiAddon dbi ( DBI dbi ) {
102
- return withDbi ( dbi );
104
+ public JdbiAddon jdbi ( Jdbi jdbi ) {
105
+ return withJdbi ( jdbi );
103
106
}
104
107
}
0 commit comments