bloritsch    01/02/22 07:03:10

  Modified:    lib      Tag: xml-cocoon2 avalonapi.jar
               src/org/apache/cocoon Tag: xml-cocoon2
                        CocoonComponentSelector.java
                        DefaultComponentManager.java
  Log:
  Updated avalonapi with new ComponentManager/Selector release() methods.
  Added handling code to Cocoon's release methods.  Now, to release components
  we get when we are done....
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.16  +493 -442  xml-cocoon/lib/Attic/avalonapi.jar
  
        <<Binary file>>
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.22  +16 -2     
xml-cocoon/src/org/apache/cocoon/Attic/CocoonComponentSelector.java
  
  Index: CocoonComponentSelector.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon/src/org/apache/cocoon/Attic/CocoonComponentSelector.java,v
  retrieving revision 1.1.2.21
  retrieving revision 1.1.2.22
  diff -u -r1.1.2.21 -r1.1.2.22
  --- CocoonComponentSelector.java      2001/02/21 17:22:26     1.1.2.21
  +++ CocoonComponentSelector.java      2001/02/22 15:03:09     1.1.2.22
  @@ -19,6 +19,7 @@
   import org.apache.avalon.ComponentManagerException;
   import org.apache.avalon.ComponentNotFoundException;
   import org.apache.avalon.ComponentNotAccessibleException;
  +import org.apache.avalon.Recyclable;
   import org.apache.avalon.Context;
   import org.apache.avalon.Contextualizable;
   import org.apache.avalon.Configurable;
  @@ -42,7 +43,7 @@
   /** Default component manager for Cocoon's non sitemap components.
    * @author <a href="mailto:[EMAIL PROTECTED]">Berin Loritsch</a>
    * @author <a href="mailto:[EMAIL PROTECTED]">Paul Russell</a>
  - * @version CVS $Revision: 1.1.2.21 $ $Date: 2001/02/21 17:22:26 $
  + * @version CVS $Revision: 1.1.2.22 $ $Date: 2001/02/22 15:03:09 $
    */
   public class CocoonComponentSelector implements Contextualizable, 
ComponentSelector, Composer, Configurable, ThreadSafe, Loggable {
       protected Logger log;
  @@ -238,7 +239,8 @@
                       e
                   );
               }
  -            pools.put(hint,pool);
  +
  +            pools.put(componentClass, pool);
           }
   
           Component component;
  @@ -254,6 +256,18 @@
           }
   
           return component;
  +    }
  +
  +    public void release(Component component) {
  +        if (component instanceof Poolable) {
  +            ComponentPool pool = (ComponentPool) 
pools.get(component.getClass());
  +
  +            if (pool != null) {
  +                pool.put((Poolable) component);
  +            }
  +        } else if (component instanceof Recyclable) {
  +            ((Recyclable) component).recycle();
  +        }
       }
   
       /** Configure a new component.
  
  
  
  1.1.2.20  +15 -2     
xml-cocoon/src/org/apache/cocoon/Attic/DefaultComponentManager.java
  
  Index: DefaultComponentManager.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon/src/org/apache/cocoon/Attic/DefaultComponentManager.java,v
  retrieving revision 1.1.2.19
  retrieving revision 1.1.2.20
  diff -u -r1.1.2.19 -r1.1.2.20
  --- DefaultComponentManager.java      2001/02/16 22:07:31     1.1.2.19
  +++ DefaultComponentManager.java      2001/02/22 15:03:09     1.1.2.20
  @@ -23,6 +23,7 @@
   import org.apache.avalon.SingleThreaded;
   import org.apache.avalon.ThreadSafe;
   import org.apache.avalon.Poolable;
  +import org.apache.avalon.Recyclable;
   import org.apache.avalon.Configurable;
   import org.apache.avalon.Configuration;
   import org.apache.avalon.Composer;
  @@ -40,7 +41,7 @@
   
   /** Default component manager for Cocoon's non sitemap components.
    * @author <a href="mailto:[EMAIL PROTECTED]">Paul Russell</a>
  - * @version CVS $Revision: 1.1.2.19 $ $Date: 2001/02/16 22:07:31 $
  + * @version CVS $Revision: 1.1.2.20 $ $Date: 2001/02/22 15:03:09 $
    */
   public class DefaultComponentManager implements ComponentManager, Loggable, 
Configurable, Contextualizable {
   
  @@ -276,7 +277,7 @@
                       e
                   );
               }
  -            pools.put(componentClass,pool);
  +            pools.put(componentClass, pool);
           }
   
           Component component;
  @@ -292,6 +293,18 @@
           }
   
           return component;
  +    }
  +
  +    public void release(Component component) {
  +        if (component instanceof Poolable) {
  +            ComponentPool pool = (ComponentPool) 
pools.get(component.getClass());
  +
  +            if (pool != null) {
  +                pool.put((Poolable) component);
  +            }
  +        } else if (component instanceof Recyclable) {
  +            ((Recyclable) component).recycle();
  +        }
       }
   
       /** Configure a new component.
  
  
  

Reply via email to