protected GenericObjectPool<T> newObjectPool(final ObjectFactory<T> objectFactory) {
    final int maxActive = Math.max(2, Runtime.getRuntime().availableProcessors());
    final GenericObjectPool<T> pool = new GenericObjectPool<T>(new BasePoolableObjectFactory<T>() {
      @Override
      public T makeObject()
        throws Exception {
        return objectFactory.create();
      }
    });
    pool.setMaxActive(maxActive);
    pool.setMaxIdle(MAX_IDLE);
    pool.setMaxWait(MAX_WAIT);
    /**
     * Use WHEN_EXHAUSTED_GROW strategy, otherwise the pool object retrieval can fail. More details here:
     * <a>http://code.google.com/p/wro4j/issues/detail?id=364</a>
     */
    pool.setWhenExhaustedAction(GenericObjectPool.WHEN_EXHAUSTED_GROW);
    // make object eligible for eviction after a predefined amount of time.
    pool.setSoftMinEvictableIdleTimeMillis(EVICTABLE_IDLE_TIME);
    pool.setTimeBetweenEvictionRunsMillis(EVICTABLE_IDLE_TIME);
    return pool;
  }
protected GenericObjectPool < T > newObjectPool ( final ObjectFactory < T > objectFactory ) { final int maxActive = Math . max ( 2 , Runtime . getRuntime ( ) . availableProcessors ( ) ) ; final GenericObjectPool < T > pool = new GenericObjectPool < T > ( new BasePoolableObjectFactory < T > ( ) { @ Override public T makeObject ( ) throws Exception { return objectFactory . create ( ) ; } } ) ; pool . setMaxActive ( maxActive ) ; pool . setMaxIdle ( MAX_IDLE ) ; pool . setMaxWait ( MAX_WAIT ) ; pool . setWhenExhaustedAction ( GenericObjectPool . WHEN_EXHAUSTED_GROW ) ; pool . setSoftMinEvictableIdleTimeMillis ( EVICTABLE_IDLE_TIME ) ; pool . setTimeBetweenEvictionRunsMillis ( EVICTABLE_IDLE_TIME ) ; return pool ; }
Creates a {@link GenericObjectPool}. Override this method to set custom objectPool configurations.