Package com.verisign.epp.pool

## Class EPPSessionPoolableFactory

- java.lang.Object
- - com.verisign.epp.pool.EPPSessionPoolableFactory

- All Implemented Interfaces:
    `org.apache.commons.pool2.PooledObjectFactory<EPPPooledGenericSession>`

      public class EPPSessionPoolableFactory
      extends java.lang.Object
      implements org.apache.commons.pool2.PooledObjectFactory<EPPPooledGenericSession>

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static long` | `TIMEOUT_UNSET` | The timeout value is not set.

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `EPPSessionPoolableFactory()` | Default constructor.
    `EPPSessionPoolableFactory​(java.lang.String aClientId, java.lang.String aPassword, long aAbsoluteTimeout, long aIdleTimeout)` | Create an EPP session poolable factory with the client id, password used to authenticate the session along with the timeout settings.
    `EPPSessionPoolableFactory​(java.lang.String aClientId, java.lang.String aPassword, long aMinAbsoluteTimeout, long aMaxAbsoluteTimeout, long aIdleTimeout)` | Create an EPP session poolable factory with the client id, password used to authenticate the session along with the timeout settings.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `activateObject​(org.apache.commons.pool2.PooledObject<EPPPooledGenericSession> aSession)` | Session being borrowed from the pool.
    `void` | `destroyObject​(org.apache.commons.pool2.PooledObject<EPPPooledGenericSession> aSession)` | Destroy object from the pool.
    `long` | `getAbsoluteTimeout()` | Gets the session absolute timeout in milliseconds.
    `java.lang.String` | `getClientHost()` | Gets the TCP server IP address or host name to connect from.
    `java.lang.String` | `getClientId()` |
    `EPPClientTransIdGenerator` | `getClientTransIdGenerator()` | Gets the client transaction identifier generator object that is set.
    `long` | `getIdleTimeout()` | Gets the session idle timeout.
    `long` | `getMaxAbsoluteTimeout()` | Gets the maximum session absolute timeout in milliseconds.
    `long` | `getMinAbsoluteTimeout()` | Gets the minimum session absolute timeout in milliseconds.
    `java.lang.String` | `getPassword()` |
    `java.lang.String` | `getServerName()` | Gets the TCP server IP address or host name, or the URL of the HTTP server.
    `java.lang.Integer` | `getServerPort()` | Gets the TCP server port number.
    `EPPSSLContext` | `getSSLContext()` | Gets the optional `EPPSSLContext` associated with the factory.
    `boolean` | `isRandomAbsoluteTimeout()` | Returns whether the absolute timeout will be randomized between the `minAbsoluteTimeout` and `maxAbsoluteTimemout`.
    `org.apache.commons.pool2.PooledObject<EPPPooledGenericSession>` | `makeObject()` | Creates a new session object.
    `protected EPPPooledGenericSession` | `makeSession()` | Make an EPP session instance for pool.
    `void` | `passivateObject​(org.apache.commons.pool2.PooledObject<EPPPooledGenericSession> aSession)` | Session is being returned to the pool.
    `void` | `setAbsoluteTimeout​(long aAbsoluteTimeout)` | Sets the session absolute timeout in milliseconds.
    `void` | `setClientHost​(java.lang.String aClientHost)` | Sets the TCP server IP address or host name to connect from.
    `void` | `setClientId​(java.lang.String clientId)` |
    `void` | `setClientTransIdGenerator​(EPPClientTransIdGenerator aClientTransIdGenerator)` | Sets the client transaction identifier generator object that is used to generate client transaction identifiers for the login and logout commands.
    `void` | `setIdleTimeout​(long aIdleTimeout)` | Sets the session idle timeout.
    `void` | `setMaxAbsoluteTimeout​(long aMaxAbsoluteTimeout)` | Sets the maximum session absolute timeout.
    `void` | `setMinAbsoluteTimeout​(long aMinAbsoluteTimeout)` | Sets the minimum session absolute timeout.
    `void` | `setPassword​(java.lang.String password)` |
    `void` | `setServerName​(java.lang.String aServerName)` | Sets the TCP server IP address or host name or the URL of the HTTP server.
    `void` | `setServerPort​(java.lang.Integer aServerPort)` | Sets the TCP server port number.
    `void` | `setSSLContext​(EPPSSLContext aSSLContext)` | Gets the optional `EPPSSLContext` associated with the factory.
    `boolean` | `validateObject​(org.apache.commons.pool2.PooledObject<EPPPooledGenericSession> aSession)` | Validates a session by sending a keep alive.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### TIMEOUT_UNSET

          public static long TIMEOUT_UNSET

      The timeout value is not set.

  - ### Constructor Detail

    - #### EPPSessionPoolableFactory

          public EPPSessionPoolableFactory()

      Default constructor. Must set the following attributes for using:
      - clientId
      - password
      - absoluteTimeout
      - idleTimeout

    - #### EPPSessionPoolableFactory

          public EPPSessionPoolableFactory​(java.lang.String aClientId,
                                           java.lang.String aPassword,
                                           long aAbsoluteTimeout,
                                           long aIdleTimeout)

      Create an EPP session poolable factory with the client id, password used to authenticate the session along with the timeout settings.
      Parameters:
        `aClientId` - Login id used to authenticate
        `aPassword` - Password used to authenticate
        `aAbsoluteTimeout` - Session absolute timeout
        `aIdleTimeout` - Session idle timeout

    - #### EPPSessionPoolableFactory

          public EPPSessionPoolableFactory​(java.lang.String aClientId,
                                           java.lang.String aPassword,
                                           long aMinAbsoluteTimeout,
                                           long aMaxAbsoluteTimeout,
                                           long aIdleTimeout)

      Create an EPP session poolable factory with the client id, password used to authenticate the session along with the timeout settings.
      Parameters:
        `aClientId` - Login id used to authenticate
        `aPassword` - Password used to authenticate
        `aMinAbsoluteTimeout` - Session minimum absolute timeout
        `aMaxAbsoluteTimeout` - Session maximum absolute timeout
        `aIdleTimeout` - Session idle timeout

  - ### Method Detail

    - #### getClientId

          public java.lang.String getClientId()

      Returns:
        Returns the clientId.

    - #### setClientId

          public void setClientId​(java.lang.String clientId)

      Parameters:
        `clientId` - The clientId to set.

    - #### getPassword

          public java.lang.String getPassword()

      Returns:
        Returns the password.

    - #### setPassword

          public void setPassword​(java.lang.String password)

      Parameters:
        `password` - The password to set.

    - #### getAbsoluteTimeout

          public long getAbsoluteTimeout()

      Gets the session absolute timeout in milliseconds.
      Returns:
        Absolute timeout in milliseconds

    - #### setAbsoluteTimeout

          public void setAbsoluteTimeout​(long aAbsoluteTimeout)

      Sets the session absolute timeout in milliseconds.
      Parameters:
        `aAbsoluteTimeout` - Absolute timeout in milliseconds.

    - #### getMinAbsoluteTimeout

          public long getMinAbsoluteTimeout()

      Gets the minimum session absolute timeout in milliseconds. If both `minAbsoluteTimeout` and `maxAbsoluteTimemout` are set, they will override the setting of `absoluteTimeout`.
      Returns:
        Minimum absolute timeout in milliseconds

    - #### setMinAbsoluteTimeout

          public void setMinAbsoluteTimeout​(long aMinAbsoluteTimeout)

      Sets the minimum session absolute timeout. If both `minAbsoluteTimeout` and `maxAbsoluteTimemout` are set, they will override the setting of the `absoluteTimeout`.
      Parameters:
        `aMinAbsoluteTimeout` - Minimum absolute timeout in milliseconds.

    - #### getMaxAbsoluteTimeout

          public long getMaxAbsoluteTimeout()

      Gets the maximum session absolute timeout in milliseconds. If both `minAbsoluteTimeout` and `maxAbsoluteTimemout` are set, they will override the setting of `absoluteTimeout`.
      Returns:
        Maximum absolute timeout in milliseconds

    - #### setMaxAbsoluteTimeout

          public void setMaxAbsoluteTimeout​(long aMaxAbsoluteTimeout)

      Sets the maximum session absolute timeout. If both `minAbsoluteTimeout` and `maxAbsoluteTimemout` are set, they will override the setting of the `absoluteTimeout`.
      Parameters:
        `aMaxAbsoluteTimeout` - Maximum absolute timeout in milliseconds.

    - #### isRandomAbsoluteTimeout

          public boolean isRandomAbsoluteTimeout()

      Returns whether the absolute timeout will be randomized between the `minAbsoluteTimeout` and `maxAbsoluteTimemout`.
      Returns:
        `true` if the absolute timeout will be randomized; `false` otherwise.

    - #### getIdleTimeout

          public long getIdleTimeout()

      Gets the session idle timeout.
      Returns:
        The idle timeout in milliseconds

    - #### setIdleTimeout

          public void setIdleTimeout​(long aIdleTimeout)

      Sets the session idle timeout.
      Parameters:
        `aIdleTimeout` - Idle session in milliseconds

    - #### getServerName

          public java.lang.String getServerName()

      Gets the TCP server IP address or host name, or the URL of the HTTP server.
      Returns:
        Server host name, IP address, or URL

    - #### setServerName

          public void setServerName​(java.lang.String aServerName)

      Sets the TCP server IP address or host name or the URL of the HTTP server.
      Parameters:
        `aServerName` - Server host name, IP address, or URL

    - #### getServerPort

          public java.lang.Integer getServerPort()

      Gets the TCP server port number. This will be `null` if connecting to a HTTP server.
      Returns:
        TCP server port number if defined; `null` otherwise.

    - #### setServerPort

          public void setServerPort​(java.lang.Integer aServerPort)

      Sets the TCP server port number.
      Parameters:
        `aServerPort` - TCP server port number

    - #### getClientHost

          public java.lang.String getClientHost()

      Gets the TCP server IP address or host name to connect from. A `null` value will use the loop back.
      Returns:
        Client host name or IP address if defined;`null` otherwise.

    - #### setClientHost

          public void setClientHost​(java.lang.String aClientHost)

      Sets the TCP server IP address or host name to connect from. A `null` value will use the loop back.
      Parameters:
        `aClientHost` - Client host name or IP address

    - #### getSSLContext

          public EPPSSLContext getSSLContext()

      Gets the optional `EPPSSLContext` associated with the factory.
      Returns:
        SSL Context if defined; `null` otherwise

    - #### setSSLContext

          public void setSSLContext​(EPPSSLContext aSSLContext)

      Gets the optional `EPPSSLContext` associated with the factory.
      Parameters:
        `aSSLContext` - SSL Context to use by the factory

    - #### getClientTransIdGenerator

          public EPPClientTransIdGenerator getClientTransIdGenerator()

      Gets the client transaction identifier generator object that is set.
      Returns:
        Client transaction identifier generator object if set; `null` otherwise.

    - #### setClientTransIdGenerator

          public void setClientTransIdGenerator​(EPPClientTransIdGenerator aClientTransIdGenerator)

      Sets the client transaction identifier generator object that is used to generate client transaction identifiers for the login and logout commands.
      Parameters:
        `aClientTransIdGenerator` - Client transaction identifier generator object or `null` to unset the generator

    - #### activateObject

          public void activateObject​(org.apache.commons.pool2.PooledObject<EPPPooledGenericSession> aSession)
                              throws java.lang.Exception

      Session being borrowed from the pool.
      Specified by:
        `activateObject` in interface `org.apache.commons.pool2.PooledObjectFactory<EPPPooledGenericSession>`
      Parameters:
        `aSession` - Session being returned
      Throws:
        `java.lang.Exception`

    - #### destroyObject

          public void destroyObject​(org.apache.commons.pool2.PooledObject<EPPPooledGenericSession> aSession)
                             throws java.lang.Exception

      Destroy object from the pool.
      Specified by:
        `destroyObject` in interface `org.apache.commons.pool2.PooledObjectFactory<EPPPooledGenericSession>`
      Parameters:
        `aSession` - Session being destroyed
      Throws:
        `java.lang.Exception`

    - #### makeObject

          public org.apache.commons.pool2.PooledObject<EPPPooledGenericSession> makeObject()
                                                                                    throws java.lang.Exception

      Creates a new session object.
      Specified by:
        `makeObject` in interface `org.apache.commons.pool2.PooledObjectFactory<EPPPooledGenericSession>`
      Throws:
        `java.lang.Exception`

    - #### passivateObject

          public void passivateObject​(org.apache.commons.pool2.PooledObject<EPPPooledGenericSession> aSession)
                               throws java.lang.Exception

      Session is being returned to the pool.
      Specified by:
        `passivateObject` in interface `org.apache.commons.pool2.PooledObjectFactory<EPPPooledGenericSession>`
      Parameters:
        `aSession` - Session being returned
      Throws:
        `java.lang.Exception`

    - #### validateObject

          public boolean validateObject​(org.apache.commons.pool2.PooledObject<EPPPooledGenericSession> aSession)

      Validates a session by sending a keep alive. If an exception occurs from the keep alive, than the session is not valid.
      Specified by:
        `validateObject` in interface `org.apache.commons.pool2.PooledObjectFactory<EPPPooledGenericSession>`
      Parameters:
        `aSession` - Session to validate
      Returns:
        `true` if the session is valid; `false` otherwise.

    - #### makeSession

          protected EPPPooledGenericSession makeSession()
                                                 throws java.lang.Exception

      Make an EPP session instance for pool. This can be overridden by a derived class to create a custom EPP session instance (i.e. HTTP).
      Returns:
        `EPPSession` instance
      Throws:
        `java.lang.Exception` - Configuration error or error creating pooled session.