You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ps...@apache.org on 2014/03/23 21:31:37 UTC
svn commit: r1580595 [2/2] - in /commons/sandbox/performance/trunk: ./
src/java/org/apache/commons/performance/
src/java/org/apache/commons/performance/dbcp/
src/java/org/apache/commons/performance/pool/ src/pool/
src/test/org/apache/commons/performanc...
Modified: commons/sandbox/performance/trunk/src/java/org/apache/commons/performance/pool/PoolSoak.java
URL: http://svn.apache.org/viewvc/commons/sandbox/performance/trunk/src/java/org/apache/commons/performance/pool/PoolSoak.java?rev=1580595&r1=1580594&r2=1580595&view=diff
==============================================================================
--- commons/sandbox/performance/trunk/src/java/org/apache/commons/performance/pool/PoolSoak.java (original)
+++ commons/sandbox/performance/trunk/src/java/org/apache/commons/performance/pool/PoolSoak.java Sun Mar 23 20:31:36 2014
@@ -18,26 +18,27 @@
package org.apache.commons.performance.pool;
import java.util.logging.Logger;
+
import org.apache.commons.dbcp.AbandonedConfig;
import org.apache.commons.dbcp.AbandonedObjectPool;
-import org.apache.commons.pool.impl.StackObjectPool;
-import org.apache.commons.pool.impl.SoftReferenceObjectPool;
-import org.apache.commons.pool.impl.StackKeyedObjectPool;
-import org.apache.commons.performance.ConfigurationException;
import org.apache.commons.performance.ClientThread;
+import org.apache.commons.performance.ConfigurationException;
import org.apache.commons.performance.LoadGenerator;
import org.apache.commons.performance.Statistics;
-import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
+import org.apache.commons.pool.impl.SoftReferenceObjectPool;
+import org.apache.commons.pool.impl.StackKeyedObjectPool;
+import org.apache.commons.pool.impl.StackObjectPool;
import org.apache.commons.pool2.impl.GenericKeyedObjectPoolConfig;
-
+import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
+
/**
- * Configurable load / performance tester for commons pool.
- * Uses Commons Digester to parse and load configuration and spawns
- * PoolClientThread instances to generate load and gather statistics.
- *
+ * Configurable load / performance tester for commons pool. Uses Commons Digester to parse and load
+ * configuration and spawns PoolClientThread instances to generate load and gather statistics.
+ *
*/
-public class PoolSoak extends LoadGenerator {
-
+public class PoolSoak
+ extends LoadGenerator {
+
// Pool instances
private org.apache.commons.pool.impl.GenericObjectPool genericObjectPool;
private org.apache.commons.pool.impl.GenericKeyedObjectPool genericKeyedObjectPool;
@@ -46,10 +47,10 @@ public class PoolSoak extends LoadGenera
private StackObjectPool stackObjectPool;
private SoftReferenceObjectPool softReferenceObjectPool;
private StackKeyedObjectPool stackKeyedObjectPool;
-
+
// Pool properties
private String poolType;
- private int maxActive; // maxActive for GOP, maxTotal for GKOP
+ private int maxActive; // maxActive for GOP, maxTotal for GKOP
private int maxActivePerKey; // maxActive for GKOP
private int maxIdle;
private int minIdle;
@@ -64,7 +65,7 @@ public class PoolSoak extends LoadGenera
private AbandonedConfig abandonedConfig = new AbandonedConfig();
private boolean lifo;
private double samplingRate;
-
+
// WaiterFactory properties
private long activateLatency;
private long destroyLatency;
@@ -73,87 +74,62 @@ public class PoolSoak extends LoadGenera
private long validateLatency;
private long waiterLatency;
private double passivateInvalidationProbability;
-
+
/**
- * Add pool configuration to parameters loaded by super.
- * Also set config file name.
+ * Add pool configuration to parameters loaded by super. Also set config file name.
*/
- protected void configure() throws Exception {
+ @Override
+ protected void configure()
+ throws Exception {
super.configure();
- digester.addCallMethod("configuration/factory",
- "configureFactory", 7);
- digester.addCallParam(
- "configuration/factory/activate-latency", 0);
- digester.addCallParam(
- "configuration/factory/destroy-latency", 1);
- digester.addCallParam(
- "configuration/factory/make-latency", 2);
- digester.addCallParam(
- "configuration/factory/passivate-latency", 3);
- digester.addCallParam(
- "configuration/factory/validate-latency", 4);
- digester.addCallParam(
- "configuration/factory/waiter-latency", 5);
- digester.addCallParam(
- "configuration/factory/passivate-invalidation-probability", 6);
- digester.addCallMethod("configuration/pool",
- "configurePool", 15);
- digester.addCallParam(
- "configuration/pool/max-active", 0);
- digester.addCallParam(
- "configuration/pool/max-active-per-key", 1);
- digester.addCallParam(
- "configuration/pool/max-idle", 2);
- digester.addCallParam(
- "configuration/pool/min-idle", 3);
- digester.addCallParam(
- "configuration/pool/max-wait", 4);
- digester.addCallParam(
- "configuration/pool/exhausted-action", 5);
- digester.addCallParam(
- "configuration/pool/test-on-borrow", 6);
- digester.addCallParam(
- "configuration/pool/test-on-return", 7);
- digester.addCallParam(
- "configuration/pool/time-between-evictions", 8);
- digester.addCallParam(
- "configuration/pool/tests-per-eviction", 9);
- digester.addCallParam(
- "configuration/pool/idle-timeout", 10);
- digester.addCallParam(
- "configuration/pool/test-while-idle", 11);
- digester.addCallParam(
- "configuration/pool/lifo", 12);
- digester.addCallParam(
- "configuration/pool/type", 13);
- digester.addCallParam(
- "configuration/pool/sampling-rate", 14);
- digester.addCallMethod("configuration/abandoned-config",
- "configureAbandonedConfig", 3);
- digester.addCallParam(
- "configuration/abandoned-config/log-abandoned", 0);
- digester.addCallParam(
- "configuration/abandoned-config/remove-abandoned", 1);
- digester.addCallParam(
- "configuration/abandoned-config/abandoned-timeout", 2);
-
+ digester.addCallMethod("configuration/factory", "configureFactory", 7);
+ digester.addCallParam("configuration/factory/activate-latency", 0);
+ digester.addCallParam("configuration/factory/destroy-latency", 1);
+ digester.addCallParam("configuration/factory/make-latency", 2);
+ digester.addCallParam("configuration/factory/passivate-latency", 3);
+ digester.addCallParam("configuration/factory/validate-latency", 4);
+ digester.addCallParam("configuration/factory/waiter-latency", 5);
+ digester.addCallParam("configuration/factory/passivate-invalidation-probability", 6);
+ digester.addCallMethod("configuration/pool", "configurePool", 15);
+ digester.addCallParam("configuration/pool/max-active", 0);
+ digester.addCallParam("configuration/pool/max-active-per-key", 1);
+ digester.addCallParam("configuration/pool/max-idle", 2);
+ digester.addCallParam("configuration/pool/min-idle", 3);
+ digester.addCallParam("configuration/pool/max-wait", 4);
+ digester.addCallParam("configuration/pool/exhausted-action", 5);
+ digester.addCallParam("configuration/pool/test-on-borrow", 6);
+ digester.addCallParam("configuration/pool/test-on-return", 7);
+ digester.addCallParam("configuration/pool/time-between-evictions", 8);
+ digester.addCallParam("configuration/pool/tests-per-eviction", 9);
+ digester.addCallParam("configuration/pool/idle-timeout", 10);
+ digester.addCallParam("configuration/pool/test-while-idle", 11);
+ digester.addCallParam("configuration/pool/lifo", 12);
+ digester.addCallParam("configuration/pool/type", 13);
+ digester.addCallParam("configuration/pool/sampling-rate", 14);
+ digester.addCallMethod("configuration/abandoned-config", "configureAbandonedConfig", 3);
+ digester.addCallParam("configuration/abandoned-config/log-abandoned", 0);
+ digester.addCallParam("configuration/abandoned-config/remove-abandoned", 1);
+ digester.addCallParam("configuration/abandoned-config/abandoned-timeout", 2);
+
this.configFile = "config-pool.xml";
-
+
}
-
+
/**
* Create object pool and factory
*/
- protected void init() throws Exception {
+ @Override
+ protected void init()
+ throws Exception {
// Create factory
- WaiterFactory factory = new WaiterFactory(activateLatency, destroyLatency,
- makeLatency, passivateLatency, validateLatency, waiterLatency,
- maxActive, maxActivePerKey, passivateInvalidationProbability);
-
- WaiterFactory2 factory2 = new WaiterFactory2(activateLatency, destroyLatency,
- makeLatency, passivateLatency, validateLatency, waiterLatency,
- maxActive, maxActivePerKey, passivateInvalidationProbability);
-
+ WaiterFactory factory = new WaiterFactory(activateLatency, destroyLatency, makeLatency, passivateLatency,
+ validateLatency, waiterLatency, maxActive, maxActivePerKey,
+ passivateInvalidationProbability);
+
+ WaiterFactory2 factory2 = new WaiterFactory2(activateLatency, destroyLatency, makeLatency, passivateLatency,
+ validateLatency, waiterLatency, maxActive, maxActivePerKey,
+ passivateInvalidationProbability);
+
// Create object pool
if (poolType.equals("GenericObjectPool")) {
genericObjectPool = new org.apache.commons.pool.impl.GenericObjectPool(factory);
@@ -164,17 +140,16 @@ public class PoolSoak extends LoadGenera
genericObjectPool.setMinIdle(minIdle);
genericObjectPool.setTestOnBorrow(testOnBorrow);
genericObjectPool.setTestOnReturn(testOnReturn);
- genericObjectPool.setTimeBetweenEvictionRunsMillis(
- timeBetweenEvictions);
+ genericObjectPool.setTimeBetweenEvictionRunsMillis(timeBetweenEvictions);
genericObjectPool.setNumTestsPerEvictionRun(testsPerEviction);
genericObjectPool.setMinEvictableIdleTimeMillis(idleTimeout);
genericObjectPool.setTestWhileIdle(testWhileIdle);
genericObjectPool.setLifo(lifo);
} else if (poolType.equals("GenericObjectPool2")) {
GenericObjectPoolConfig config = new GenericObjectPoolConfig();
- config.setBlockWhenExhausted(
- exhaustedAction == org.apache.commons.pool.impl.GenericObjectPool.WHEN_EXHAUSTED_BLOCK ?
- true : false);
+ config
+ .setBlockWhenExhausted(exhaustedAction == org.apache.commons.pool.impl.GenericObjectPool.WHEN_EXHAUSTED_BLOCK
+ ? true : false);
config.setMaxIdle(maxIdle);
config.setMinIdle(minIdle);
config.setMaxWaitMillis(maxWait);
@@ -186,10 +161,9 @@ public class PoolSoak extends LoadGenera
config.setMinEvictableIdleTimeMillis(idleTimeout);
config.setLifo(lifo);
config.setMaxTotal(maxActive);
- genericObjectPool2 =
- new org.apache.commons.pool2.impl.GenericObjectPool<Waiter>(factory2, config);
+ genericObjectPool2 = new org.apache.commons.pool2.impl.GenericObjectPool<Waiter>(factory2, config);
} else if (poolType.equals("AbandonedObjectPool")) {
- genericObjectPool = new AbandonedObjectPool(factory,abandonedConfig);
+ genericObjectPool = new AbandonedObjectPool(factory, abandonedConfig);
genericObjectPool.setMaxActive(maxActive);
genericObjectPool.setWhenExhaustedAction(exhaustedAction);
genericObjectPool.setMaxWait(maxWait);
@@ -197,8 +171,7 @@ public class PoolSoak extends LoadGenera
genericObjectPool.setMinIdle(minIdle);
genericObjectPool.setTestOnBorrow(testOnBorrow);
genericObjectPool.setTestOnReturn(testOnReturn);
- genericObjectPool.setTimeBetweenEvictionRunsMillis(
- timeBetweenEvictions);
+ genericObjectPool.setTimeBetweenEvictionRunsMillis(timeBetweenEvictions);
genericObjectPool.setNumTestsPerEvictionRun(testsPerEviction);
genericObjectPool.setMinEvictableIdleTimeMillis(idleTimeout);
genericObjectPool.setTestWhileIdle(testWhileIdle);
@@ -213,8 +186,7 @@ public class PoolSoak extends LoadGenera
genericKeyedObjectPool.setMinIdle(minIdle);
genericKeyedObjectPool.setTestOnBorrow(testOnBorrow);
genericKeyedObjectPool.setTestOnReturn(testOnReturn);
- genericKeyedObjectPool.setTimeBetweenEvictionRunsMillis(
- timeBetweenEvictions);
+ genericKeyedObjectPool.setTimeBetweenEvictionRunsMillis(timeBetweenEvictions);
genericKeyedObjectPool.setNumTestsPerEvictionRun(testsPerEviction);
genericKeyedObjectPool.setMinEvictableIdleTimeMillis(idleTimeout);
genericKeyedObjectPool.setTestWhileIdle(testWhileIdle);
@@ -223,9 +195,9 @@ public class PoolSoak extends LoadGenera
GenericKeyedObjectPoolConfig config = new GenericKeyedObjectPoolConfig();
config.setMaxTotal(maxActive);
config.setMaxTotalPerKey(maxActivePerKey);
- config.setBlockWhenExhausted(
- exhaustedAction == org.apache.commons.pool.impl.GenericObjectPool.WHEN_EXHAUSTED_BLOCK ?
- true : false);
+ config
+ .setBlockWhenExhausted(exhaustedAction == org.apache.commons.pool.impl.GenericObjectPool.WHEN_EXHAUSTED_BLOCK
+ ? true : false);
config.setMaxWaitMillis(maxWait);
config.setMaxIdlePerKey(maxIdle);
config.setMinIdlePerKey(minIdle);
@@ -236,8 +208,9 @@ public class PoolSoak extends LoadGenera
config.setMinEvictableIdleTimeMillis(idleTimeout);
config.setTestWhileIdle(testWhileIdle);
config.setLifo(lifo);
- genericKeyedObjectPool2 =
- new org.apache.commons.pool2.impl.GenericKeyedObjectPool<Integer, Waiter>(factory2, config);
+ genericKeyedObjectPool2 = new org.apache.commons.pool2.impl.GenericKeyedObjectPool<Integer, Waiter>(
+ factory2,
+ config);
} else if (poolType.equals("StackObjectPool")) {
stackObjectPool = new StackObjectPool(factory);
} else if (poolType.equals("SoftReferenceObjectPool")) {
@@ -245,17 +218,18 @@ public class PoolSoak extends LoadGenera
} else if (poolType.equals("StackKeyedObjectPool")) {
stackKeyedObjectPool = new StackKeyedObjectPool(factory);
} else {
- throw new ConfigurationException(
- "invalid pool type configuration: " + poolType);
+ throw new ConfigurationException("invalid pool type configuration: " + poolType);
}
-
+
logger.info(displayConfig());
}
-
+
/**
* Close object pool
*/
- protected void cleanUp() throws Exception {
+ @Override
+ protected void cleanUp()
+ throws Exception {
if (genericObjectPool != null) {
genericObjectPool.close();
}
@@ -278,84 +252,71 @@ public class PoolSoak extends LoadGenera
stackKeyedObjectPool.close();
}
}
-
+
/**
* Create and return a PoolClientThread
*/
- protected ClientThread makeClientThread(long iterations, long minDelay,
- long maxDelay, double sigma, String delayType, long rampPeriod,
- long peakPeriod, long troughPeriod, String cycleType,
- String rampType, Logger logger, Statistics stats) {
+ @Override
+ protected ClientThread makeClientThread(long iterations, long minDelay, long maxDelay, double sigma,
+ String delayType, long rampPeriod, long peakPeriod, long troughPeriod, String cycleType, String rampType,
+ Logger logger, Statistics stats) {
if (poolType.equals("GenericObjectPool")) {
- return new PoolClientThread(iterations, minDelay, maxDelay,
- sigma, delayType, rampPeriod, peakPeriod, troughPeriod,
- cycleType, rampType, logger, stats, genericObjectPool,
- samplingRate);
+ return new PoolClientThread(iterations, minDelay, maxDelay, sigma, delayType, rampPeriod, peakPeriod,
+ troughPeriod, cycleType, rampType, logger, stats, genericObjectPool,
+ samplingRate);
}
if (poolType.equals("GenericKeyedObjectPool")) {
- return new PoolClientThread(iterations, minDelay, maxDelay,
- sigma, delayType, rampPeriod, peakPeriod, troughPeriod,
- cycleType, rampType, logger, stats,
- genericKeyedObjectPool, samplingRate);
+ return new PoolClientThread(iterations, minDelay, maxDelay, sigma, delayType, rampPeriod, peakPeriod,
+ troughPeriod, cycleType, rampType, logger, stats, genericKeyedObjectPool,
+ samplingRate);
}
if (poolType.equals("GenericObjectPool2")) {
- return new PoolClientThread(iterations, minDelay, maxDelay,
- sigma, delayType, rampPeriod, peakPeriod, troughPeriod,
- cycleType, rampType, logger, stats, genericObjectPool2,
- samplingRate);
+ return new PoolClientThread(iterations, minDelay, maxDelay, sigma, delayType, rampPeriod, peakPeriod,
+ troughPeriod, cycleType, rampType, logger, stats, genericObjectPool2,
+ samplingRate);
}
if (poolType.equals("GenericKeyedObjectPool2")) {
- return new PoolClientThread(iterations, minDelay, maxDelay,
- sigma, delayType, rampPeriod, peakPeriod, troughPeriod,
- cycleType, rampType, logger, stats,
- genericKeyedObjectPool2, samplingRate);
+ return new PoolClientThread(iterations, minDelay, maxDelay, sigma, delayType, rampPeriod, peakPeriod,
+ troughPeriod, cycleType, rampType, logger, stats, genericKeyedObjectPool2,
+ samplingRate);
}
if (poolType.equals("StackKeyedObjectPool")) {
- return new PoolClientThread(iterations, minDelay, maxDelay,
- sigma, delayType, rampPeriod, peakPeriod, troughPeriod,
- cycleType, rampType, logger, stats,
- stackKeyedObjectPool, samplingRate);
+ return new PoolClientThread(iterations, minDelay, maxDelay, sigma, delayType, rampPeriod, peakPeriod,
+ troughPeriod, cycleType, rampType, logger, stats, stackKeyedObjectPool,
+ samplingRate);
}
if (poolType.equals("StackObjectPool")) {
- return new PoolClientThread(iterations, minDelay, maxDelay,
- sigma, delayType, rampPeriod, peakPeriod, troughPeriod,
- cycleType, rampType, logger, stats,
- stackObjectPool, samplingRate);
+ return new PoolClientThread(iterations, minDelay, maxDelay, sigma, delayType, rampPeriod, peakPeriod,
+ troughPeriod, cycleType, rampType, logger, stats, stackObjectPool, samplingRate);
}
if (poolType.equals("SoftReferenceObjectPool")) {
- return new PoolClientThread(iterations, minDelay, maxDelay,
- sigma, delayType, rampPeriod, peakPeriod, troughPeriod,
- cycleType, rampType, logger, stats,
- softReferenceObjectPool, samplingRate);
+ return new PoolClientThread(iterations, minDelay, maxDelay, sigma, delayType, rampPeriod, peakPeriod,
+ troughPeriod, cycleType, rampType, logger, stats, softReferenceObjectPool,
+ samplingRate);
}
return null;
}
-
+
// ------------------------------------------------------------------------
// Configuration methods specific to this LoadGenerator invoked by Digester
// when superclass execute calls digester.parse.
- // ------------------------------------------------------------------------
- public void configureFactory(String activateLatency, String destroyLatency,
- String makeLatency, String passivateLatency, String validateLatency,
- String waiterLatency, String passivateInvalidationProbability) {
-
+ // ------------------------------------------------------------------------
+ public void configureFactory(String activateLatency, String destroyLatency, String makeLatency,
+ String passivateLatency, String validateLatency, String waiterLatency, String passivateInvalidationProbability) {
+
this.activateLatency = Long.parseLong(activateLatency);
this.destroyLatency = Long.parseLong(destroyLatency);
this.makeLatency = Long.parseLong(makeLatency);
this.passivateLatency = Long.parseLong(passivateLatency);
this.validateLatency = Long.parseLong(validateLatency);
this.waiterLatency = Long.parseLong(waiterLatency);
- this.passivateInvalidationProbability =
- Double.parseDouble(passivateInvalidationProbability);
+ this.passivateInvalidationProbability = Double.parseDouble(passivateInvalidationProbability);
}
-
- public void configurePool(String maxActive, String maxActivePerKey,
- String maxIdle, String minIdle, String maxWait,
- String exhaustedAction, String testOnBorrow,
- String testOnReturn, String timeBetweenEvictions,
- String testsPerEviction, String idleTimeout,
- String testWhileIdle, String lifo, String type, String samplingRate)
- throws ConfigurationException {
+
+ public void configurePool(String maxActive, String maxActivePerKey, String maxIdle, String minIdle, String maxWait,
+ String exhaustedAction, String testOnBorrow, String testOnReturn, String timeBetweenEvictions,
+ String testsPerEviction, String idleTimeout, String testWhileIdle, String lifo, String type, String samplingRate)
+ throws ConfigurationException {
this.maxActive = Integer.parseInt(maxActive);
this.maxActivePerKey = Integer.parseInt(maxActivePerKey);
this.maxIdle = Integer.parseInt(maxIdle);
@@ -375,32 +336,27 @@ public class PoolSoak extends LoadGenera
this.exhaustedAction = org.apache.commons.pool.impl.GenericObjectPool.WHEN_EXHAUSTED_FAIL;
} else if (exhaustedAction.equals("grow")) {
this.exhaustedAction = org.apache.commons.pool.impl.GenericObjectPool.WHEN_EXHAUSTED_GROW;
- } else {
- throw new ConfigurationException(
- "Bad configuration setting for exhausted action: "
- + exhaustedAction);
- }
+ } else {
+ throw new ConfigurationException("Bad configuration setting for exhausted action: " + exhaustedAction);
+ }
this.samplingRate = Double.parseDouble(samplingRate);
}
-
- public void configureAbandonedConfig(String logAbandoned,
- String removeAbandoned, String abandonedTimeout) {
+
+ public void configureAbandonedConfig(String logAbandoned, String removeAbandoned, String abandonedTimeout) {
abandonedConfig.setLogAbandoned(Boolean.parseBoolean(logAbandoned));
- abandonedConfig.setRemoveAbandoned(
- Boolean.parseBoolean(removeAbandoned));
- abandonedConfig.setRemoveAbandonedTimeout(
- Integer.parseInt(abandonedTimeout));
+ abandonedConfig.setRemoveAbandoned(Boolean.parseBoolean(removeAbandoned));
+ abandonedConfig.setRemoveAbandonedTimeout(Integer.parseInt(abandonedTimeout));
}
-
+
// Pool getters for unit tests
protected org.apache.commons.pool.impl.GenericObjectPool getGenericObjectPool() {
return genericObjectPool;
}
-
+
protected org.apache.commons.pool.impl.GenericKeyedObjectPool getGenericKeyedObjectPool() {
return genericKeyedObjectPool;
}
-
+
public String displayConfig() {
StringBuffer buffer = new StringBuffer();
buffer.append("***********************************\n");
@@ -454,5 +410,5 @@ public class PoolSoak extends LoadGenera
buffer.append("***********************************\n");
return buffer.toString();
}
-
+
}
Modified: commons/sandbox/performance/trunk/src/java/org/apache/commons/performance/pool/WaiterFactory2.java
URL: http://svn.apache.org/viewvc/commons/sandbox/performance/trunk/src/java/org/apache/commons/performance/pool/WaiterFactory2.java?rev=1580595&r1=1580594&r2=1580595&view=diff
==============================================================================
--- commons/sandbox/performance/trunk/src/java/org/apache/commons/performance/pool/WaiterFactory2.java (original)
+++ commons/sandbox/performance/trunk/src/java/org/apache/commons/performance/pool/WaiterFactory2.java Sun Mar 23 20:31:36 2014
@@ -17,81 +17,95 @@
package org.apache.commons.performance.pool;
-import java.util.concurrent.atomic.AtomicInteger;
-import org.apache.commons.pool2.PoolableObjectFactory;
-import org.apache.commons.pool2.KeyedPoolableObjectFactory;
+import org.apache.commons.pool2.KeyedPooledObjectFactory;
+import org.apache.commons.pool2.PooledObject;
+import org.apache.commons.pool2.PooledObjectFactory;
+import org.apache.commons.pool2.impl.DefaultPooledObject;
/**
* Version 2 object factory with configurable latencies for object lifecycle methods.
*/
-public class WaiterFactory2 extends WaiterFactoryBase implements
-PoolableObjectFactory<Waiter>, KeyedPoolableObjectFactory<Integer, Waiter> {
+public class WaiterFactory2
+ extends WaiterFactoryBase
+ implements PooledObjectFactory<Waiter>, KeyedPooledObjectFactory<Integer, Waiter> {
- public WaiterFactory2(long activateLatency, long destroyLatency,
- long makeLatency, long passivateLatency, long validateLatency,
- long waiterLatency,long maxActive, long maxActivePerKey,
- double passivateInvalidationProbability) {
- super(activateLatency, destroyLatency, makeLatency,
- passivateLatency, validateLatency, waiterLatency, maxActive,
- maxActivePerKey, passivateInvalidationProbability);
- }
-
- public WaiterFactory2(long activateLatency, long destroyLatency,
- long makeLatency, long passivateLatency, long validateLatency,
- long waiterLatency) {
- this(activateLatency, destroyLatency, makeLatency, passivateLatency,
- validateLatency, waiterLatency, Long.MAX_VALUE, Long.MAX_VALUE, 0);
- }
-
- public WaiterFactory2(long activateLatency, long destroyLatency,
- long makeLatency, long passivateLatency, long validateLatency,
- long waiterLatency,long maxActive) {
- this(activateLatency, destroyLatency, makeLatency, passivateLatency,
- validateLatency, waiterLatency, maxActive, Long.MAX_VALUE, 0);
- }
-
- public void activateObject(Waiter waiter) throws Exception {
- activate(waiter);
- }
-
- public void destroyObject(Waiter waiter) throws Exception {
- destroy(waiter);
- }
-
- public Waiter makeObject() throws Exception {
- return make();
- }
-
- public void passivateObject(Waiter waiter) throws Exception {
- passivate(waiter);
- }
-
- public boolean validateObject(Waiter waiter) {
- return validate(waiter);
- }
-
-
- public void activateObject(Integer key, Waiter waiter) throws Exception {
- activate(waiter);
- }
-
- public void destroyObject(Integer key, Waiter waiter) throws Exception {
- destroy(waiter);
+ public WaiterFactory2(long activateLatency, long destroyLatency, long makeLatency, long passivateLatency,
+ long validateLatency, long waiterLatency, long maxActive, long maxActivePerKey,
+ double passivateInvalidationProbability) {
+ super(activateLatency, destroyLatency, makeLatency, passivateLatency, validateLatency, waiterLatency,
+ maxActive, maxActivePerKey, passivateInvalidationProbability);
+ }
+
+ public WaiterFactory2(long activateLatency, long destroyLatency, long makeLatency, long passivateLatency,
+ long validateLatency, long waiterLatency) {
+ this(activateLatency, destroyLatency, makeLatency, passivateLatency, validateLatency, waiterLatency,
+ Long.MAX_VALUE, Long.MAX_VALUE, 0);
+ }
+
+ public WaiterFactory2(long activateLatency, long destroyLatency, long makeLatency, long passivateLatency,
+ long validateLatency, long waiterLatency, long maxActive) {
+ this(activateLatency, destroyLatency, makeLatency, passivateLatency, validateLatency, waiterLatency, maxActive,
+ Long.MAX_VALUE, 0);
+ }
+
+ @Override
+ public void activateObject(PooledObject<Waiter> waiter)
+ throws Exception {
+ activate(waiter.getObject());
+ }
+
+ @Override
+ public void destroyObject(PooledObject<Waiter> waiter)
+ throws Exception {
+ destroy(waiter.getObject());
+ }
+
+ @Override
+ public PooledObject<Waiter> makeObject()
+ throws Exception {
+ return new DefaultPooledObject<Waiter>(make());
+ }
+
+ @Override
+ public void passivateObject(PooledObject<Waiter> waiter)
+ throws Exception {
+ passivate(waiter.getObject());
+ }
+
+ @Override
+ public boolean validateObject(PooledObject<Waiter> waiter) {
+ return validate(waiter.getObject());
+ }
+
+ @Override
+ public void activateObject(Integer key, PooledObject<Waiter> waiter)
+ throws Exception {
+ activate(waiter.getObject());
+ }
+
+ @Override
+ public void destroyObject(Integer key, PooledObject<Waiter> waiter)
+ throws Exception {
+ destroy(waiter.getObject());
synchronized (this) {
- ((AtomicInteger) activeCounts.get(key)).getAndDecrement();
+ activeCounts.get(key).getAndDecrement();
}
}
-
- public Waiter makeObject(Integer key) throws Exception {
- return make(key);
+
+ @Override
+ public PooledObject<Waiter> makeObject(Integer key)
+ throws Exception {
+ return new DefaultPooledObject<Waiter>(make(key));
}
-
- public void passivateObject(Integer key, Waiter waiter) throws Exception {
+
+ @Override
+ public void passivateObject(Integer key, PooledObject<Waiter> waiter)
+ throws Exception {
passivateObject(waiter);
}
-
- public boolean validateObject(Integer key, Waiter waiter) {
+
+ @Override
+ public boolean validateObject(Integer key, PooledObject<Waiter> waiter) {
return validateObject(waiter);
}
-
}
Modified: commons/sandbox/performance/trunk/src/pool/build.properties.sample
URL: http://svn.apache.org/viewvc/commons/sandbox/performance/trunk/src/pool/build.properties.sample?rev=1580595&r1=1580594&r2=1580595&view=diff
==============================================================================
--- commons/sandbox/performance/trunk/src/pool/build.properties.sample (original)
+++ commons/sandbox/performance/trunk/src/pool/build.properties.sample Sun Mar 23 20:31:36 2014
@@ -21,6 +21,6 @@ mavenRepo=http://repo1.maven.org/maven2
# Replace with full path to versions of pool, dbcp jars you want to test with
pool-jar=${user.home}/.m2/repository/commons-pool/commons-pool/1.5.6/commons-pool-1.5.6.jar
-pool2-jar=${user.home}/.m2/repository/org/apache/commons/commons-pool2/2.0-SNAPSHOT/commons-pool2-2.0-SNAPSHOT.jar
+pool2-jar=${user.home}/.m2/repository/org/apache/commons/commons-pool2/2.2/commons-pool2-2.2.jar
dbcp-jar=${user.home}/.m2/repository/commons-dbcp/commons-dbcp/1.3/commons-dbcp-1.3.jar
Modified: commons/sandbox/performance/trunk/src/pool/build.xml
URL: http://svn.apache.org/viewvc/commons/sandbox/performance/trunk/src/pool/build.xml?rev=1580595&r1=1580594&r2=1580595&view=diff
==============================================================================
--- commons/sandbox/performance/trunk/src/pool/build.xml (original)
+++ commons/sandbox/performance/trunk/src/pool/build.xml Sun Mar 23 20:31:36 2014
@@ -64,15 +64,15 @@
<target name="get-digester">
<get
- src="${mavenRepo}/commons-digester/commons-digester/1.8/commons-digester-1.8.jar"
+ src="${mavenRepo}/commons-digester/commons-digester/2.1/commons-digester-2.1.jar"
dest="${lib}/commons-digester-1.8.jar"
usetimestamp="true"/>
</target>
<target name="get-math">
<get
- src="${mavenRepo}/org/apache/commons/commons-math/2.2/commons-math-2.2.jar"
- dest="${lib}/commons-math-2.2.jar"
+ src="${mavenRepo}/org/apache/commons/commons-math3/3.2/commons-math3-3.2.jar"
+ dest="${lib}/commons-math3-3.2.jar"
usetimestamp="true"/>
</target>
Modified: commons/sandbox/performance/trunk/src/test/org/apache/commons/performance/LoadGeneratorTest.java
URL: http://svn.apache.org/viewvc/commons/sandbox/performance/trunk/src/test/org/apache/commons/performance/LoadGeneratorTest.java?rev=1580595&r1=1580594&r2=1580595&view=diff
==============================================================================
--- commons/sandbox/performance/trunk/src/test/org/apache/commons/performance/LoadGeneratorTest.java (original)
+++ commons/sandbox/performance/trunk/src/test/org/apache/commons/performance/LoadGeneratorTest.java Sun Mar 23 20:31:36 2014
@@ -17,99 +17,110 @@
package org.apache.commons.performance;
import java.util.logging.Logger;
+
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
-import org.apache.commons.math.stat.descriptive.SummaryStatistics;
-import org.apache.commons.math.random.RandomData;
-import org.apache.commons.math.random.RandomDataImpl;
-
-public class LoadGeneratorTest extends TestCase {
-
- protected TestLoadGenerator generator = null;
- protected static Logger logger = Logger.getLogger(LoadGenerator.class.getName());
- protected static Statistics stats = new Statistics();
-
- class TestClientThread extends ClientThread {
- private long latency = 50;
- private double metricOne = 10d;
- private double metricTwo = 20d;
- private SummaryStatistics oneStats = new SummaryStatistics();
- private SummaryStatistics twoStats = new SummaryStatistics();
- private SummaryStatistics randomStats = new SummaryStatistics();
- private RandomData randomData = new RandomDataImpl();
- public TestClientThread(long iterations, long minDelay, long maxDelay,
- double sigma, String delayType, long rampPeriod,
- long peakPeriod, long troughPeriod, String cycleType,
- String rampType, Logger logger,
- Statistics stats) {
- super(iterations, minDelay, maxDelay, sigma, delayType, rampPeriod,
- peakPeriod, troughPeriod, cycleType, rampType, logger,
- stats);
- }
- public void setLatency(long latency) {
- this.latency = latency;
- }
- public void execute() throws Exception {
- Thread.sleep(latency);
- }
- protected void cleanUp() {
- oneStats.addValue(metricOne);
- twoStats.addValue(metricTwo);
- randomStats.addValue(randomData.nextUniform(0d, 1d));
- }
- protected void finish() {
- stats.addStatistics(
- oneStats, Thread.currentThread().getName(), "one");
- stats.addStatistics(
- twoStats, Thread.currentThread().getName(), "two");
- stats.addStatistics(
- randomStats, Thread.currentThread().getName(), "random");
- }
- }
-
- class TestLoadGenerator extends LoadGenerator {
- protected ClientThread makeClientThread(long iterations, long minDelay,
- long maxDelay, double sigma, String delayType, long rampPeriod,
- long peakPeriod, long troughPeriod, String cycleType,
- String rampType, Logger logger, Statistics stats) {
- return new TestClientThread(iterations, minDelay,
- maxDelay, sigma, delayType, rampPeriod,
- peakPeriod, troughPeriod, cycleType,
- rampType, logger, stats);
- }
- protected void parseConfigFile() throws Exception {
- getDigester().parse(this.getClass().getResourceAsStream(
- "/org/apache/commons/performance/pool/config-pool.xml"));
- }
- }
-
-
- public LoadGeneratorTest(String name) {
- super(name);
- }
-
-
- public static Test suite() {
- return new TestSuite(LoadGeneratorTest.class);
- }
-
- public void setUp() throws Exception {
- generator = new TestLoadGenerator();
- }
-
- public void testStatistics() throws Exception {
- generator.execute();
- Statistics statistics = generator.getStatistics();
- SummaryStatistics stats = null;
- stats = statistics.getMeanSummary("latency");
- assertEquals(50, stats.getMean(), 100.0);
- stats = statistics.getMeanSummary("one");
- assertEquals(10, stats.getMean(), 1.0);
- stats = statistics.getMeanSummary("two");
- assertEquals(20, stats.getMean(), 1.0);
- stats = statistics.getMeanSummary("random");
- assertEquals(0.5, stats.getMean(), 0.25);
- }
-
+
+import org.apache.commons.math3.random.RandomDataGenerator;
+import org.apache.commons.math3.stat.descriptive.SummaryStatistics;
+
+public class LoadGeneratorTest
+ extends TestCase {
+
+ protected TestLoadGenerator generator = null;
+ protected static Logger logger = Logger.getLogger(LoadGenerator.class.getName());
+ protected static Statistics stats = new Statistics();
+
+ class TestClientThread
+ extends ClientThread {
+
+ private long latency = 50;
+ private double metricOne = 10d;
+ private double metricTwo = 20d;
+ private SummaryStatistics oneStats = new SummaryStatistics();
+ private SummaryStatistics twoStats = new SummaryStatistics();
+ private SummaryStatistics randomStats = new SummaryStatistics();
+ private RandomDataGenerator randomData = new RandomDataGenerator();
+
+ public TestClientThread(long iterations, long minDelay, long maxDelay, double sigma, String delayType,
+ long rampPeriod, long peakPeriod, long troughPeriod, String cycleType, String rampType,
+ Logger logger, Statistics stats) {
+ super(iterations, minDelay, maxDelay, sigma, delayType, rampPeriod, peakPeriod, troughPeriod, cycleType,
+ rampType, logger, stats);
+ }
+
+ public void setLatency(long latency) {
+ this.latency = latency;
+ }
+
+ @Override
+ public void execute()
+ throws Exception {
+ Thread.sleep(latency);
+ }
+
+ @Override
+ protected void cleanUp() {
+ oneStats.addValue(metricOne);
+ twoStats.addValue(metricTwo);
+ randomStats.addValue(randomData.nextUniform(0d, 1d));
+ }
+
+ @Override
+ protected void finish() {
+ stats.addStatistics(oneStats, Thread.currentThread().getName(), "one");
+ stats.addStatistics(twoStats, Thread.currentThread().getName(), "two");
+ stats.addStatistics(randomStats, Thread.currentThread().getName(), "random");
+ }
+ }
+
+ class TestLoadGenerator
+ extends LoadGenerator {
+
+ @Override
+ protected ClientThread makeClientThread(long iterations, long minDelay, long maxDelay, double sigma,
+ String delayType, long rampPeriod, long peakPeriod, long troughPeriod,
+ String cycleType, String rampType, Logger logger, Statistics stats) {
+ return new TestClientThread(iterations, minDelay, maxDelay, sigma, delayType, rampPeriod, peakPeriod,
+ troughPeriod, cycleType, rampType, logger, stats);
+ }
+
+ @Override
+ protected void parseConfigFile()
+ throws Exception {
+ getDigester().parse(this.getClass()
+ .getResourceAsStream("/org/apache/commons/performance/pool/config-pool.xml"));
+ }
+ }
+
+ public LoadGeneratorTest(String name) {
+ super(name);
+ }
+
+ public static Test suite() {
+ return new TestSuite(LoadGeneratorTest.class);
+ }
+
+ @Override
+ public void setUp()
+ throws Exception {
+ generator = new TestLoadGenerator();
+ }
+
+ public void testStatistics()
+ throws Exception {
+ generator.execute();
+ Statistics statistics = generator.getStatistics();
+ SummaryStatistics stats = null;
+ stats = statistics.getMeanSummary("latency");
+ assertEquals(50, stats.getMean(), 100.0);
+ stats = statistics.getMeanSummary("one");
+ assertEquals(10, stats.getMean(), 1.0);
+ stats = statistics.getMeanSummary("two");
+ assertEquals(20, stats.getMean(), 1.0);
+ stats = statistics.getMeanSummary("random");
+ assertEquals(0.5, stats.getMean(), 0.25);
+ }
+
}
Modified: commons/sandbox/performance/trunk/src/test/org/apache/commons/performance/pool/PoolSoakTest.java
URL: http://svn.apache.org/viewvc/commons/sandbox/performance/trunk/src/test/org/apache/commons/performance/pool/PoolSoakTest.java?rev=1580595&r1=1580594&r2=1580595&view=diff
==============================================================================
--- commons/sandbox/performance/trunk/src/test/org/apache/commons/performance/pool/PoolSoakTest.java (original)
+++ commons/sandbox/performance/trunk/src/test/org/apache/commons/performance/pool/PoolSoakTest.java Sun Mar 23 20:31:36 2014
@@ -23,7 +23,7 @@ import java.util.List;
import java.util.logging.Logger;
import org.apache.commons.dbcp.AbandonedConfig;
import org.apache.commons.dbcp.AbandonedObjectPool;
-import org.apache.commons.math.stat.descriptive.SummaryStatistics;
+import org.apache.commons.math3.stat.descriptive.SummaryStatistics;
import org.apache.commons.pool.impl.GenericObjectPool;
import junit.framework.Test;
import junit.framework.TestCase;
Modified: commons/sandbox/performance/trunk/src/test/org/apache/commons/performance/pool/WaiterTest.java
URL: http://svn.apache.org/viewvc/commons/sandbox/performance/trunk/src/test/org/apache/commons/performance/pool/WaiterTest.java?rev=1580595&r1=1580594&r2=1580595&view=diff
==============================================================================
--- commons/sandbox/performance/trunk/src/test/org/apache/commons/performance/pool/WaiterTest.java (original)
+++ commons/sandbox/performance/trunk/src/test/org/apache/commons/performance/pool/WaiterTest.java Sun Mar 23 20:31:36 2014
@@ -23,7 +23,7 @@ import java.util.List;
import java.util.logging.Logger;
import org.apache.commons.dbcp.AbandonedConfig;
import org.apache.commons.dbcp.AbandonedObjectPool;
-import org.apache.commons.math.stat.descriptive.SummaryStatistics;
+import org.apache.commons.math3.stat.descriptive.SummaryStatistics;
import org.apache.commons.pool.impl.GenericObjectPool;
import junit.framework.Test;
import junit.framework.TestCase;