@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); } }
@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); } }
dbi.registerContainerFactory(new ImmutableListContainerFactory()); dbi.registerContainerFactory(new ImmutableSetContainerFactory()); dbi.registerContainerFactory(new OptionalContainerFactory()); messageDbi.registerContainerFactory(new ImmutableListContainerFactory()); messageDbi.registerContainerFactory(new ImmutableSetContainerFactory()); messageDbi.registerContainerFactory(new OptionalContainerFactory());
dbi.registerContainerFactory(new ImmutableListContainerFactory()); dbi.registerContainerFactory(new ImmutableSetContainerFactory()); dbi.registerContainerFactory(new OptionalContainerFactory());
dbi.registerContainerFactory(new ImmutableListContainerFactory()); dbi.registerContainerFactory(new ImmutableSetContainerFactory()); dbi.registerContainerFactory(new OptionalContainerFactory());
dbi.registerContainerFactory(new ImmutableListContainerFactory()); dbi.registerContainerFactory(new ImmutableSetContainerFactory()); dbi.registerContainerFactory(new OptionalContainerFactory());
dbi.registerColumnMapper(new OptionalIntMapper()); dbi.registerColumnMapper(new OptionalLongMapper()); dbi.registerContainerFactory(new ImmutableListContainerFactory()); dbi.registerContainerFactory(new ImmutableSetContainerFactory()); dbi.registerContainerFactory(new GuavaOptionalContainerFactory()); dbi.registerContainerFactory(new OptionalContainerFactory());
public class MyDAOTest { @Test public void shouldSelect() { DBI dbi = new DBI("jdbc:(something)", "something", "something"); dbi.registerContainerFactory(new OptionalContainerFactory()); ... }
@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 public DBI get() { final DBI dbi = new DBI(transactionalDataSource); dbi.setSQLLog(new LogbackLog()); if (environment.isPresent()) { environment.get().lifecycle().manage(managedDataSource); environment.get().healthChecks().register("db", new DBIHealthCheck(dbi, dataSourceFactory.getValidationQuery())); dbi.setTimingCollector(new InstrumentedTimingCollector(environment.get().metrics(), new SanerNamingStrategy())); } dbi.registerArgumentFactory(new OptionalArgumentFactory(dataSourceFactory.getDriverClass())); dbi.registerContainerFactory(new ImmutableListContainerFactory()); dbi.registerContainerFactory(new ImmutableSetContainerFactory()); dbi.registerContainerFactory(new OptionalContainerFactory()); dbi.registerArgumentFactory(new JodaDateTimeArgumentFactory()); dbi.registerMapper(new JodaDateTimeMapper()); dbi.registerMapper(new RosettaMapperFactory()); new RosettaObjectMapperOverride(objectMapper).override(dbi); return dbi; }
@Override public DBI build(Environment environment, PooledDataSourceFactory configuration, ManagedDataSource dataSource, String name) { final DBI dbi = super.build(environment, configuration, dataSource, name); dbi.registerArgumentFactory(new OptionalArgumentFactory(configuration.getDriverClass())); dbi.registerContainerFactory(new OptionalContainerFactory()); dbi.registerArgumentFactory(new LocalDateArgumentFactory()); dbi.registerArgumentFactory(new OptionalLocalDateArgumentFactory()); dbi.registerArgumentFactory(new LocalDateTimeArgumentFactory()); dbi.registerArgumentFactory(new OptionalLocalDateTimeArgumentFactory()); dbi.registerMapper(new LocalDateMapper()); dbi.registerMapper(new LocalDateTimeMapper()); final Optional<TimeZone> tz = Optional.ofNullable(databaseTimeZone().orNull()); dbi.registerArgumentFactory(new InstantArgumentFactory(tz)); dbi.registerArgumentFactory(new OptionalInstantArgumentFactory(tz)); dbi.registerMapper(new InstantMapper(tz)); return dbi; } }
dbi.registerColumnMapper(new OptionalIntMapper()); dbi.registerColumnMapper(new OptionalLongMapper()); dbi.registerContainerFactory(new ImmutableListContainerFactory()); dbi.registerContainerFactory(new ImmutableSetContainerFactory()); dbi.registerContainerFactory(new GuavaOptionalContainerFactory()); dbi.registerContainerFactory(new OptionalContainerFactory());