## php.java.servlet
Class ConnectionPool

    java.lang.Object
      php.java.servlet.ConnectionPool

    public class ConnectionPool

extends java.lang.Object

A connection pool. Example:
`ConnectionPool pool = new ConnectionPool("127.0.0.1", 8080, 20, new ConnectionPool.Factory());
ConnectionPool.Connection conn = pool.openConnection();
InputStream in = conn.getInputStream();
OutputStream out = conn.getOutputStream();
...
in.close();
out.close();
...
pool.destroy();
`

Instead of using delegation (decorator pattern), it is possible to pass a factory which may create custom In- and OutputStreams. Example:
`new ConnectionPool(..., new ConnectionPool.Factory() {
public InputStream getInputStream() {
return new ConnectionPool.DefaultInputStream() {
...
}
}
}
`

Author:
  jostb

Nested Class Summary
`class` `ConnectionPool.Connection` Represents the connection kept by the pool.
`static class` `ConnectionPool.DefaultInputStream` Default InputStream used by the connection pool.
`static class` `ConnectionPool.DefaultOutputStream` Default OutputStream used by the connection pool.
`static class` `ConnectionPool.Factory` In-/OutputStream factory.

Constructor Summary
`ConnectionPool(java.lang.String host, int port, int limit, ConnectionPool.Factory factory)` Create a new connection pool.

Method Summary
`void` `destroy()` Destroy the connection pool.
`ConnectionPool.Connection` `openConnection()` Opens a connection to the back end.

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### ConnectionPool

    public ConnectionPool(java.lang.String host,
                          int port,
                          int limit,
                          ConnectionPool.Factory factory)
                   throws java.net.UnknownHostException,
                          java.io.IOException

  Create a new connection pool.

  Parameters:
    `host` - The host
    `port` - The port number
    `limit` - The max. number of physical connections
    `factory` - A factory for creating In- and OutputStreams.
  Throws:
    `java.io.IOException`
    `java.net.UnknownHostException`
  See Also:
    `ConnectionPool.Factory`

Method Detail

### openConnection

    public ConnectionPool.Connection openConnection()
                                             throws java.net.UnknownHostException,
                                                    java.io.IOException,
                                                    java.lang.InterruptedException

  Opens a connection to the back end.

  Returns:
    The connection
  Throws:
    `java.net.UnknownHostException`
    `java.io.IOException`
    `java.lang.InterruptedException`

### destroy

    public void destroy()

  Destroy the connection pool. It releases all physical connections.