List of usage examples for org.apache.commons.pool.impl GenericKeyedObjectPool GenericKeyedObjectPool
public GenericKeyedObjectPool(KeyedPoolableObjectFactory factory)
GenericKeyedObjectPool
using the specified values. From source file:edu.illinois.imunit.examples.apache.pool.TestGenericKeyedObjectPool.java
public void setUp() throws Exception { super.setUp(); pool = new GenericKeyedObjectPool(new SimpleFactory()); }
From source file:com.googlecode.jmxtrans.model.output.StatsDWriter.java
@Override public void start() throws LifecycleException { try {/*from w w w . j a v a2 s .co m*/ pool = new GenericKeyedObjectPool<>(new DatagramSocketFactory()); pool.setTestOnBorrow(true); pool.setMaxActive(-1); pool.setMaxIdle(-1); pool.setTimeBetweenEvictionRunsMillis(MILLISECONDS.convert(5, MINUTES)); pool.setMinEvictableIdleTimeMillis(MILLISECONDS.convert(5, MINUTES)); this.mbean = new ManagedGenericKeyedObjectPool((GenericKeyedObjectPool) pool, "StatsdConnectionPool"); ManagementFactory.getPlatformMBeanServer().registerMBean(this.mbean, this.mbean.getObjectName()); } catch (Exception e) { throw new LifecycleException(e); } }
From source file:com.tasktop.c2c.server.common.service.tests.ajp.AjpProtocolTest.java
@Test public void testMultipleSuccessiveRequestsOnOneConnection() throws IOException { GenericKeyedObjectPool uniSocketPool = new GenericKeyedObjectPool(new AjpPoolableConnectionFactory()); uniSocketPool.setLifo(true);//from ww w . j a v a 2 s .com uniSocketPool.setMaxIdle(1); uniSocketPool.setMaxTotal(1); uniSocketPool.setMinIdle(1); protocol.setSocketPool(uniSocketPool); final int numRequests = 50; for (int x = 0; x < numRequests; ++x) { System.out.println("request: " + x); Payload payload = new Payload(); MockHttpServletRequest request = new MockHttpServletRequest(); if (x % 3 == 0) { payload.setResponseCode(HttpServletResponse.SC_CREATED); payload.setCharacterContent("some content " + x); payload.getResponseHeaders().put("foo", "bar"); TestServlet.setResponsePayload(payload); String formContent = "a=b&c=def"; byte[] requestContent = formContent.getBytes(); request.setMethod("PUT"); request.setRequestURI("/testPostData" + x); request.addHeader("Content-Type", "application/x-www-form-urlencoded"); request.addHeader("Content-Length", requestContent.length); request.setContent(requestContent); } else { payload.setResponseCode(HttpServletResponse.SC_OK); payload.setBinaryContent(createData((x * 1024) + 3)); payload.getResponseHeaders().put("Content-Length", Integer.toString(payload.getBinaryContent().length)); payload.getResponseHeaders().put("Content-Type", "unknown"); payload.getResponseHeaders().put("TestPayloadNumber", Integer.toHexString(x) + '/' + Integer.toHexString(numRequests)); TestServlet.setResponsePayload(payload); request.setMethod("GET"); request.setRequestURI("/test" + x); } MockHttpServletResponse response = new MockHttpServletResponse(); protocol.forward(request, response); assertRequestIsExpected(request, TestServlet.getLastRequest()); assertResponseIsExpected(payload, response); } }
From source file:com.googlecode.jmxtrans.guice.JmxTransModule.java
private <K, V> GenericKeyedObjectPool getObjectPool(KeyedPoolableObjectFactory<K, V> factory, String poolName) { GenericKeyedObjectPool<K, V> pool = new GenericKeyedObjectPool<K, V>(factory); pool.setTestOnBorrow(true);// w w w. j a v a2 s . c om pool.setMaxActive(-1); pool.setMaxIdle(-1); pool.setTimeBetweenEvictionRunsMillis(MILLISECONDS.convert(5, MINUTES)); pool.setMinEvictableIdleTimeMillis(MILLISECONDS.convert(5, MINUTES)); try { ManagedGenericKeyedObjectPool mbean = new ManagedGenericKeyedObjectPool(pool, poolName); ManagementFactory.getPlatformMBeanServer().registerMBean(mbean, mbean.getObjectName()); } catch (Exception e) { log.error("Could not register mbean for pool [{}]", poolName, e); } return pool; }
From source file:com.tasktop.c2c.server.common.service.tests.ajp.AjpProtocolTest.java
@Test // Trying to recreate task 718 public void testGetThenPost() throws Exception { final byte[] POST_REQUEST_PAYLOAD = createData(431); GenericKeyedObjectPool uniSocketPool = new GenericKeyedObjectPool(new AjpPoolableConnectionFactory()); uniSocketPool.setLifo(true);//from ww w .j a va 2s.c o m uniSocketPool.setMaxIdle(1); uniSocketPool.setMaxTotal(1); uniSocketPool.setMinIdle(1); protocol.setSocketPool(uniSocketPool); for (int i = 0; i < 10; i++) { MockHttpServletRequest getRequest = new MockHttpServletRequest(); getRequest.setMethod("GET"); getRequest.setRequestURI("/alm/s/code2cloud/scm/test4.git/info/refs"); getRequest.setQueryString("service=git-receive-pack"); getRequest.addParameter("service", "git-receive-pack"); getRequest.addHeader("Authorization", AUTH_HEADER); getRequest.addHeader("Host", "localhost:8888"); getRequest.addHeader("User-Agent", "git/1.7.3.1"); getRequest.addHeader("Accept", "*/*"); getRequest.addHeader("Pragma", "no-cache"); Payload getPayload = new Payload(); getPayload.setResponseCode(HttpServletResponse.SC_OK); getPayload.setCharacterContent(GET_RESPONSE_PAYLOAD); MockHttpServletResponse response = new MockHttpServletResponse(); TestServlet.setResponsePayload(getPayload); protocol.forward(getRequest, response); assertRequestIsExpected(getRequest, TestServlet.getLastRequest()); assertResponseIsExpected(getPayload, response); MockHttpServletRequest postRequest = new MockHttpServletRequest(); postRequest.setMethod("POST"); postRequest.setRequestURI("/alm/s/code2cloud/scm/test4.git/git-receive-pack"); postRequest.addHeader("Authorization", AUTH_HEADER); postRequest.addHeader("Host", "localhost:8888"); postRequest.addHeader("Content-Length", "" + POST_REQUEST_PAYLOAD.length); postRequest.addHeader("Accept-Encoding", "deflate, gzip"); postRequest.addHeader("User-Agent", "git/1.7.3.1"); postRequest.addHeader("Accept", "application/x-git-receive-pack-result"); postRequest.addHeader("Content-Type", "application/x-git-receive-pack-request"); postRequest.setContent(POST_REQUEST_PAYLOAD); Payload postPayload = new Payload(); postPayload.setResponseCode(HttpServletResponse.SC_OK); postPayload.setCharacterContent(POST_RESPONSE_PAYLOAD); response = new MockHttpServletResponse(); TestServlet.setResponsePayload(postPayload); protocol.forward(postRequest, response); assertRequestIsExpected(postRequest, TestServlet.getLastRequest()); assertResponseIsExpected(postPayload, response); } }
From source file:com.tasktop.c2c.server.common.service.tests.ajp.AjpProtocolTest.java
@Ignore // This sometimes fails on the CI server @Test/*from w ww.ja va 2 s . c o m*/ public void testMultipleSuccessiveGets() throws IOException { GenericKeyedObjectPool uniSocketPool = new GenericKeyedObjectPool(new AjpPoolableConnectionFactory()); uniSocketPool.setLifo(true); uniSocketPool.setMaxIdle(1); uniSocketPool.setMaxTotal(1); uniSocketPool.setMinIdle(1); protocol.setSocketPool(uniSocketPool); final int numRequests = 50; for (int x = 0; x < numRequests; ++x) { System.out.println("request: " + x); Payload payload = new Payload(); MockHttpServletRequest request = new MockHttpServletRequest() { @Override public int getContentLength() { return -1; } }; payload.setResponseCode(HttpServletResponse.SC_OK); payload.setBinaryContent(createData((x + 3) * 512)); payload.setCharacterContent("some content " + x); payload.getResponseHeaders().put("foo", "bar"); TestServlet.setResponsePayload(payload); request.setMethod("GET"); request.setRequestURI("/testGet" + x); request.addHeader("Content-Type", "text/plain"); MockHttpServletResponse response = new MockHttpServletResponse(); protocol.forward(request, response); assertRequestIsExpected(request, TestServlet.getLastRequest()); assertResponseIsExpected(payload, response); } }
From source file:edu.illinois.enforcemop.examples.apache.pool.TestGenericKeyedObjectPool.java
/** * Verifies that maxTotal is not exceeded when factory destroyObject * has high latency, testOnReturn is set and there is high incidence of * validation failures. //from w w w . j ava 2 s .c o m */ public void testMaxTotalInvariant() throws Exception { int maxTotal = 15; SimpleFactory factory = new SimpleFactory(); factory.setEvenValid(false); // Every other validation fails factory.setDestroyLatency(100); // Destroy takes 100 ms factory.setMaxActive(maxTotal); // (makes - destroys) bound factory.setValidationEnabled(true); pool = new GenericKeyedObjectPool(factory); pool.setMaxTotal(maxTotal); pool.setMaxIdle(-1); pool.setTestOnReturn(true); pool.setMaxWait(10000L); runTestThreads(5, 10, 50); }
From source file:edu.illinois.enforcemop.examples.apache.pool.TestGenericKeyedObjectPool.java
private void checkEvictionOrder(boolean lifo) throws Exception { SimpleFactory factory = new SimpleFactory(); GenericKeyedObjectPool pool = new GenericKeyedObjectPool(factory); pool.setNumTestsPerEvictionRun(2);//www.ja v a 2 s . c om pool.setMinEvictableIdleTimeMillis(100); pool.setLifo(lifo); for (int i = 0; i < 3; i++) { Integer key = new Integer(i); for (int j = 0; j < 5; j++) { pool.addObject(key); } } // Make all evictable Thread.sleep(200); /* * Initial state (Key, Object) pairs in order of age: * * (0,0), (0,1), (0,2), (0,3), (0,4) * (1,5), (1,6), (1,7), (1,8), (1,9) * (2,10), (2,11), (2,12), (2,13), (2,14) */ pool.evict(); // Kill (0,0),(0,1) assertEquals(3, pool.getNumIdle(zero)); Object obj = pool.borrowObject(zero); assertTrue(lifo ? obj.equals("04") : obj.equals("02")); assertEquals(2, pool.getNumIdle(zero)); obj = pool.borrowObject(zero); assertTrue(obj.equals("03")); assertEquals(1, pool.getNumIdle(zero)); pool.evict(); // Kill remaining 0 survivor and (1,5) assertEquals(0, pool.getNumIdle(zero)); assertEquals(4, pool.getNumIdle(one)); obj = pool.borrowObject(one); assertTrue(lifo ? obj.equals("19") : obj.equals("16")); assertEquals(3, pool.getNumIdle(one)); obj = pool.borrowObject(one); assertTrue(lifo ? obj.equals("18") : obj.equals("17")); assertEquals(2, pool.getNumIdle(one)); pool.evict(); // Kill remaining 1 survivors assertEquals(0, pool.getNumIdle(one)); pool.evict(); // Kill (2,10), (2,11) assertEquals(3, pool.getNumIdle(two)); obj = pool.borrowObject(two); assertTrue(lifo ? obj.equals("214") : obj.equals("212")); assertEquals(2, pool.getNumIdle(two)); pool.evict(); // All dead now assertEquals(0, pool.getNumIdle(two)); pool.evict(); // Should do nothing - make sure no exception pool.evict(); // Reload pool.setMinEvictableIdleTimeMillis(500); factory.counter = 0; // Reset counter for (int i = 0; i < 3; i++) { Integer key = new Integer(i); for (int j = 0; j < 5; j++) { pool.addObject(key); } Thread.sleep(200); } // 0's are evictable, others not pool.evict(); // Kill (0,0),(0,1) assertEquals(3, pool.getNumIdle(zero)); pool.evict(); // Kill (0,2),(0,3) assertEquals(1, pool.getNumIdle(zero)); pool.evict(); // Kill (0,4), leave (1,5) assertEquals(0, pool.getNumIdle(zero)); assertEquals(5, pool.getNumIdle(one)); assertEquals(5, pool.getNumIdle(two)); pool.evict(); // (1,6), (1,7) assertEquals(5, pool.getNumIdle(one)); assertEquals(5, pool.getNumIdle(two)); pool.evict(); // (1,8), (1,9) assertEquals(5, pool.getNumIdle(one)); assertEquals(5, pool.getNumIdle(two)); pool.evict(); // (2,10), (2,11) assertEquals(5, pool.getNumIdle(one)); assertEquals(5, pool.getNumIdle(two)); pool.evict(); // (2,12), (2,13) assertEquals(5, pool.getNumIdle(one)); assertEquals(5, pool.getNumIdle(two)); pool.evict(); // (2,14), (1,5) assertEquals(5, pool.getNumIdle(one)); assertEquals(5, pool.getNumIdle(two)); Thread.sleep(200); // Ones now timed out pool.evict(); // kill (1,6), (1,7) - (1,5) missed assertEquals(3, pool.getNumIdle(one)); assertEquals(5, pool.getNumIdle(two)); obj = pool.borrowObject(one); assertTrue(lifo ? obj.equals("19") : obj.equals("15")); }
From source file:edu.illinois.enforcemop.examples.apache.pool.TestGenericKeyedObjectPool.java
public void testExceptionOnPassivateDuringReturn() throws Exception { SimpleFactory factory = new SimpleFactory(); GenericKeyedObjectPool pool = new GenericKeyedObjectPool(factory); Object obj = pool.borrowObject("one"); factory.setThrowExceptionOnPassivate(true); pool.returnObject("one", obj); assertEquals(0, pool.getNumIdle());//from www . j ava2s .c o m pool.close(); }
From source file:edu.illinois.enforcemop.examples.apache.pool.TestGenericKeyedObjectPool.java
public void testExceptionOnDestroyDuringBorrow() throws Exception { SimpleFactory factory = new SimpleFactory(); factory.setThrowExceptionOnDestroy(true); factory.setValidationEnabled(true);// www . j a v a 2s .c om GenericKeyedObjectPool pool = new GenericKeyedObjectPool(factory); pool.setTestOnBorrow(true); pool.borrowObject("one"); factory.setValid(false); // Make validation fail on next borrow attempt try { pool.borrowObject("one"); fail("Expecting NoSuchElementException"); } catch (NoSuchElementException ex) { // expected } assertEquals(1, pool.getNumActive("one")); assertEquals(0, pool.getNumIdle("one")); assertEquals(1, pool.getNumActive()); assertEquals(0, pool.getNumIdle()); }