All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.nlab.smtp.pool.PoolConfigs Maven / Gradle / Ivy

The newest version!
package org.nlab.smtp.pool;

import org.apache.commons.pool2.impl.GenericObjectPoolConfig;

import java.util.concurrent.TimeUnit;

/**
 * Ease pool configuration with default pool configuration
 * 

* Created by nlabrot on 12/06/17. */ public class PoolConfigs { /** * Default {@link GenericObjectPoolConfig} config * See default parameters {@link GenericObjectPoolConfig} * * @return */ public static GenericObjectPoolConfig defaultConfig() { return new GenericObjectPoolConfig(); } /** * Default {@link GenericObjectPoolConfig} config * {@link GenericObjectPoolConfig#getTestOnBorrow} : true * minIdle: 0 * maxIdle: 8 * maxTotal: 8 * maxWaitMillis: 10000 * minEvictableIdleTimeMillis: 5 minutes * timeBetweenEvictionRunsMillis: 10 seconds * * @return */ public static GenericObjectPoolConfig standardConfig() { GenericObjectPoolConfig config = new GenericObjectPoolConfig(); config.setTestOnBorrow(true); config.setMinIdle(0); config.setMaxIdle(8); config.setMaxTotal(8); config.setMinEvictableIdleTimeMillis(TimeUnit.MINUTES.toMillis(5)); config.setTimeBetweenEvictionRunsMillis(10000); config.setMaxWaitMillis(10000); return config; } /** * @param minIdle * @param maxIdle * @param maxTotal * @param maxWaitMillis * @param minEvictableIdleTimeMillis * @param timeBetweenEvictionRunsMillis * @return */ public static GenericObjectPoolConfig standardConfig(int minIdle, int maxIdle, int maxTotal, int maxWaitMillis, int minEvictableIdleTimeMillis, int timeBetweenEvictionRunsMillis) { GenericObjectPoolConfig config = new GenericObjectPoolConfig(); config.setTestOnBorrow(true); config.setMinIdle(minIdle); config.setMaxIdle(maxIdle); config.setMaxTotal(maxTotal); config.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis); config.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis); config.setMaxWaitMillis(maxWaitMillis); return config; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy