1212import no .obos .util .servicebuilder .model .Addon ;
1313import no .obos .util .servicebuilder .util .GuavaHelper ;
1414import 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 ;
1617
1718import javax .sql .DataSource ;
1819import java .util .Set ;
@@ -24,7 +25,7 @@ public class JdbiAddon implements NamedAddon {
2425 @ Wither (AccessLevel .PRIVATE )
2526 public final String name ;
2627 @ Wither (AccessLevel .PRIVATE )
27- public final DBI dbi ;
28+ public final Jdbi jdbi ;
2829 @ Wither (AccessLevel .PRIVATE )
2930 public final ImmutableList <Class <?>> daos ;
3031
@@ -42,23 +43,25 @@ public Addon initialize(ServiceConfig serviceConfig) {
4243 }
4344 }
4445 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 );
4750 }
4851
4952 @ Override
5053 public void addToJerseyConfig (JerseyConfig jerseyConfig ) {
5154 jerseyConfig .addBinder (binder -> {
5255 if (name != null ) {
53- binder .bind (dbi ).to (DBI .class ).named (name );
56+ binder .bind (jdbi ).to (Jdbi .class ).named (name );
5457 binder .bind (this ).to (JdbiAddon .class ).named (name );
5558 } else {
56- binder .bind (dbi ).to (DBI .class );
59+ binder .bind (jdbi ).to (Jdbi .class );
5760 binder .bind (this ).to (JdbiAddon .class );
5861 }
5962
6063 daos .forEach (clazz ->
61- binder .bindFactory (new DaoFactory (dbi , clazz )).to (clazz )
64+ binder .bindFactory (new DaoFactory (jdbi , clazz )).to (clazz )
6265 );
6366
6467 });
@@ -67,11 +70,11 @@ public void addToJerseyConfig(JerseyConfig jerseyConfig) {
6770 @ AllArgsConstructor
6871 public static class DaoFactory implements Factory <Object > {
6972
70- final DBI dbi ;
73+ final Jdbi jdbi ;
7174 final Class <?> clazz ;
7275
7376 public Object provide () {
74- return dbi .onDemand (clazz );
77+ return jdbi .onDemand (clazz );
7578 }
7679
7780 @ Override
@@ -81,7 +84,7 @@ public void dispose(Object instance) {
8184 }
8285
8386 public <T > T createDao (Class <T > requiredType ) {
84- return dbi .onDemand (requiredType );
87+ return jdbi .onDemand (requiredType );
8588 }
8689
8790
@@ -98,7 +101,7 @@ public JdbiAddon name(String name) {
98101 return withName (name );
99102 }
100103
101- public JdbiAddon dbi ( DBI dbi ) {
102- return withDbi ( dbi );
104+ public JdbiAddon jdbi ( Jdbi jdbi ) {
105+ return withJdbi ( jdbi );
103106 }
104107}
0 commit comments