mcconnell    2003/12/14 06:09:59

  Modified:    
merlin/activation/impl/src/java/org/apache/avalon/activation/lifestyle/impl
                        AbstractLifestyleHandler.java
                        ThreadLifestyleHandler.java
                        TransientLifestyleHandler.java
               merlin/composition/api/src/java/org/apache/avalon/composition/data
                        DeploymentProfile.java
               merlin/composition/api/src/java/org/apache/avalon/composition/model
                        DeploymentModel.java
               
merlin/composition/impl/src/java/org/apache/avalon/composition/model/impl
                        DefaultDeploymentModel.java
               merlin/kernel/impl/src/java/org/apache/avalon/merlin/impl
                        DefaultCriteria.java
  Log:
  Housekeeping.
  
  Revision  Changes    Path
  1.6       +19 -13    
avalon/merlin/activation/impl/src/java/org/apache/avalon/activation/lifestyle/impl/AbstractLifestyleHandler.java
  
  Index: AbstractLifestyleHandler.java
  ===================================================================
  RCS file: 
/home/cvs/avalon/merlin/activation/impl/src/java/org/apache/avalon/activation/lifestyle/impl/AbstractLifestyleHandler.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- AbstractLifestyleHandler.java     19 Oct 2003 10:31:00 -0000      1.5
  +++ AbstractLifestyleHandler.java     14 Dec 2003 14:09:59 -0000      1.6
  @@ -74,8 +74,6 @@
   
       private final ReferenceQueue m_liberals = new ReferenceQueue();
   
  -    private final ReferenceQueue m_democrats = new ReferenceQueue();
  -
      /**
       * Creation of a new instance.
       * @param logger the logging channel
  @@ -86,6 +84,14 @@
           m_factory = factory;
       }
   
  +   /**
  +    * Return the liberal queue.
  +    */
  +    ReferenceQueue getLiberalQueue()
  +    {
  +        return m_liberals;
  +    }
  +
       /**
        * Release an object. 
        *
  @@ -124,6 +130,16 @@
           }
       }
   
  +    Object newInstance() throws Exception
  +    {
  +        return m_factory.newInstance();
  +    }
  +    
  +    Factory getFactory()
  +    { 
  +        return m_factory;
  +    }
  +
       class StrongReference extends WeakReference
       {
           private final Object m_instance;
  @@ -138,15 +154,5 @@
           {
               return m_instance;
           }
  -    }
  -
  -    Object newInstance() throws Exception
  -    {
  -        return m_factory.newInstance();
  -    }
  -    
  -    Factory getFactory()
  -    { 
  -        return m_factory;
       }
   }
  
  
  
  1.5       +3 -3      
avalon/merlin/activation/impl/src/java/org/apache/avalon/activation/lifestyle/impl/ThreadLifestyleHandler.java
  
  Index: ThreadLifestyleHandler.java
  ===================================================================
  RCS file: 
/home/cvs/avalon/merlin/activation/impl/src/java/org/apache/avalon/activation/lifestyle/impl/ThreadLifestyleHandler.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- ThreadLifestyleHandler.java       19 Oct 2003 06:12:58 -0000      1.4
  +++ ThreadLifestyleHandler.java       14 Dec 2003 14:09:59 -0000      1.5
  @@ -74,9 +74,9 @@
           }
   
           //
  -        // TODO: the current implementation is hard coded to CONSERVATIVE
  +        // TODO: the current implementation is hard coded to HARD
           // collection policy - we need to update the ThreadLocalHolder so 
  -        // it regenerates the value relative to DEMOCRAT or LIBERAL policies
  +        // it regenerates the value relative to SOFT or WEAK policies
           // (but I just need to check docs on thread local state access
           // semantics)
           //
  
  
  
  1.6       +23 -1     
avalon/merlin/activation/impl/src/java/org/apache/avalon/activation/lifestyle/impl/TransientLifestyleHandler.java
  
  Index: TransientLifestyleHandler.java
  ===================================================================
  RCS file: 
/home/cvs/avalon/merlin/activation/impl/src/java/org/apache/avalon/activation/lifestyle/impl/TransientLifestyleHandler.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- TransientLifestyleHandler.java    19 Oct 2003 06:12:58 -0000      1.5
  +++ TransientLifestyleHandler.java    14 Dec 2003 14:09:59 -0000      1.6
  @@ -50,13 +50,18 @@
   
   package org.apache.avalon.activation.lifestyle.impl;
   
  +import java.lang.ref.SoftReference;
  +import java.lang.ref.WeakReference;
   import java.lang.ref.Reference;
   import java.util.ArrayList;
   
   import org.apache.avalon.activation.lifecycle.Factory;
  +
   import org.apache.avalon.framework.activity.Disposable;
   import org.apache.avalon.framework.logger.Logger;
   
  +import org.apache.avalon.meta.info.InfoDescriptor;
  +
   /**
    * @author <a href="mailto:[EMAIL PROTECTED]">Avalon Development Team</a>
    * @version $Revision$ $Date$
  @@ -112,5 +117,22 @@
               disposeInstance( refs[i].get() );
           }
           m_list.clear();
  +    }
  +
  +   /**
  +    * Overriding getReference to ensure that we never return a hard 
  +    * reference for a transient.
  +    */
  +    Reference getReference( Object instance )
  +    {
  +        final int policy = getFactory().getDeploymentModel().getCollectionPolicy();
  +        if( policy == InfoDescriptor.DEMOCRAT )
  +        {
  +             return new SoftReference( instance );
  +        }
  +        else
  +        {
  +             return new WeakReference( instance, getLiberalQueue() );
  +        }
       }
   }
  
  
  
  1.6       +2 -2      
avalon/merlin/composition/api/src/java/org/apache/avalon/composition/data/DeploymentProfile.java
  
  Index: DeploymentProfile.java
  ===================================================================
  RCS file: 
/home/cvs/avalon/merlin/composition/api/src/java/org/apache/avalon/composition/data/DeploymentProfile.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- DeploymentProfile.java    28 Oct 2003 12:53:48 -0000      1.5
  +++ DeploymentProfile.java    14 Dec 2003 14:09:59 -0000      1.6
  @@ -276,7 +276,7 @@
        * Return the component collection policy.  If null, the component
        * type collection policy will apply.
        *
  -     * @return a LIBERAL, DEMOCRAT, CONSERVATIVE or UNDEFINED
  +     * @return a HARD, WEAK, SOFT or UNDEFINED
        */
       public int getCollectionPolicy()
       {
  
  
  
  1.7       +7 -7      
avalon/merlin/composition/api/src/java/org/apache/avalon/composition/model/DeploymentModel.java
  
  Index: DeploymentModel.java
  ===================================================================
  RCS file: 
/home/cvs/avalon/merlin/composition/api/src/java/org/apache/avalon/composition/model/DeploymentModel.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- DeploymentModel.java      3 Nov 2003 18:54:18 -0000       1.6
  +++ DeploymentModel.java      14 Dec 2003 14:09:59 -0000      1.7
  @@ -83,9 +83,9 @@
       * declared by the type will be used.
       *
       * @return the collection policy
  -    * @see org.apache.avalon.meta.info.InfoDescriptor#LIBERAL
  -    * @see org.apache.avalon.meta.info.InfoDescriptor#DEMOCRAT
  -    * @see org.apache.avalon.meta.info.InfoDescriptor#CONSERVATIVE
  +    * @see org.apache.avalon.meta.info.InfoDescriptor#WEAK
  +    * @see org.apache.avalon.meta.info.InfoDescriptor#SOFT
  +    * @see org.apache.avalon.meta.info.InfoDescriptor#HARD
       */
       int getCollectionPolicy();
   
  @@ -93,9 +93,9 @@
       * Set the collection policy to a supplied value.
       *
       * @param policy the collection policy
  -    * @see org.apache.avalon.meta.info.InfoDescriptor#LIBERAL
  -    * @see org.apache.avalon.meta.info.InfoDescriptor#DEMOCRAT
  -    * @see org.apache.avalon.meta.info.InfoDescriptor#CONSERVATIVE
  +    * @see org.apache.avalon.meta.info.InfoDescriptor#WEAK
  +    * @see org.apache.avalon.meta.info.InfoDescriptor#SOFT
  +    * @see org.apache.avalon.meta.info.InfoDescriptor#HARD
       * @see org.apache.avalon.meta.info.InfoDescriptor#UNDEFINED
       */
       void setCollectionPolicy( int policy );
  
  
  
  1.9       +8 -7      
avalon/merlin/composition/impl/src/java/org/apache/avalon/composition/model/impl/DefaultDeploymentModel.java
  
  Index: DefaultDeploymentModel.java
  ===================================================================
  RCS file: 
/home/cvs/avalon/merlin/composition/impl/src/java/org/apache/avalon/composition/model/impl/DefaultDeploymentModel.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- DefaultDeploymentModel.java       2 Dec 2003 01:34:09 -0000       1.8
  +++ DefaultDeploymentModel.java       14 Dec 2003 14:09:59 -0000      1.9
  @@ -308,9 +308,10 @@
       * will be used.
       *
       * @return the collection policy
  -    * @see InfoDescriptor#LIBERAL
  -    * @see InfoDescriptor#DEMOCRAT
  -    * @see InfoDescriptor#CONSERVATIVE
  +    * @see InfoDescriptor#WEAK
  +    * @see InfoDescriptor#SOFT
  +    * @see InfoDescriptor#HARD
  +    * @see InfoDescriptor#UNDEFINED
       */
       public int getCollectionPolicy()
       {
  @@ -328,9 +329,9 @@
       * Set the collection policy for the model.
       *
       * @param policy the collection policy
  -    * @see InfoDescriptor#LIBERAL
  -    * @see InfoDescriptor#DEMOCRAT
  -    * @see InfoDescriptor#CONSERVATIVE
  +    * @see InfoDescriptor#WEAK
  +    * @see InfoDescriptor#SOFT
  +    * @see InfoDescriptor#HARD
       */
       public void setCollectionPolicy( int policy )
       {
  
  
  
  1.10      +4 -5      
avalon/merlin/kernel/impl/src/java/org/apache/avalon/merlin/impl/DefaultCriteria.java
  
  Index: DefaultCriteria.java
  ===================================================================
  RCS file: 
/home/cvs/avalon/merlin/kernel/impl/src/java/org/apache/avalon/merlin/impl/DefaultCriteria.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- DefaultCriteria.java      14 Dec 2003 12:00:12 -0000      1.9
  +++ DefaultCriteria.java      14 Dec 2003 14:09:59 -0000      1.10
  @@ -93,7 +93,7 @@
       // static
       //--------------------------------------------------------------
   
  -    private static final String AVALON = "avalon.properties";
  +    private static final String AVALON_PROPERTIES = "avalon.properties";
       private static final String MERLIN = "merlin.properties";
   
       private static final File USER_DIR = 
  @@ -148,7 +148,6 @@
           }
       }
   
  -
      /**
       * The factory parameters template.
       */
  @@ -225,7 +224,7 @@
           // static defaults are the most primative
           //
   
  -        Properties avalonStatic = getStaticProperties( AVALON );
  +        Properties avalonStatic = getStaticProperties( AVALON_PROPERTIES );
           Properties merlinStatic = getStaticProperties( MERLIN );
   
           //
  @@ -244,7 +243,7 @@
           // ${user.home} overrides environment
           //
   
  -        Properties avalonHome = getLocalProperties( USER_HOME, AVALON );
  +        Properties avalonHome = getLocalProperties( USER_HOME, AVALON_PROPERTIES );
           Properties merlinHome = getLocalProperties( USER_HOME, MERLIN );
   
           //
  @@ -253,7 +252,7 @@
   
           File work = getWorkingDirectory();
           Properties avalonWork = 
  -          getLocalProperties( work, AVALON );
  +          getLocalProperties( work, AVALON_PROPERTIES );
           Properties merlinWork = 
             getLocalProperties( work, MERLIN );
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to