Package 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 | 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

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | 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