php.java.servlet
Class ConnectionPool

java.lang.Object
  extended by 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, 5000, 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
static class ConnectionPool.ConnectException
          Thrown when the server is not available anymore
 class ConnectionPool.Connection
          Represents the connection kept by the pool.
static class ConnectionPool.ConnectionException
          Thrown when an IO exception occurs
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, int maxRequests, 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,
                      int maxRequests,
                      ConnectionPool.Factory factory)
               throws ConnectionPool.ConnectException
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:
ConnectionPool.ConnectException
See Also:
ConnectionPool.Factory
Method Detail

openConnection

public ConnectionPool.Connection openConnection()
                                         throws java.lang.InterruptedException,
                                                ConnectionPool.ConnectException,
                                                java.net.SocketException
Opens a connection to the back end.

Returns:
The connection
Throws:
UnknownHostException
java.lang.InterruptedException
java.net.SocketException
java.io.IOException
ConnectionPool.ConnectException

destroy

public void destroy()
Destroy the connection pool. It releases all physical connections.