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

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

Introduction

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

Prototype

public synchronized void setLifo(boolean lifo) 

Source Link

Document

Sets the LIFO property of the pools.

Usage

From source file:com.tasktop.c2c.server.common.service.tests.ajp.AjpProtocolTest.java

@Ignore
// This sometimes fails on the CI server
@Test//from w w w. j a va 2s.co 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: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);
    uniSocketPool.setMaxIdle(1);/*w w w.  j  a  v a  2  s.co m*/
    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.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);
    uniSocketPool.setMaxIdle(1);/*  www  .j  av a 2s.c om*/
    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: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);//  w  w w .j av  a  2 s.  co  m
    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"));
}