org.apache.cxf.service.invoker

## Class PooledFactory

- java.lang.Object
- - org.apache.cxf.service.invoker.PooledFactory

- All Implemented Interfaces:
    Factory

      public class PooledFactory
      extends Object
      implements Factory

  Factory the maintains a pool of instances that are used. Can optionally create more instances than the size of the queue

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `PooledFactory(Class<?> svcClass, int max)` Pool of instances of the svcClass
    `PooledFactory(Collection<Object> objs)` Pool constructed from the give Collection of objects.
    `PooledFactory(Factory factory, int max)` Pool of instances constructed from the given factory
    `PooledFactory(Factory factory, int max, boolean createMore)` Pool of instances constructed from the given factory

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Object` | `create(Exchange ex)` Creates the object that will be used for the invoke
    `protected Object` | `createObject(Exchange e)`
    `void` | `release(Exchange ex, Object o)` Post invoke, this is called to allow the factory to release the object, store it, etc...

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

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

- - ### Constructor Detail

    - #### PooledFactory

          public PooledFactory(Class<?> svcClass,
                       int max)

      Pool of instances of the svcClass
      Parameters:
        `svcClass` - the class to create
        `max` - the absolute maximum number to create and pool

    - #### PooledFactory

          public PooledFactory(Factory factory,
                       int max)

      Pool of instances constructed from the given factory
      Parameters:
        `factory` -
        `max` - the absolute maximum number to create and pool

    - #### PooledFactory

          public PooledFactory(Factory factory,
                       int max,
                       boolean createMore)

      Pool of instances constructed from the given factory
      Parameters:
        `factory` -
        `max` - the absolute maximum number to create and pool
        `createMore` - If the pool is empty, but max objects have already been constructed, should more be constructed on a per-request basis (and then discarded when done) or should requests block until instances are released back into the pool.

    - #### PooledFactory

          public PooledFactory(Collection<Object> objs)

      Pool constructed from the give Collection of objects.
      Parameters:
        `objs` - The collection of objects to pre-populate the pool

  - ### Method Detail

    - #### create

          public Object create(Exchange ex)
                        throws Throwable

      Creates the object that will be used for the invoke
      Specified by:
        `create` in interface `Factory`
      Throws:
        `Throwable`

    - #### createObject

          protected Object createObject(Exchange e)
                                 throws Throwable

      Throws:
        `Throwable`

    - #### release

          public void release(Exchange ex,
                     Object o)

      Post invoke, this is called to allow the factory to release the object, store it, etc...
      Specified by:
        `release` in interface `Factory`
        `o` - object created from the create method

Apache CXF