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

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

Introduction

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

Prototype

public synchronized void setMaxIdle(int maxIdle) 

Source Link

Document

Sets the cap on the number of "idle" instances in the pool.

Usage

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);/*from w  w  w  .j a v a 2 s.  c  o m*/
    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

@Ignore
// This sometimes fails on the CI server
@Test//from w  w w.ja  v  a  2s . c  om
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);//www .ja v a2  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.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   w  w w.  ja v  a2  s. co 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:edu.illinois.enforcemop.examples.apache.pool.TestGenericKeyedObjectPool.java

public void testSettersAndGetters() throws Exception {
    GenericKeyedObjectPool pool = new GenericKeyedObjectPool();
    {//from  w ww. j a va 2 s .co m
        pool.setFactory(new SimpleFactory());
    }
    {
        pool.setMaxActive(123);
        assertEquals(123, pool.getMaxActive());
    }
    {
        pool.setMaxIdle(12);
        assertEquals(12, pool.getMaxIdle());
    }
    {
        pool.setMaxWait(1234L);
        assertEquals(1234L, pool.getMaxWait());
    }
    {
        pool.setMinEvictableIdleTimeMillis(12345L);
        assertEquals(12345L, pool.getMinEvictableIdleTimeMillis());
    }
    {
        pool.setNumTestsPerEvictionRun(11);
        assertEquals(11, pool.getNumTestsPerEvictionRun());
    }
    {
        pool.setTestOnBorrow(true);
        assertTrue(pool.getTestOnBorrow());
        pool.setTestOnBorrow(false);
        assertTrue(!pool.getTestOnBorrow());
    }
    {
        pool.setTestOnReturn(true);
        assertTrue(pool.getTestOnReturn());
        pool.setTestOnReturn(false);
        assertTrue(!pool.getTestOnReturn());
    }
    {
        pool.setTestWhileIdle(true);
        assertTrue(pool.getTestWhileIdle());
        pool.setTestWhileIdle(false);
        assertTrue(!pool.getTestWhileIdle());
    }
    {
        pool.setTimeBetweenEvictionRunsMillis(11235L);
        assertEquals(11235L, pool.getTimeBetweenEvictionRunsMillis());
    }
    {
        pool.setWhenExhaustedAction(GenericKeyedObjectPool.WHEN_EXHAUSTED_BLOCK);
        assertEquals(GenericObjectPool.WHEN_EXHAUSTED_BLOCK, pool.getWhenExhaustedAction());
        pool.setWhenExhaustedAction(GenericKeyedObjectPool.WHEN_EXHAUSTED_FAIL);
        assertEquals(GenericObjectPool.WHEN_EXHAUSTED_FAIL, pool.getWhenExhaustedAction());
        pool.setWhenExhaustedAction(GenericKeyedObjectPool.WHEN_EXHAUSTED_GROW);
        assertEquals(GenericObjectPool.WHEN_EXHAUSTED_GROW, pool.getWhenExhaustedAction());
    }
}

From source file:edu.illinois.enforcemop.examples.apache.pool.TestGenericKeyedObjectPool.java

protected KeyedObjectPool makeEmptyPool(int mincapacity) {
    GenericKeyedObjectPool pool = new GenericKeyedObjectPool(new KeyedPoolableObjectFactory() {
        HashMap map = new HashMap();

        public Object makeObject(Object key) {
            int counter = 0;
            Integer Counter = (Integer) (map.get(key));
            if (null != Counter) {
                counter = Counter.intValue();
            }//from  w w  w . j  av a  2 s. co  m
            map.put(key, new Integer(counter + 1));
            return String.valueOf(key) + String.valueOf(counter);
        }

        public void destroyObject(Object key, Object obj) {
        }

        public boolean validateObject(Object key, Object obj) {
            return true;
        }

        public void activateObject(Object key, Object obj) {
        }

        public void passivateObject(Object key, Object obj) {
        }
    });
    pool.setMaxActive(mincapacity);
    pool.setMaxIdle(mincapacity);
    return pool;
}