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

  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 Details

  - ### 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 Details

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