Example usage for org.apache.commons.pool.impl GenericKeyedObjectPool GenericKeyedObjectPool

List of usage examples for org.apache.commons.pool.impl GenericKeyedObjectPool GenericKeyedObjectPool

Introduction

In this page you can find the example usage for org.apache.commons.pool.impl GenericKeyedObjectPool GenericKeyedObjectPool.

Prototype

public GenericKeyedObjectPool(KeyedPoolableObjectFactory factory) 

Source Link

Document

Create a new GenericKeyedObjectPool using the specified values.

Usage

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());
}