You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@turbine.apache.org by ep...@apache.org on 2004/02/14 15:26:27 UTC

cvs commit: jakarta-turbine-fulcrum/pool/xdocs navigation.xml index.xml

epugh       2004/02/14 06:26:27

  Added:       pool/impl/xdocs navigation.xml index.xml
  Removed:     pool/xdocs navigation.xml index.xml
  Log:
  Improving docs
  
  Revision  Changes    Path
  1.1                  jakarta-turbine-fulcrum/pool/impl/xdocs/navigation.xml
  
  Index: navigation.xml
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <project
    name="localization"
    href="http://jakarta.apache.org/turbine/fulcrum/pool/">
  
    <body>
      <links>
        <item name="Turbine"
              href="http://jakarta.apache.org/turbine/"/>
        <item name="Fulcrum"
              href="http://jakarta.apache.org/turbine/fulcrum/"/>
      </links>
  
      <menu name="Overview">
        <item name="Main"                 href="/index.html"/>
      </menu>
    </body>
  </project>
  
  
  1.1                  jakarta-turbine-fulcrum/pool/impl/xdocs/index.xml
  
  Index: index.xml
  ===================================================================
  <?xml version="1.0"?>
  
  <document>
  
    <properties>
      <title>Pool Component</title>
      <author email="epugh@upstate.com">Eric PUgh</author>
    </properties>
  
    <body>
  
    <section name="Overview">
  
  <p>
  The Pool Service extends the functionality of the Factory Service by adding
  support for pooling objects intantiated from the given class name or
  Class object reference. Pooling of objects stabilizes memory consumption and
  reduces garbage collection making response times in server applications
  more predictable.
  </p>
  
  <p>
  When a new instance is requested from the service, it first checks its pool
  if one is available. If the the pool is empty, a new object will be instantiated
  from the given class. If the class is specified by its name, the request to create
  an instance will be forwarded to the Factory Service.
  </p>
  
  <p>
  For pooled objects implementing the Recyclable interface, a recycle method
  will be called, when they are taken from the pool, and a dispose method,
  when they are returned to the pool. Implementations of the methods should
  clear and initialize the pooled instances correspondingly. Objects
  that do not implement the interface can also be pooled, if they do not
  need to perform any specific actions during pooling. A RecyclableSupport class
  can be extended to get a minimal implementation of the interface.
  </p>
  
  <p>
  An ArrayCtorRecyclable interface extends the Recyclable interface providing
  a more efficient recycle method with less reflection for recycling frequently
  used objects having constuctors with parameters.
  </p>
    </section>
    
  <section name="Configuration">
  
      <p>
        First, here is the role configuration.  This component requires the FactoryService
        component.
      </p>
  
  <source>
  <![CDATA[
      <role
          name="org.apache.fulcrum.pool.PoolService"
          shorthand="pool"
          default-class="org.apache.fulcrum.pool.DefaultPoolService"/>
          
          
      <role
          name="org.apache.fulcrum.factory.FactoryService"
          shorthand="factory"
          default-class="org.apache.fulcrum.factory.DefaultFactoryService"/>      
  ]]>
  </source>
  
    <p>
      Now comes the basic configuration of the component.  Here will will
      configure the various bundles.
    </p>
  <source>
  
  <![CDATA[
      <pool>
        <capacity default="256"/>
      </pool>
      
      <factory/>
  ]]>
  </source>
  
    </section>
  
    <section name="Usage">
   
  <p>
  The Pool Service can be called instead of the Factory Service, when instantiating
  objects that are needed repeatedly e.g. for processing client requests. Intances
  of RunData implementations, ParameterParser and CookieParser implementations,
  Pull Service tools, etc, are typical examples of pooled objects. Used objects
  must be returned to the Pool Service for recycling. The TurbinePool class is a
  static accessor for common methods of the Pool Service:
  </p>
  
  <source><![CDATA[
  // Get a pooled DOM parser.
  DocumentBuilder parser =
      TurbinePool.getInstance("javax.xml.parsers.DocumentBuilder");
  
  // Parse an XML document.
  Document doc = parser.parse(myfile);
  
  // Return the parser to the pool.
  TurbinePool.putInstance(parser);
  ]]></source>
  
    </section>  
  
  </body>
  </document>
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: turbine-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: turbine-dev-help@jakarta.apache.org