@Override public void registerArgumentFactory(final ArgumentFactory<?> argumentFactory) { factories.add(argumentFactory); super.registerArgumentFactory(argumentFactory); }
dbi.registerArgumentFactory(new GuavaOptionalArgumentFactory(driverClazz)); dbi.registerArgumentFactory(new OptionalArgumentFactory(driverClazz)); dbi.registerArgumentFactory(new OptionalDoubleArgumentFactory()); dbi.registerArgumentFactory(new OptionalIntArgumentFactory()); dbi.registerArgumentFactory(new OptionalLongArgumentFactory()); dbi.registerColumnMapper(new OptionalDoubleMapper()); dbi.registerColumnMapper(new OptionalIntMapper()); dbi.registerArgumentFactory(new JodaDateTimeArgumentFactory(timeZone)); dbi.registerArgumentFactory(new LocalDateArgumentFactory()); dbi.registerArgumentFactory(new LocalDateTimeArgumentFactory()); dbi.registerArgumentFactory(new InstantArgumentFactory(timeZone)); dbi.registerArgumentFactory(new OffsetDateTimeArgumentFactory(timeZone)); dbi.registerArgumentFactory(new ZonedDateTimeArgumentFactory(timeZone)); dbi.registerArgumentFactory(new GuavaOptionalJodaTimeArgumentFactory(timeZone)); dbi.registerArgumentFactory(new GuavaOptionalLocalDateArgumentFactory()); dbi.registerArgumentFactory(new GuavaOptionalLocalDateTimeArgumentFactory()); dbi.registerArgumentFactory(new GuavaOptionalInstantArgumentFactory(timeZone)); dbi.registerArgumentFactory(new GuavaOptionalOffsetTimeArgumentFactory(timeZone)); dbi.registerArgumentFactory(new GuavaOptionalZonedTimeArgumentFactory(timeZone)); dbi.registerArgumentFactory(new OptionalJodaTimeArgumentFactory(timeZone)); dbi.registerArgumentFactory(new OptionalLocalDateArgumentFactory()); dbi.registerArgumentFactory(new OptionalLocalDateTimeArgumentFactory()); dbi.registerArgumentFactory(new OptionalInstantArgumentFactory(timeZone)); dbi.registerArgumentFactory(new OptionalOffsetDateTimeArgumentFactory(timeZone)); dbi.registerArgumentFactory(new OptionalZonedDateTimeArgumentFactory(timeZone));
@SuppressWarnings({"unchecked", "rawtypes"}) @Override public void configure(final Env env, final Config config, final Binder binder) { Key<DataSource> dskey = Key.get(DataSource.class, Names.named(name)); DataSource ds = env.get(dskey) .orElseThrow(() -> new NoSuchElementException("DataSource missing: " + dskey)); DBI dbi = new DBI2(ds); dbi.setSQLLog(new SLF4JLog()); dbi.registerArgumentFactory(new OptionalArgumentFactory()); dbi.registerArgumentFactory(new IterableArgumentFactory()); dbi.registerContainerFactory(new OptionalContainerFactory()); dbi.setStatementRewriter(new ExpandedStmtRewriter()); ServiceKey serviceKey = env.serviceKey(); serviceKey.generate(DBI.class, name, k -> binder.bind(k).toInstance(dbi)); serviceKey.generate(Handle.class, name, k -> binder.bind(k).toProvider(() -> dbi.open())); sqlObjects.forEach(sqlObject -> binder.bind(sqlObject) .toProvider((Provider) () -> dbi.open(sqlObject))); if (callback != null) { callback.accept(dbi, config); } }
@Override protected void run(Bootstrap<WhisperServerConfiguration> bootstrap, Namespace namespace, WhisperServerConfiguration config) throws Exception { DataSourceFactory messageDbConfig = config.getMessageStoreConfiguration(); DBI messageDbi = new DBI(messageDbConfig.getUrl(), messageDbConfig.getUser(), messageDbConfig.getPassword()); messageDbi.registerArgumentFactory(new OptionalArgumentFactory(messageDbConfig.getDriverClass())); messageDbi.registerContainerFactory(new ImmutableListContainerFactory()); messageDbi.registerContainerFactory(new ImmutableSetContainerFactory()); messageDbi.registerContainerFactory(new OptionalContainerFactory()); Messages messages = messageDbi.onDemand(Messages.class); long timestamp = System.currentTimeMillis() - TimeUnit.DAYS.toMillis(90); logger.info("Trimming old messages: " + timestamp + "..."); messages.removeOld(timestamp); Thread.sleep(3000); System.exit(0); } }
dbi.registerArgumentFactory(new OptionalArgumentFactory(dbConfig.getDriverClass())); dbi.registerContainerFactory(new ImmutableListContainerFactory()); dbi.registerContainerFactory(new ImmutableSetContainerFactory());
DBI dbi = new DBI(dbConfig.getUrl(), dbConfig.getUser(), dbConfig.getPassword()); dbi.registerArgumentFactory(new OptionalArgumentFactory(dbConfig.getDriverClass())); dbi.registerContainerFactory(new ImmutableListContainerFactory()); dbi.registerContainerFactory(new ImmutableSetContainerFactory());
DBI messageDbi = new DBI(messageDbConfig.getUrl(), messageDbConfig.getUser(), messageDbConfig.getPassword()); dbi.registerArgumentFactory(new OptionalArgumentFactory(dbConfig.getDriverClass())); dbi.registerContainerFactory(new ImmutableListContainerFactory()); dbi.registerContainerFactory(new ImmutableSetContainerFactory()); dbi.registerContainerFactory(new OptionalContainerFactory()); messageDbi.registerArgumentFactory(new OptionalArgumentFactory(dbConfig.getDriverClass())); messageDbi.registerContainerFactory(new ImmutableListContainerFactory()); messageDbi.registerContainerFactory(new ImmutableSetContainerFactory());
DBI dbi = new DBI(dbConfig.getUrl(), dbConfig.getUser(), dbConfig.getPassword()); dbi.registerArgumentFactory(new OptionalArgumentFactory(dbConfig.getDriverClass())); dbi.registerContainerFactory(new ImmutableListContainerFactory()); dbi.registerContainerFactory(new ImmutableSetContainerFactory());
@Override public void registerArgumentFactory(final ArgumentFactory<?> argumentFactory) { factories.add(argumentFactory); super.registerArgumentFactory(argumentFactory); }
@Inject public DBITransactionFactory(BoneCPConfig config, HealthCheckRegistry healthChecks) { super(); // Register for health check healthChecks.register("MySql", new PrivateMySqlHealthCheck(this)); LOGGER.debug("Creating BoneCPDataSource"); this.dataSource = new BoneCPDataSource(config); this.dbi = new DBI(dataSource); // Register JDBI argument factories dbi.registerArgumentFactory(new UUIDArgumentFactory()); dbi.registerArgumentFactory(new ExperimentIDArgumentFactory()); dbi.registerArgumentFactory(new BucketLabelArgumentFactory()); }
@VisibleForTesting public static void setupDBI(final DBI dbi) { dbi.registerArgumentFactory(new UUIDArgumentFactory()); dbi.registerArgumentFactory(new DateTimeZoneArgumentFactory()); dbi.registerArgumentFactory(new DateTimeArgumentFactory()); dbi.registerArgumentFactory(new LocalDateArgumentFactory()); dbi.registerMapper(new UUIDMapper()); dbi.registerMapper(new LowerToCamelBeanMapperFactory(BusEventModelDao.class)); dbi.registerMapper(new LowerToCamelBeanMapperFactory(NotificationEventModelDao.class)); }
@Test(groups = "slow") public void testWithArgument() throws Exception { dbi.registerArgumentFactory(new DateTimeArgumentFactory()); final SomethingSqlDao somethingSqlDao = dbi.onDemand(SomethingSqlDao.class); final DateTime dateTimePierre = new DateTime(2012, 10, 5, 8, 10, DateTimeZone.UTC); somethingSqlDao.create(1, "pierre", dateTimePierre); final DateTime dateTimeStephane = new DateTime(2009, 3, 1, 0, 1, DateTimeZone.UTC); somethingSqlDao.create(2, "stephane", dateTimeStephane); final Timestamp datePierre = somethingSqlDao.getCreatedDt(1); Assert.assertEquals(datePierre.getTime(), dateTimePierre.getMillis()); final Timestamp dateStephane = somethingSqlDao.getCreatedDt(2); Assert.assertEquals(dateStephane.getTime(), dateTimeStephane.getMillis()); }
@Test(groups = "slow") public void testWithArgument() throws Exception { dbi.registerArgumentFactory(new DateTimeArgumentFactory()); final SomethingSqlDao somethingSqlDao = dbi.onDemand(SomethingSqlDao.class); final DateTime dateTimePierre = new DateTime(2012, 10, 5, 8, 10, DateTimeZone.UTC); somethingSqlDao.create(1, "pierre", dateTimePierre); final DateTime dateTimeStephane = new DateTime(2009, 3, 1, 0, 1, DateTimeZone.UTC); somethingSqlDao.create(2, "stephane", dateTimeStephane); final Timestamp datePierre = somethingSqlDao.getCreatedDt(1); Assert.assertEquals(datePierre.getTime(), dateTimePierre.getMillis()); final Timestamp dateStephane = somethingSqlDao.getCreatedDt(2); Assert.assertEquals(dateStephane.getTime(), dateTimeStephane.getMillis()); }
@Test(groups = "slow") public void testWithArgument() throws Exception { dbi.registerArgumentFactory(new UUIDArgumentFactory()); final SomethingSqlDao somethingSqlDao = dbi.onDemand(SomethingSqlDao.class); final UUID idPierre = UUID.randomUUID(); somethingSqlDao.create(1, "pierre", idPierre); final UUID idStephane = UUID.randomUUID(); somethingSqlDao.create(2, "stephane", idStephane); final String idStringPierre = somethingSqlDao.getUniqueId(1); Assert.assertEquals(idStringPierre, idPierre.toString()); final String idStringStephane = somethingSqlDao.getUniqueId(2); Assert.assertEquals(idStringStephane, idStephane.toString()); }
@Test(groups = "slow") public void testWithArgument() throws Exception { dbi.registerArgumentFactory(new UUIDArgumentFactory()); final SomethingSqlDao somethingSqlDao = dbi.onDemand(SomethingSqlDao.class); final UUID idPierre = UUID.randomUUID(); somethingSqlDao.create(1, "pierre", idPierre); final UUID idStephane = UUID.randomUUID(); somethingSqlDao.create(2, "stephane", idStephane); final String idStringPierre = somethingSqlDao.getUniqueId(1); Assert.assertEquals(idStringPierre, idPierre.toString()); final String idStringStephane = somethingSqlDao.getUniqueId(2); Assert.assertEquals(idStringStephane, idStephane.toString()); }
@Test(groups = "slow") public void testWithArgument() throws Exception { dbi.registerArgumentFactory(new LocalDateArgumentFactory()); final SomethingSqlDao somethingSqlDao = dbi.onDemand(SomethingSqlDao.class); final LocalDate localDatePierre = new LocalDate(2012, 5, 12); somethingSqlDao.create(1, "pierre", localDatePierre); final LocalDate localDateStephane = new LocalDate(2009, 3, 9); somethingSqlDao.create(2, "stephane", localDateStephane); final String localDateStringPierre = somethingSqlDao.getCreatedDt(1); Assert.assertEquals(localDateStringPierre, localDatePierre.toString()); final String localDateStringStephane = somethingSqlDao.getCreatedDt(2); Assert.assertEquals(localDateStringStephane, localDateStephane.toString()); }
@Test(groups = "slow") public void testWithArgument() throws Exception { dbi.registerArgumentFactory(new LocalDateArgumentFactory()); final SomethingSqlDao somethingSqlDao = dbi.onDemand(SomethingSqlDao.class); final LocalDate localDatePierre = new LocalDate(2012, 5, 12); somethingSqlDao.create(1, "pierre", localDatePierre); final LocalDate localDateStephane = new LocalDate(2009, 3, 9); somethingSqlDao.create(2, "stephane", localDateStephane); final String localDateStringPierre = somethingSqlDao.getCreatedDt(1); Assert.assertEquals(localDateStringPierre, localDatePierre.toString()); final String localDateStringStephane = somethingSqlDao.getCreatedDt(2); Assert.assertEquals(localDateStringStephane, localDateStephane.toString()); }
@Test(groups = "slow") public void testWithArgument() throws Exception { dbi.registerArgumentFactory(new DateTimeZoneArgumentFactory()); final SomethingSqlDao somethingSqlDao = dbi.onDemand(SomethingSqlDao.class); final DateTimeZone dateTimeZonePierre = DateTimeZone.UTC; somethingSqlDao.create(1, "pierre", dateTimeZonePierre); final DateTimeZone dateTimeZoneStephane = DateTimeZone.forID("Europe/London"); somethingSqlDao.create(2, "stephane", dateTimeZoneStephane); final String tzStringPierre = somethingSqlDao.getCreatedTZ(1); Assert.assertEquals(tzStringPierre, dateTimeZonePierre.toString()); final String tzStringStephane = somethingSqlDao.getCreatedTZ(2); Assert.assertEquals(tzStringStephane, dateTimeZoneStephane.toString()); }
@Test public void testRegisterOnDBI() throws Exception { dbi.registerArgumentFactory(new NameAF()); Handle h2 = dbi.open(); h2.createStatement("insert into something (id, name) values (:id, :name)") .bind("id", 7) .bind("name", new Name("Brian", "McCallister")) .execute(); String full_name = h.createQuery("select name from something where id = 7").mapTo(String.class).first(); assertThat(full_name, equalTo("Brian McCallister")); h2.close(); }
@Test @Category(JDBITests.class) public void testRegisterOnDBI() throws Exception { dbi.registerArgumentFactory(new NameAF()); Handle h2 = dbi.open(); h2.createStatement("insert into something (id, name) values (:id, :name)") .bind("id", 7) .bind("name", new Name("Brian", "McCallister")) .execute(); String full_name = h.createQuery("select name from something where id = 7").map(StringMapper.FIRST).first(); assertThat(full_name, equalTo("Brian McCallister")); h2.close(); }