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()); }
protected RobeHibernateBundle(ImmutableList<Class<?>> entities, SessionFactoryFactory sessionFactoryFactory) { super(entities, sessionFactoryFactory); }