@Test @SuppressWarnings("unchecked") public void registersACustomNameOfHealthCheckAndDBPoolMetrics() throws Exception { final HibernateBundle<Configuration> customBundle = new HibernateBundle<Configuration>(entities, factory) { @Override public DataSourceFactory getDataSourceFactory(Configuration configuration) { return dbConfig; } @Override protected String name() { return "custom-hibernate"; } }; when(factory.build(eq(customBundle), any(Environment.class), any(DataSourceFactory.class), anyList(), eq("custom-hibernate"))).thenReturn(sessionFactory); customBundle.run(configuration, environment); final ArgumentCaptor<SessionFactoryHealthCheck> captor = ArgumentCaptor.forClass(SessionFactoryHealthCheck.class); verify(healthChecks).register(eq("custom-hibernate"), captor.capture()); }
private void init(final ImmutableList<Class<?>> inEntities) { String numShardsEnv = System.getProperty("db.shards", "2"); int numShards = Integer.parseInt(numShardsEnv); shardManager = new ShardManager(numShards); for (int i = 0; i < numShards; i++) { final int finalI = i; shardBundles.add(new HibernateBundle<T>(inEntities, new SessionFactoryFactory()) { @Override protected String name() { return String.format("connectionpool-%d", finalI); } @Override public PooledDataSourceFactory getDataSourceFactory(T t) { return getConfig(t).getShards().get(finalI); } }); } }
private HibernateBundle<ConerCoreConfiguration> getHibernateBundle() { if (hibernateBundle == null) { Reflections r = new Reflections("org.coner.core.hibernate.entity"); Set<Class<? extends HibernateEntity>> hibernateEntityClasses = r.getSubTypesOf(HibernateEntity.class); hibernateBundle = new HibernateBundle<ConerCoreConfiguration>( ImmutableList.copyOf(hibernateEntityClasses), new SessionFactoryFactory() ) { @Override public DataSourceFactory getDataSourceFactory( ConerCoreConfiguration conerCoreConfiguration ) { return conerCoreConfiguration.getDataSourceFactory(); } }; } return hibernateBundle; }
@Override public void initialize(Bootstrap<AppConfiguration> bootstrap) { ImmutableList<Class<?>> classes = scanForEntities(); hibernate = new HibernateBundle<AppConfiguration>(classes, new SessionFactoryFactory()) { @Override public DataSourceFactory getDataSourceFactory(AppConfiguration configuration) { return configuration.getDatabase(); } }; bootstrap.addBundle(hibernate); db = new DB(); bootstrap.addBundle(new AssetsBundle("/assets/", "/", "index.htm")); devModule = new AppDevModule(db); bootstrap.addBundle(GuiceBundle.newBuilder() .addModule(devModule) .enableAutoConfig(getClass().getPackage().getName()) .build()); }
public AuditedCriteriaQueryBundle(final Class<QUERY_POJO> queryableEntityClass, final HibernateBundle<CONFIG> hibernateBundle, final Class<DOC_REF_POJO> docRefClass, final Class<AUDITED_QUERY_RESOURCE> auditedQueryResourceClass, final Class<DOC_REF_SERVICE> docRefServiceClass, final Class<AUDITED_DOC_REF_RESOURCE> auditedDocRefResourceClass) { this.queryableEntityClass = queryableEntityClass; this.hibernateBundle = hibernateBundle; this.docRefClass = docRefClass; this.auditedDocRefResourceClass = auditedDocRefResourceClass; this.auditedQueryResourceClass = auditedQueryResourceClass; this.docRefServiceClass = docRefServiceClass; }
@Test public void itShouldInitializeHibernate() { application.hibernateBundle = mock(HibernateBundle.class); application.initialize(bootstrap); verify(bootstrap).addBundle(application.hibernateBundle); }
public HibernateBundle<Config> getHibernateBundle() { return hibernateBundle; }
@Override public void run(T configuration, Environment environment) throws Exception { sessionFactories = shardBundles.stream().map(HibernateBundle::getSessionFactory).collect(Collectors.toList()); }