I run it on each class I work on individually.  I can't write in the
turbine style.  I just can't do it.  I'll need new settings I guess.  I
noticed that it collapses all the comments into giant paragraphs.  

> -----Original Message-----
> From: James Taylor [mailto:[EMAIL PROTECTED]]
> Sent: Thursday, February 14, 2002 7:41 AM
> To: Turbine Developers List
> Subject: Re: cvs commit:jakarta-turbine-
> stratum/src/java/org/apache/stratum/jcs/engine/controlCache.java
> 
> Aaron,
> 
> Minor thing, but it looks like JRefactory is screwing up the
formatting
> of the license and javadoc. Now that it has been run once on all the
> files, you should probably not run it on them again. I'll try and fix
> formatting errors that creep in =] Probably this is a problem with the
> JRefactory settings I gave you, I'm not an expert on that tool.
> 
> Thanks,
> James
> 
> On Thu, 2002-02-14 at 00:30, [EMAIL PROTECTED] wrote:
> > asmuts      02/02/13 21:30:51
> >
> >   Modified:    src/java/org/apache/stratum/jcs/access
> TestCacheAccess.java
> >                         GroupCacheAccess.java CacheAccess.java
> >                src/java/org/apache/stratum/jcs/engine/memory/lru
> >                         LRUMemoryCache.java
> >                src/java/org/apache/stratum/jcs JCS.java
> >                src/java/org/apache/stratum/jcs/access/behavior
> >                         ICacheAccess.java
> >                src/java/org/apache/stratum/jcs/engine/control
Cache.java
> >   Log:
> >   removed old lateral direct methods, deprecated destroy for remove
> >   created access methods to update the cache attributes for
controlling
> memory size.
> >   want to move into auxiliary configuration.  Should give a list and
let
> them be selected or something to reduce configuration.
> >
> >   Revision  Changes    Path
> >   1.9       +37 -37    jakarta-turbine-
> stratum/src/java/org/apache/stratum/jcs/access/TestCacheAccess.java
> >
> >   Index: TestCacheAccess.java
> >
===================================================================
> >   RCS file: /home/cvs/jakarta-turbine-
> stratum/src/java/org/apache/stratum/jcs/access/TestCacheAccess.java,v
> >   retrieving revision 1.8
> >   retrieving revision 1.9
> >   diff -u -r1.8 -r1.9
> >   --- TestCacheAccess.java  19 Jan 2002 06:27:12 -0000      1.8
> >   +++ TestCacheAccess.java  14 Feb 2002 05:30:50 -0000      1.9
> >   @@ -158,11 +158,11 @@
> >                        {
> >                            help();
> >                        }
> >   -                    else
> >   -                        if ( message.startsWith(
> "removeLateralDirect" ) )
> >   -                    {
> >   -                        removeLateralDirect( message );
> >   -                    }
> >   +//                    else
> >   +//                        if ( message.startsWith(
> "removeLateralDirect" ) )
> >   +//                    {
> >   +//                        removeLateralDirect( message );
> >   +//                    }
> >                        else
> >                            if ( message.startsWith(
"getAttributeNames"
> ) )
> >                        {
> >   @@ -577,7 +577,7 @@
> >                            if ( message.startsWith( "remove" ) )
> >                        {
> >                            String key = message.substring(
> message.indexOf( " " ) + 1, message.length() );
> >   -                        cache_control.destroy( key );
> >   +                        cache_control.remove( key );
> >                            p( "removed " + key );
> >                        }
> >                        else
> >   @@ -680,43 +680,43 @@
> >            p( "type 'put key val' to put" );
> >            p( "type 'stats' to get stats" );
> >            p( "type 'cloneattr num' to clone attr" );
> >   -        p( "type 'removeLateralDirect key' to remove lateral" );
> >   +//        p( "type 'removeLateralDirect key' to remove lateral"
);
> >            p( "type 'switch number' to switch to testCache[number],
1 ==
> testCache1" );
> >            p( "type 'help' for commands" );
> >
> >        }
> >
> >
> >   -    ////////////////////////////////////////
> >   -    /**
> >   -     *  Description of the Method
> >   -     *
> >   -     *@param  message  Description of the Parameter
> >   -     */
> >   -    public static void removeLateralDirect( String message )
> >   -    {
> >   -
> >   -        String key = null;
> >   -        StringTokenizer toke = new StringTokenizer( message );
> >   -        int tcnt = 0;
> >   -        while ( toke.hasMoreElements() )
> >   -        {
> >   -            tcnt++;
> >   -            String t = ( String ) toke.nextElement();
> >   -            if ( tcnt == 2 )
> >   -            {
> >   -                key = t.trim();
> >   -            }
> >   -        }
> >   -
> >   -        if ( tcnt < 2 )
> >   -        {
> >   -            key = "ALL";
> >   -        }
> >   -
> >   -        cache_control.removeLateralDirect( key );
> >   -        p( "called delete multicast for key " + key );
> >   -    }
> >   +//    ////////////////////////////////////////
> >   +//    /**
> >   +//     *  Description of the Method
> >   +//     *
> >   +//     *@param  message  Description of the Parameter
> >   +//     */
> >   +//    public static void removeLateralDirect( String message )
> >   +//    {
> >   +//
> >   +//        String key = null;
> >   +//        StringTokenizer toke = new StringTokenizer( message );
> >   +//        int tcnt = 0;
> >   +//        while ( toke.hasMoreElements() )
> >   +//        {
> >   +//            tcnt++;
> >   +//            String t = ( String ) toke.nextElement();
> >   +//            if ( tcnt == 2 )
> >   +//            {
> >   +//                key = t.trim();
> >   +//            }
> >   +//        }
> >   +//
> >   +//        if ( tcnt < 2 )
> >   +//        {
> >   +//            key = "ALL";
> >   +//        }
> >   +//
> >   +//        cache_control.removeLateralDirect( key );
> >   +//        p( "called delete multicast for key " + key );
> >   +//    }
> >
> >        // end help
> >
> >
> >
> >
> >   1.10      +6 -0      jakarta-turbine-
> stratum/src/java/org/apache/stratum/jcs/access/GroupCacheAccess.java
> >
> >   Index: GroupCacheAccess.java
> >
===================================================================
> >   RCS file: /home/cvs/jakarta-turbine-
> stratum/src/java/org/apache/stratum/jcs/access/GroupCacheAccess.java,v
> >   retrieving revision 1.9
> >   retrieving revision 1.10
> >   diff -u -r1.9 -r1.10
> >   --- GroupCacheAccess.java 12 Feb 2002 15:47:55 -0000      1.9
> >   +++ GroupCacheAccess.java 14 Feb 2002 05:30:50 -0000      1.10
> >   @@ -477,12 +477,18 @@
> >         *
> >         *@param  name   Description of the Parameter
> >         *@param  group  Description of the Parameter
> >   +     *
> >   +     * @deprecated
> >         */
> >        public void destroy( String name, String group )
> >        {
> >            removeAttribute( name, group );
> >        }
> >
> >   +    public void remove( String name, String group )
> >   +    {
> >   +        removeAttribute( name, group );
> >   +    }
> >
> >        /////////////////////////////////////
> >        /**
> >
> >
> >
> >   1.7       +229 -155  jakarta-turbine-
> stratum/src/java/org/apache/stratum/jcs/access/CacheAccess.java
> >
> >   Index: CacheAccess.java
> >
===================================================================
> >   RCS file: /home/cvs/jakarta-turbine-
> stratum/src/java/org/apache/stratum/jcs/access/CacheAccess.java,v
> >   retrieving revision 1.6
> >   retrieving revision 1.7
> >   diff -u -r1.6 -r1.7
> >   --- CacheAccess.java      12 Feb 2002 03:16:48 -0000      1.6
> >   +++ CacheAccess.java      14 Feb 2002 05:30:50 -0000      1.7
> >   @@ -11,28 +11,28 @@
> >     * are met:
> >     *
> >     * 1. Redistributions of source code must retain the above
copyright
> >   - *    notice, this list of conditions and the following
disclaimer.
> >   + * notice, this list of conditions and the following disclaimer.
> >     *
> >     * 2. Redistributions in binary form must reproduce the above
> copyright
> >   - *    notice, this list of conditions and the following
disclaimer in
> >   - *    the documentation and/or other materials provided with the
> >   - *    distribution.
> >   + * notice, this list of conditions and the following disclaimer
in
> >   + * the documentation and/or other materials provided with the
> >   + * distribution.
> >     *
> >     * 3. The end-user documentation included with the
redistribution, if
> >   - *    any, must include the following acknowlegement:
> >   - *       "This product includes software developed by the
> >   - *        Apache Software Foundation (http://www.apache.org/)."
> >   - *    Alternately, this acknowlegement may appear in the software
> itself,
> >   - *    if and wherever such third-party acknowlegements normally
> appear.
> >   + * any, must include the following acknowlegement:
> >   + * "This product includes software developed by the
> >   + * Apache Software Foundation (http://www.apache.org/)."
> >   + * Alternately, this acknowlegement may appear in the software
> itself,
> >   + * if and wherever such third-party acknowlegements normally
appear.
> >     *
> >     * 4. The names "The Jakarta Project", "Velocity", and "Apache
> Software
> >   - *    Foundation" must not be used to endorse or promote products
> derived
> >   - *    from this software without prior written permission. For
> written
> >   - *    permission, please contact [EMAIL PROTECTED]
> >   + * Foundation" must not be used to endorse or promote products
> derived
> >   + * from this software without prior written permission. For
written
> >   + * permission, please contact [EMAIL PROTECTED]
> >     *
> >     * 5. Products derived from this software may not be called
"Apache"
> >   - *    nor may "Apache" appear in their names without prior
written
> >   - *    permission of the Apache Group.
> >   + * nor may "Apache" appear in their names without prior written
> >   + * permission of the Apache Group.
> >     *
> >     * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR
IMPLIED
> >     * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES
> >   @@ -73,25 +73,31 @@
> >    import
org.apache.stratum.jcs.engine.control.CompositeCacheManager;
> >
> >    /**
> >   - * Class which provides interface for all access to the cache. An
> instance of
> >   - * this class is tied to a specific cache region. Static methods
are
> provided
> >   - * to get such instances.
> >   + *  Class which provides interface for all access to the cache.
An
> instance of
> >   + *  this class is tied to a specific cache region. Static methods
are
> provided
> >   + *  to get such instances.
> >     *
> >   - * @author <a href="mailto:[EMAIL PROTECTED]";>Aaron Smuts</a>
> >   - * @version $Id: CacheAccess.java,v 1.6 2002/02/12 03:16:48
jtaylor
> Exp $
> >   + *@author     <a href="mailto:[EMAIL PROTECTED]";>Aaron Smuts</a>
> >   + *@created    February 13, 2002
> >   + *@version    $Id: CacheAccess.java,v 1.7 2002/02/14 05:30:50
asmuts
> Exp $
> >     */
> >    public class CacheAccess implements ICacheAccess
> >    {
> >   -    /** Cache manager use by the various forms of defineRegion
and
> getAccess */
> >   +    /**
> >   +     *  Cache manager use by the various forms of defineRegion
and
> getAccess
> >   +     */
> >        private static CompositeCacheManager cacheMgr;
> >
> >   -    /** Cache that a given instance of this class provides access
to
> */
> >   +    /**
> >   +     *  Cache that a given instance of this class provides access
to.
> Should
> >   +     *  this be the inteface?
> >   +     */
> >        protected Cache cacheControl;
> >
> >        /**
> >   -     * Constructor for the CacheAccess object.
> >   +     *  Constructor for the CacheAccess object.
> >         *
> >   -     * @param cacheControl The cache which the created instance
> accesses
> >   +     *@param  cacheControl  The cache which the created instance
> accesses
> >         */
> >        protected CacheAccess( Cache cacheControl )
> >        {
> >   @@ -101,89 +107,89 @@
> >        // ----------------------------- static methods for access to
> cache regions
> >
> >        /**
> >   -     * Define a new cache region with the given name.
> >   -     *
> >   -     * In the oracle specification, these attributes are global
and
> not region
> >   -     * specific, regional overirdes is a value add each region
should
> be able
> >   -     * to house both cache and element attribute sets. It is more
> efficient to
> >   -     * define a cache in the props file and then strictly use the
get
> access
> >   -     * method. Use of the define region outside of an
initialization
> block
> >   -     * should be avoided.
> >   -     *
> >   -     * @param name Name that will identify the region
> >   -     * @return CacheAccess instance for the new region
> >   -     * @exception CacheException
> >   +     *  Define a new cache region with the given name. In the
oracle
> >   +     *  specification, these attributes are global and not region
> specific,
> >   +     *  regional overirdes is a value add each region should be
able
> to house
> >   +     *  both cache and element attribute sets. It is more
efficient
> to define a
> >   +     *  cache in the props file and then strictly use the get
access
> method. Use
> >   +     *  of the define region outside of an initialization block
> should be
> >   +     *  avoided.
> >   +     *
> >   +     *@param  name                Name that will identify the
region
> >   +     *@return                     CacheAccess instance for the
new
> region
> >   +     *@exception  CacheException
> >         */
> >        public static CacheAccess defineRegion( String name )
> >            throws CacheException
> >        {
> >            ensureCacheManager();
> >   -
> >   +
> >            return new CacheAccess( ( Cache ) cacheMgr.getCache( name
)
> );
> >        }
> >
> >        /**
> >   -     * Define a new cache region with the specified name and
> attributes.
> >   +     *  Define a new cache region with the specified name and
> attributes.
> >         *
> >   -     * @param name Name that will identify the region
> >   -     * @param cattr CompositeCacheAttributes for the region
> >   -     * @return CacheAccess instance for the new region
> >   -     * @exception CacheException
> >   +     *@param  name                Name that will identify the
region
> >   +     *@param  cattr               CompositeCacheAttributes for
the
> region
> >   +     *@return                     CacheAccess instance for the
new
> region
> >   +     *@exception  CacheException
> >         */
> >   -    public static CacheAccess defineRegion( String name,
> >   +    public static CacheAccess defineRegion( String name,
> >
CompositeCacheAttributes
> cattr )
> >            throws CacheException
> >        {
> >            ensureCacheManager();
> >   -
> >   +
> >            return new CacheAccess( ( Cache ) cacheMgr.getCache(
name,
> cattr ) );
> >        }
> >
> >        /**
> >   -     * Define a new cache region with the specified name and
> attributes.
> >   +     *  Define a new cache region with the specified name and
> attributes and
> >   +     *  return a CacheAccess to it.
> >         *
> >   -     * @param name Name that will identify the region
> >   -     * @param cattr CompositeCacheAttributes for the region
> >   -     * @param attr Attributes for the region
> >   -     * @return CacheAccess instance for the new region
> >   -     * @exception CacheException
> >   +     *@param  name                Name that will identify the
region
> >   +     *@param  cattr               CompositeCacheAttributes for
the
> region
> >   +     *@param  attr                Attributes for the region
> >   +     *@return                     CacheAccess instance for the
new
> region
> >   +     *@exception  CacheException
> >         */
> >   -    public static CacheAccess defineRegion( String name,
> >   -
CompositeCacheAttributes
> cattr,
> >   +    public static CacheAccess defineRegion( String name,
> >   +
CompositeCacheAttributes
> cattr,
> >                                                Attributes attr )
> >            throws CacheException
> >        {
> >            ensureCacheManager();
> >   -
> >   -        return new CacheAccess(
> >   +
> >   +        return new CacheAccess(
> >                ( Cache ) cacheMgr.getCache( name, cattr, attr ) );
> >        }
> >
> >        /**
> >   -     * Get a CacheAccess instance for the given region.
> >   +     *  Get a CacheAccess instance for the given region.
> >         *
> >   -     * @param region Name that identifies the region
> >   -     * @return CacheAccess instance for region
> >   -     * @exception CacheException
> >   +     *@param  region              Name that identifies the region
> >   +     *@return                     CacheAccess instance for region
> >   +     *@exception  CacheException
> >         */
> >        public static CacheAccess getAccess( String region )
> >            throws CacheException
> >        {
> >            ensureCacheManager();
> >   -
> >   +
> >            return new CacheAccess( ( Cache ) cacheMgr.getCache(
region )
> );
> >        }
> >
> >        /**
> >   -     * Get a CacheAccess instance for the given region with the
given
> >   -     * attributes.
> >   +     *  Get a CacheAccess instance for the given region with the
> given
> >   +     *  attributes.
> >         *
> >   -     * @param region Name that identifies the region
> >   -     * @param icca
> >   -     * @return CacheAccess instance for region
> >   -     * @exception CacheException
> >   +     *@param  region              Name that identifies the region
> >   +     *@param  icca
> >   +     *@return                     CacheAccess instance for region
> >   +     *@exception  CacheException
> >         */
> >   -    public static CacheAccess getAccess( String region,
> >   +    public static CacheAccess getAccess( String region,
> >
ICompositeCacheAttributes
> icca )
> >            throws CacheException
> >        {
> >   @@ -193,8 +199,8 @@
> >        }
> >
> >        /**
> >   -     * Helper method which checks to make sure the cacheMgr class
> field is set,
> >   -     * and if not requests an instance from CacheManagerFactory.
> >   +     *  Helper method which checks to make sure the cacheMgr
class
> field is set,
> >   +     *  and if not requests an instance from CacheManagerFactory.
> >         */
> >        protected static void ensureCacheManager()
> >        {
> >   @@ -209,15 +215,15 @@
> >                }
> >            }
> >        }
> >   -
> >   +
> >        // -------------------------------------------------------
> instance methods
> >
> >        /**
> >   -     * Retrieve an object from the cache region this instance
> provides access
> >   -     * to.
> >   +     *  Retrieve an object from the cache region this instance
> provides access
> >   +     *  to.
> >         *
> >   -     * @param name Key the object is stored as
> >   -     * @return The object if found or null
> >   +     *@param  name  Key the object is stored as
> >   +     *@return       The object if found or null
> >         */
> >        public Object get( String name )
> >        {
> >   @@ -225,14 +231,38 @@
> >        }
> >
> >        /**
> >   -     * Place a new object in the cache, associated with key name.
If
> there is
> >   -     * currently an object associated with name in the region it
is
> replaced.
> >   -     * Names are scoped to a region so they must be unique within
the
> >   -     * region they are placed.
> >   -     *
> >   -     * @param name Key object will be stored with
> >   -     * @param obj Object to store
> >   -     * @exception CacheException
> >   +     *  Place a new object in the cache, associated with key
name. If
> there is
> >   +     *  currently an object associated with name in the region an
> >   +     *  ObjectExistsException is thrown. Names are scoped to a
region
> so they
> >   +     *  must be unique within the region they are placed.
> >   +     *
> >   +     *@param  name                Key object will be stored with
> >   +     *@param  obj                 Object to store
> >   +     *@exception  CacheException
> >   +     */
> >   +    public void putSafe( Object name, Object obj )
> >   +        throws CacheException
> >   +    {
> >   +        try
> >   +        {
> >   +            cacheControl.putSafe( ( Serializable ) name, (
> Serializable ) obj );
> >   +        }
> >   +        catch ( Exception e )
> >   +        {
> >   +            throw new CacheException( e );
> >   +        }
> >   +    }
> >   +
> >   +
> >   +    /**
> >   +     *  Place a new object in the cache, associated with key
name. If
> there is
> >   +     *  currently an object associated with name in the region it
is
> replaced.
> >   +     *  Names are scoped to a region so they must be unique
within
> the region
> >   +     *  they are placed.
> >   +     *
> >   +     *@param  name                Key object will be stored with
> >   +     *@param  obj                 Object to store
> >   +     *@exception  CacheException
> >         */
> >        public void put( Object name, Object obj )
> >            throws CacheException
> >   @@ -248,22 +278,22 @@
> >        }
> >
> >        /**
> >   -     * Place a new object in the cache. This form allows
attributes
> to
> >   -     * associate with the object may be specified with attr.
> >   +     *  Place a new object in the cache. This form allows
attributes
> to
> >   +     *  associate with the object may be specified with attr.
> >         *
> >   -     * @param name Key object will be stored with
> >   -     * @param obj Object to store
> >   -     * @param attr Attributes to store object with
> >   -     * @exception CacheException
> >   +     *@param  name                Key object will be stored with
> >   +     *@param  obj                 Object to store
> >   +     *@param  attr                Attributes to store object with
> >   +     *@exception  CacheException
> >         */
> >        public void put( Object name, Object obj, Attributes attr )
> >            throws CacheException
> >        {
> >            try
> >            {
> >   -            cacheControl.put( ( Serializable ) name,
> >   -                              ( Serializable ) obj,
> >   -                              attr );
> >   +            cacheControl.put( ( Serializable ) name,
> >   +                ( Serializable ) obj,
> >   +                attr );
> >            }
> >            catch ( Exception e )
> >            {
> >   @@ -272,10 +302,10 @@
> >        }
> >
> >        /**
> >   -     * Destory the region and all objects within it. After
calling
> this method,
> >   -     * the Cache object can no longer be used as it will be
closed.
> >   +     *  Destory the region and all objects within it. After
calling
> this method,
> >   +     *  the Cache object can no longer be used as it will be
closed.
> >         *
> >   -     * @exception  CacheException
> >   +     *@exception  CacheException
> >         */
> >        public void destroy()
> >            throws CacheException
> >   @@ -284,41 +314,66 @@
> >        }
> >
> >        /**
> >   -     * Invalidate all objects associated with key name, removing
all
> references
> >   -     * to the objects from the cache.
> >   +     *  Description of the Method
> >         *
> >   -     * @param name Key that specifies object to invalidate
> >   -     * @exception CacheException
> >   +     *@exception  CacheException  Description of the Exception
> >         */
> >   -    public void destroy( Object name )
> >   +    public void remove()
> >            throws CacheException
> >        {
> >   -        cacheControl.remove( ( Serializable ) name );
> >   +        cacheControl.removeAll();
> >        }
> >
> >        /**
> >   -     * Remove the entire region of elements from other caches
> specified in the
> >   -     * cache.properties file as lateral caches.
> >   +     *  Invalidate all objects associated with key name, removing
all
> references
> >   +     *  to the objects from the cache.
> >   +     *
> >   +     *@param  name                Key that specifies object to
> invalidate
> >   +     *@exception  CacheException
> >         */
> >   -    public void removeLateralDirect()
> >   +    public void destroy( Object name )
> >   +        throws CacheException
> >        {
> >   -        cacheControl.removeLateralDirect( "ALL" );
> >   +        cacheControl.remove( ( Serializable ) name );
> >        }
> >
> >        /**
> >   -     * Remove the specified element from other caches specified
in in
> the
> >   -     * cache.properties file as lateral caches.
> >   +     *  Description of the Method
> >         *
> >   -     * @param key Key identifying object to remove
> >   +     *@param  name                Description of the Parameter
> >   +     *@exception  CacheException  Description of the Exception
> >         */
> >   -    public void removeLateralDirect( Serializable key )
> >   +    public void remove( Object name )
> >   +        throws CacheException
> >        {
> >   -        cacheControl.removeLateralDirect( key );
> >   +        cacheControl.remove( ( Serializable ) name );
> >        }
> >
> >   +
> >   +    // TODO: rethink the point of these methods
> >   +//    /**
> >   +//     * Remove the entire region of elements from other caches
> specified in the
> >   +//     * cache.properties file as lateral caches.
> >   +//     */
> >   +//    public void removeLateralDirect()
> >   +//    {
> >   +//        cacheControl.removeLateralDirect( "ALL" );
> >   +//    }
> >   +//
> >   +//    /**
> >   +//     * Remove the specified element from other caches specified
in
> in the
> >   +//     * cache.properties file as lateral caches.
> >   +//     *
> >   +//     * @param key Key identifying object to remove
> >   +//     */
> >   +//    public void removeLateralDirect( Serializable key )
> >   +//    {
> >   +//        cacheControl.removeLateralDirect( key );
> >   +//    }
> >   +
> >        /**
> >   -     * If there are any auxiliary caches associated with this
cache,
> save all
> >   -     * objects to them.
> >   +     *  If there are any auxiliary caches associated with this
cache,
> save all
> >   +     *  objects to them.
> >         */
> >        public void save()
> >        {
> >   @@ -326,47 +381,45 @@
> >        }
> >
> >        /**
> >   -     * ResetAttributes allows for some of the attributes of a
region
> to be
> >   -     * reset in particular expiration time attriubtes, time to
live,
> default
> >   -     * time to live and idle time, and event handlers. Changing
> default
> >   -     * settings on groups and regions will not affect existing
> objects. Only
> >   -     * object loaded after the reset will use the new defaults.
If no
> name
> >   -     * argument is provided, the reset is applied to the region.
> >   -     *
> >   -     * NOTE: this method is currently not implemented.
> >   -     *
> >   -     * @param attr New attributes for this region.
> >   -     * @exception CacheException
> >   -     * @exception InvalidHandleException
> >   +     *  ResetAttributes allows for some of the attributes of a
region
> to be
> >   +     *  reset in particular expiration time attriubtes, time to
live,
> default
> >   +     *  time to live and idle time, and event handlers. Changing
> default
> >   +     *  settings on groups and regions will not affect existing
> objects. Only
> >   +     *  object loaded after the reset will use the new defaults.
If
> no name
> >   +     *  argument is provided, the reset is applied to the region.
> NOTE: this
> >   +     *  method is currently not implemented.
> >   +     *
> >   +     *@param  attr                        New attributes for this
> region.
> >   +     *@exception  CacheException
> >   +     *@exception  InvalidHandleException
> >         */
> >        public void resetElementAttributes( Attributes attr )
> >   -        throws CacheException, InvalidHandleException
> >   +        throws CacheException, InvalidHandleException
> >        {
> >            // Not implemented
> >        }
> >
> >        /**
> >   -     * Reset attributes for a particular element in the cache.
> >   +     *  Reset attributes for a particular element in the cache.
NOTE:
> this
> >   +     *  method is currently not implemented.
> >         *
> >   -     * NOTE: this method is currently not implemented.
> >   -     *
> >   -     * @param name Key of object to reset attributes for
> >   -     * @param attr New attributes for the object
> >   -     * @exception CacheException
> >   -     * @exception InvalidHandleException
> >   +     *@param  name                        Key of object to reset
> attributes for
> >   +     *@param  attr                        New attributes for the
> object
> >   +     *@exception  CacheException
> >   +     *@exception  InvalidHandleException
> >         */
> >        public void resetElementAttributes( Object name, Attributes
attr
> )
> >   -        throws CacheException, InvalidHandleException
> >   -    {
> >   +        throws CacheException, InvalidHandleException
> >   +    {
> >            // Not implemented
> >        }
> >
> >        /**
> >   -     * GetAttributes will return an attribute object describing
the
> current
> >   -     * attributes associated with the object name.
> >   +     *  GetAttributes will return an attribute object describing
the
> current
> >   +     *  attributes associated with the object name.
> >         *
> >   -     * @return Attributes for this region
> >   -     * @exception CacheException
> >   +     *@return                     Attributes for this region
> >   +     *@exception  CacheException
> >         */
> >        public Attributes getElementAttributes()
> >            throws CacheException
> >   @@ -375,19 +428,20 @@
> >        }
> >
> >        /**
> >   -     * GetAttributes will return an attribute object describing
the
> current
> >   -     * attributes associated with the object name. The name
object
> must
> >   -     * override the Object.equals and Object.hashCode methods.
> >   -     *
> >   -     * @param name Key of object to get attributes for
> >   -     * @return Attributes for the object, null if object not in
cache
> >   -     * @exception CacheException
> >   +     *  GetAttributes will return an attribute object describing
the
> current
> >   +     *  attributes associated with the object name. The name
object
> must
> >   +     *  override the Object.equals and Object.hashCode methods.
> >   +     *
> >   +     *@param  name                Key of object to get attributes
for
> >   +     *@return                     Attributes for the object, null
if
> object not
> >   +     *      in cache
> >   +     *@exception  CacheException
> >         */
> >        public Attributes getElementAttributes( Object name )
> >            throws CacheException
> >        {
> >            Attributes attr = null;
> >   -
> >   +
> >            try
> >            {
> >                attr = cacheControl.getElementAttributes( (
Serializable
> ) name );
> >   @@ -396,12 +450,12 @@
> >            {
> >                p( ioe.toString() );
> >            }
> >   -
> >   +
> >            return attr;
> >        }
> >
> >        /**
> >   -     * Dispose this region. Flushes objects to and closes
auxiliary
> caches.
> >   +     *  Dispose this region. Flushes objects to and closes
auxiliary
> caches.
> >         */
> >        protected void dispose()
> >        {
> >   @@ -409,9 +463,9 @@
> >        }
> >
> >        /**
> >   -     * Return statistics for the region.
> >   +     *  Return statistics for the region.
> >         *
> >   -     * @return HTML formatted string containing region statistics
> >   +     *@return    HTML formatted string containing region
statistics
> >         */
> >        protected String getStats()
> >        {
> >   @@ -419,25 +473,45 @@
> >        }
> >
> >        /**
> >   -     * Wrapper to System.out.println
> >   +     *  Wrapper to System.out.println FIXME: Replace (at call
points)
> with
> >   +     *  logging mechanism.
> >         *
> >   -     * FIXME: Replace (at call points) with logging mechanism.
> >   -     *
> >   -     * @param s String to print
> >   +     *@param  s  String to print
> >         */
> >        public static void p( String s )
> >        {
> >            System.out.println( s );
> >        }
> >   -
> >   +
> >   +
> >   +    /**
> >   +     *  Gets the ICompositeCacheAttributes of the cache region
> >   +     *
> >   +     *@return
> >   +     */
> >   +    public ICompositeCacheAttributes getCacheAttributes()
> >   +    {
> >   +        return cacheControl.getCacheAttributes();
> >   +    }
> >   +
> >   +    /**
> >   +     *  Sets the ICompositeCacheAttributes of the cache region.
> >   +     *
> >   +     *@param  cattr  The new ICompositeCacheAttribute value
> >   +     */
> >   +    public void setCacheAttributes( ICompositeCacheAttributes
cattr )
> >   +    {
> >   +        cacheControl.setCacheAttributes( cattr );
> >   +    }
> >   +
> >        // -------------------------------- methods for testing and
error
> reporting
> >   -
> >   -    // protected void dumpMap()
> >   +
> >   +    // protected void dumpMap()
> >        // {
> >        //     cache_control.dumpMap();
> >        // }
> >        //
> >   -    // protected void dumpCacheEntries()
> >   +    // protected void dumpCacheEntries()
> >        // {
> >        //     cache_control.dumpCacheEntries();
> >        // }
> >
> >
> >
> >   1.6       +2 -2      jakarta-turbine-
>
stratum/src/java/org/apache/stratum/jcs/engine/memory/lru/LRUMemoryCache
.j
> ava
> >
> >   Index: LRUMemoryCache.java
> >
===================================================================
> >   RCS file: /home/cvs/jakarta-turbine-
>
stratum/src/java/org/apache/stratum/jcs/engine/memory/lru/LRUMemoryCache
.j
> ava,v
> >   retrieving revision 1.5
> >   retrieving revision 1.6
> >   diff -u -r1.5 -r1.6
> >   --- LRUMemoryCache.java   13 Feb 2002 04:45:05 -0000      1.5
> >   +++ LRUMemoryCache.java   14 Feb 2002 05:30:51 -0000      1.6
> >   @@ -30,8 +30,8 @@
> >
> >    /////////////////////////////////////////////////////
> >    /**
> >   - *  A fast reference management system. The least recently used
items
> move tot
> >   - *  he end of the list and get spooled to disk if the cache hub
is
> configured to
> >   + *  A fast reference management system. The least recently used
items
> move to
> >   + *  the end of the list and get spooled to disk if the cache hub
is
> configured to
> >     *  use a disk cache. Most of the cache bottelnecks ar ein IO.
There
> are no io
> >     *  bottlenecks here, it's all about processing power. Even
though
> there are
> >     *  only a few adjustments necessary to maintain the double
linked
> list, we
> >
> >
> >
> >   1.4       +43 -40    jakarta-turbine-
> stratum/src/java/org/apache/stratum/jcs/JCS.java
> >
> >   Index: JCS.java
> >
===================================================================
> >   RCS file: /home/cvs/jakarta-turbine-
> stratum/src/java/org/apache/stratum/jcs/JCS.java,v
> >   retrieving revision 1.3
> >   retrieving revision 1.4
> >   diff -u -r1.3 -r1.4
> >   --- JCS.java      13 Feb 2002 03:01:05 -0000      1.3
> >   +++ JCS.java      14 Feb 2002 05:30:51 -0000      1.4
> >   @@ -11,28 +11,28 @@
> >     * are met:
> >     *
> >     * 1. Redistributions of source code must retain the above
copyright
> >   - *    notice, this list of conditions and the following
disclaimer.
> >   + * notice, this list of conditions and the following disclaimer.
> >     *
> >     * 2. Redistributions in binary form must reproduce the above
> copyright
> >   - *    notice, this list of conditions and the following
disclaimer in
> >   - *    the documentation and/or other materials provided with the
> >   - *    distribution.
> >   + * notice, this list of conditions and the following disclaimer
in
> >   + * the documentation and/or other materials provided with the
> >   + * distribution.
> >     *
> >     * 3. The end-user documentation included with the
redistribution, if
> >   - *    any, must include the following acknowlegement:
> >   - *       "This product includes software developed by the
> >   - *        Apache Software Foundation (http://www.apache.org/)."
> >   - *    Alternately, this acknowlegement may appear in the software
> itself,
> >   - *    if and wherever such third-party acknowlegements normally
> appear.
> >   + * any, must include the following acknowlegement:
> >   + * "This product includes software developed by the
> >   + * Apache Software Foundation (http://www.apache.org/)."
> >   + * Alternately, this acknowlegement may appear in the software
> itself,
> >   + * if and wherever such third-party acknowlegements normally
appear.
> >     *
> >     * 4. The names "The Jakarta Project", "Velocity", and "Apache
> Software
> >   - *    Foundation" must not be used to endorse or promote products
> derived
> >   - *    from this software without prior written permission. For
> written
> >   - *    permission, please contact [EMAIL PROTECTED]
> >   + * Foundation" must not be used to endorse or promote products
> derived
> >   + * from this software without prior written permission. For
written
> >   + * permission, please contact [EMAIL PROTECTED]
> >     *
> >     * 5. Products derived from this software may not be called
"Apache"
> >   - *    nor may "Apache" appear in their names without prior
written
> >   - *    permission of the Apache Group.
> >   + * nor may "Apache" appear in their names without prior written
> >   + * permission of the Apache Group.
> >     *
> >     * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR
IMPLIED
> >     * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES
> >   @@ -66,23 +66,26 @@
> >    import
> org.apache.stratum.jcs.engine.behavior.ICompositeCacheAttributes;
> >
> >    /**
> >   - * Simple class for using JCS. To use JCS in your application,
you
> can use the
> >   - * static methods of this class to get access objects (instances
of
> this class)
> >   - * for your cache regions. Ideally this class should be all you
need
> to import
> >   - * to use JCS.
> >   - *
> >   - * @author <a href="mailto:[EMAIL PROTECTED]";>Aaron Smuts</a>
> >   - * @author <a href="mailto:[EMAIL PROTECTED]";>James Taylor</a>
> >   - * @version $Id: JCS.java,v 1.3 2002/02/13 03:01:05 jtaylor Exp $
> >   + *  Simple class for using JCS. To use JCS in your application,
you
> can use the
> >   + *  static methods of this class to get access objects (instances
of
> this class)
> >   + *  for your cache regions. Ideally this class should be all you
need
> to import
> >   + *  to use JCS. One JCS should be created for each region you
want to
> access. If
> >   + *  you have several regions, then get instances for each. For
best
> performance
> >   + *  the getInstance call should be made in an initialization
method.
> >   + *
> >   + *@author     <a href="mailto:[EMAIL PROTECTED]";>Aaron Smuts</a>
> >   + *@author     <a href="mailto:[EMAIL PROTECTED]";>James
Taylor</a>
> >   + *@created    February 13, 2002
> >   + *@version    $Id: JCS.java,v 1.4 2002/02/14 05:30:51 asmuts Exp
$
> >     */
> >    public class JCS extends GroupCacheAccess
> >    {
> >        private static GroupCacheManager cacheMgr;
> >
> >        /**
> >   -     * Protected constructor for use by the static factory
methods.
> >   +     *  Protected constructor for use by the static factory
methods.
> >         *
> >   -     * @param cacheControl Cache which the instance will provide
> access to
> >   +     *@param  cacheControl  Cache which the instance will provide
> access to
> >         */
> >        protected JCS( Cache cacheControl )
> >        {
> >   @@ -90,29 +93,30 @@
> >        }
> >
> >        /**
> >   -     * Get a JCS which accesses the provided region.
> >   +     *  Get a JCS which accesses the provided region.
> >         *
> >   -     * @param region Region that return JCS will provide access
to
> >   -     * @return A JCS which provides access to a given region.
> >   -     * @exception CacheException
> >   +     *@param  region              Region that return JCS will
provide
> access to
> >   +     *@return                     A JCS which provides access to
a
> given region.
> >   +     *@exception  CacheException
> >         */
> >        public static JCS getInstance( String region )
> >            throws CacheException
> >        {
> >            ensureCacheManager();
> >   -
> >   +
> >            return new JCS( ( Cache ) cacheMgr.getCache( region ) );
> >   +
> >        }
> >
> >        /**
> >   -     * Get a JCS which accesses the provided region.
> >   +     *  Get a JCS which accesses the provided region.
> >         *
> >   -     * @param region Region that return JCS will provide access
to
> >   -     * @param icca Cache attributes for region
> >   -     * @return A JCS which provides access to a given region.
> >   -     * @exception CacheException
> >   +     *@param  region              Region that return JCS will
provide
> access to
> >   +     *@param  icca                Cache attributes for region
> >   +     *@return                     A JCS which provides access to
a
> given region.
> >   +     *@exception  CacheException
> >         */
> >   -    public static JCS getInstance( String region,
> >   +    public static JCS getInstance( String region,
> >                                       ICompositeCacheAttributes icca
)
> >            throws CacheException
> >        {
> >   @@ -122,11 +126,10 @@
> >        }
> >
> >        /**
> >   -     * Gets an instance of GroupCacheManager and stores it in the
> cacheMgr
> >   -     * class field, if it is not already set. Unlike the
> implementation in
> >   -     * CacheAccess, the cache manager is a GroupCacheManager.
> >   -     *
> >   -     * NOTE: This can / will be moved up into GroupCacheAccess.
> >   +     *  Gets an instance of GroupCacheManager and stores it in
the
> cacheMgr
> >   +     *  class field, if it is not already set. Unlike the
> implementation in
> >   +     *  CacheAccess, the cache manager is a GroupCacheManager.
NOTE:
> This can
> >   +     *  will be moved up into GroupCacheAccess.
> >         */
> >        protected static void ensureCacheManager()
> >        {
> >
> >
> >
> >   1.6       +71 -26    jakarta-turbine-
>
stratum/src/java/org/apache/stratum/jcs/access/behavior/ICacheAccess.jav
a
> >
> >   Index: ICacheAccess.java
> >
===================================================================
> >   RCS file: /home/cvs/jakarta-turbine-
>
stratum/src/java/org/apache/stratum/jcs/access/behavior/ICacheAccess.jav
a,
> v
> >   retrieving revision 1.5
> >   retrieving revision 1.6
> >   diff -u -r1.5 -r1.6
> >   --- ICacheAccess.java     15 Jan 2002 22:25:50 -0000      1.5
> >   +++ ICacheAccess.java     14 Feb 2002 05:30:51 -0000      1.6
> >   @@ -11,28 +11,28 @@
> >     * are met:
> >     *
> >     * 1. Redistributions of source code must retain the above
copyright
> >   - *    notice, this list of conditions and the following
disclaimer.
> >   + * notice, this list of conditions and the following disclaimer.
> >     *
> >     * 2. Redistributions in binary form must reproduce the above
> copyright
> >   - *    notice, this list of conditions and the following
disclaimer in
> >   - *    the documentation and/or other materials provided with the
> >   - *    distribution.
> >   + * notice, this list of conditions and the following disclaimer
in
> >   + * the documentation and/or other materials provided with the
> >   + * distribution.
> >     *
> >     * 3. The end-user documentation included with the
redistribution, if
> >   - *    any, must include the following acknowlegement:
> >   - *       "This product includes software developed by the
> >   - *        Apache Software Foundation (http://www.apache.org/)."
> >   - *    Alternately, this acknowlegement may appear in the software
> itself,
> >   - *    if and wherever such third-party acknowlegements normally
> appear.
> >   + * any, must include the following acknowlegement:
> >   + * "This product includes software developed by the
> >   + * Apache Software Foundation (http://www.apache.org/)."
> >   + * Alternately, this acknowlegement may appear in the software
> itself,
> >   + * if and wherever such third-party acknowlegements normally
appear.
> >     *
> >     * 4. The names "The Jakarta Project", "Velocity", and "Apache
> Software
> >   - *    Foundation" must not be used to endorse or promote products
> derived
> >   - *    from this software without prior written permission. For
> written
> >   - *    permission, please contact [EMAIL PROTECTED]
> >   + * Foundation" must not be used to endorse or promote products
> derived
> >   + * from this software without prior written permission. For
written
> >   + * permission, please contact [EMAIL PROTECTED]
> >     *
> >     * 5. Products derived from this software may not be called
"Apache"
> >   - *    nor may "Apache" appear in their names without prior
written
> >   - *    permission of the Apache Group.
> >   + * nor may "Apache" appear in their names without prior written
> >   + * permission of the Apache Group.
> >     *
> >     * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR
IMPLIED
> >     * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES
> >   @@ -57,7 +57,8 @@
> >    import java.io.Serializable;
> >
> >    import org.apache.stratum.jcs.access.exception.CacheException;
> >   -
> >   +import
org.apache.stratum.jcs.access.exception.ObjectExistsException;
> >   +import
> org.apache.stratum.jcs.engine.behavior.ICompositeCacheAttributes;
> >    import org.apache.stratum.jcs.engine.Attributes;
> >
> >    /////////////////////////////////////////////////////////
> >   @@ -92,6 +93,16 @@
> >
> >
> >        /**
> >   +     *  Puts in cache if an item does not exist with the name in
that
> region.
> >   +     *
> >   +     *@param  name                Description of the Parameter
> >   +     *@param  obj                 Description of the Parameter
> >   +     *@exception  CacheException  Description of the Exception
> >   +     */
> >   +    void putSafe( Object name, Object obj )
> >   +        throws CacheException;
> >   +
> >   +    /**
> >         *  Puts and/or overides an element with the name in that
region.
> >         *
> >         *@param  name                Description of the Parameter
> >   @@ -118,36 +129,55 @@
> >         *  Removes an item or all items. Should be called remove.
> >         *
> >         *@exception  CacheException  Description of the Exception
> >   +     *@deprecated
> >   +     *@see                        #remove
> >         */
> >        void destroy()
> >            throws CacheException;
> >
> >   -
> >        /**
> >         *  Description of the Method
> >         *
> >   -     *@param  name                Description of the Parameter
> >         *@exception  CacheException  Description of the Exception
> >         */
> >   -    void destroy( Object name )
> >   +    void remove()
> >            throws CacheException;
> >
> >   -
> >        /**
> >   -     *  Remove either the entire region of elements or the the
> specified element
> >   -     *  from other caches specified in in the cache.properties
file
> as lateral
> >   -     *  caches.
> >   +     *  Description of the Method
> >   +     *
> >   +     *@param  name                Description of the Parameter
> >   +     *@exception  CacheException  Description of the Exception
> >   +     *@deprecated
> >   +     *@see                        #remove
> >         */
> >   -    void removeLateralDirect();
> >   -
> >   +    void destroy( Object name )
> >   +        throws CacheException;
> >
> >        /**
> >         *  Description of the Method
> >         *
> >   -     *@param  key  Description of the Parameter
> >   +     *@param  name                Description of the Parameter
> >   +     *@exception  CacheException  Description of the Exception
> >         */
> >   -    void removeLateralDirect( Serializable key );
> >   +    void remove( Object name )
> >   +        throws CacheException;
> >
> >   +//    /**
> >   +//     *  Remove either the entire region of elements or the the
> specified element
> >   +//     *  from other caches specified in in the cache.properties
file
> as lateral
> >   +//     *  caches.
> >   +//     */
> >   +//    void removeLateralDirect();
> >   +//
> >   +//
> >   +//    /**
> >   +//     *  Description of the Method
> >   +//     *
> >   +//     *@param  key  Description of the Parameter
> >   +//     */
> >   +//    void removeLateralDirect( Serializable key );
> >   +//
> >
> >        /**
> >         *  ResetAttributes allows for some of the attributes of a
region
> to be
> >   @@ -199,6 +229,21 @@
> >         */
> >        Attributes getElementAttributes( Object name )
> >            throws CacheException;
> >   +
> >   +
> >   +    /**
> >   +     *  Gets the ICompositeCacheAttributes of the cache region
> >   +     *
> >   +     *@return
> >   +     */
> >   +    public ICompositeCacheAttributes getCacheAttributes();
> >   +
> >   +    /**
> >   +     *  Sets the ICompositeCacheAttributes of the cache region
> >   +     *
> >   +     *@param  cattr  The new ICompositeCacheAttribute value
> >   +     */
> >   +    public void setCacheAttributes( ICompositeCacheAttributes
cattr
> );
> >
> >    }
> >    // end interface
> >
> >
> >
> >   1.13      +80 -29    jakarta-turbine-
> stratum/src/java/org/apache/stratum/jcs/engine/control/Cache.java
> >
> >   Index: Cache.java
> >
===================================================================
> >   RCS file: /home/cvs/jakarta-turbine-
> stratum/src/java/org/apache/stratum/jcs/engine/control/Cache.java,v
> >   retrieving revision 1.12
> >   retrieving revision 1.13
> >   diff -u -r1.12 -r1.13
> >   --- Cache.java    13 Feb 2002 19:13:59 -0000      1.12
> >   +++ Cache.java    14 Feb 2002 05:30:51 -0000      1.13
> >   @@ -62,6 +62,7 @@
> >
> >    import org.apache.stratum.jcs.access.exception.CacheException;
> >    import
> org.apache.stratum.jcs.access.exception.ObjectNotFoundException;
> >   +import
org.apache.stratum.jcs.access.exception.ObjectExistsException;
> >
> >    import org.apache.stratum.jcs.engine.Attributes;
> >    import org.apache.stratum.jcs.engine.CacheElement;
> >   @@ -88,13 +89,13 @@
> >     *@author     asmuts
> >     *@created    January 15, 2002
> >     */
> >   -public class Cache
> >   -    implements ICacheHub, ICache, ICompositeCache, Serializable
> >   +public class Cache
> >   +     implements ICacheHub, ICache, ICompositeCache, Serializable
> >    {
> >   -    private static final Log log = LogSource.getInstance(
Cache.class
> );
> >   -
> >   +    private final static Log log = LogSource.getInstance(
Cache.class
> );
> >   +
> >        /**
> >   -     *  Description of the Field
> >   +     *  not used for much
> >         */
> >        public final String className;
> >
> >   @@ -105,15 +106,16 @@
> >
> >        private boolean alive = true;
> >
> >   +    // this is int he cacheAttr, shouldn't be used, remove
> >        final String cacheName;
> >
> >        /**
> >   -     *  Region Elemental Attributes
> >   +     *  Region Elemental Attributes, default
> >         */
> >        public Attributes attr;
> >
> >        /**
> >   -     *  Cache Attributes
> >   +     *  Cache Attributes, for hub and memory auxiliary
> >         */
> >        public ICompositeCacheAttributes cacheAttr;
> >
> >   @@ -124,6 +126,11 @@
> >        private int ramHit;
> >        private int miss;
> >
> >   +    /**
> >   +     *  The cache hub can only have one memory cache. This could
be
> made more
> >   +     *  flexible in the future, but they are tied closely
together.
> More than
> >   +     *  one doesn't make much sense.
> >   +     */
> >        // IMemoryCache
> >        IMemoryCache memCache;
> >
> >   @@ -173,9 +180,9 @@
> >
> >            if ( log.isDebugEnabled() )
> >            {
> >   -            log.debug( "Constructed cache with name " + cacheName
+
> >   -                       " and cache attributes: " + cattr );
> >   -        }
> >   +            log.debug( "Constructed cache with name " + cacheName
+
> >   +                " and cache attributes: " + cattr );
> >   +        }
> >            else if ( log.isInfoEnabled() )
> >            {
> >                log.info( "Constructed cache with name: " + cacheName
);
> >   @@ -186,7 +193,9 @@
> >        /**
> >         *  Description of the Method
> >         *
> >   -     *@param  ce  Description of the Parameter
> >   +     *@param  ce     Description of the Parameter
> >   +     *@deprecated
> >   +     *@see           this will become protected
> >         */
> >        public void add( ICacheElement ce )
> >        {
> >   @@ -203,7 +212,29 @@
> >
> >
> >        /**
> >   -     *  OSC4j interface put methods, and make it the first in the
> link list.
> >   +     *  Will no override existing items.
> >   +     *
> >   +     *@param  key              Description of the Parameter
> >   +     *@param  val              Description of the Parameter
> >   +     *@exception  IOException  Description of the Exception
> >   +     */
> >   +    public void putSafe( Serializable key, Serializable val )
> >   +        throws IOException, ObjectExistsException
> >   +    {
> >   +        if ( this.get( key ) != null )
> >   +        {
> >   +            throw new ObjectExistsException( "Object exists for
key "
> + key );
> >   +        }
> >   +        else
> >   +        {
> >   +            put( key, val, ( Attributes ) this.attr.copy() );
> >   +        }
> >   +        return;
> >   +    }
> >   +
> >   +
> >   +    /**
> >   +     *  Put in cache and configured auxiliaries.
> >         *
> >         *@param  key              Description of the Parameter
> >         *@param  val              Description of the Parameter
> >   @@ -234,18 +265,18 @@
> >            //if ( this.get( key ) != null ) {
> >            //  throw new ObjectExistsException( "Object exists for
key "
> + key );
> >            //}
> >   -
> >   +
> >            if ( key == null || val == null )
> >            {
> >   -            NullPointerException npe =
> >   -                new NullPointerException( "key=" + key + " and
val="
> + val +
> >   -                                          " must not be null." );
> >   -
> >   +            NullPointerException npe =
> >   +                new NullPointerException( "key=" + key + " and
val="
> + val +
> >   +                " must not be null." );
> >   +
> >                log.error( "Key or value was null. Exception will be
> thrown", npe );
> >   -
> >   +
> >                throw npe;
> >            }
> >   -
> >   +
> >            try
> >            {
> >                updateCaches( key, val, attr );
> >   @@ -271,7 +302,7 @@
> >            throws IOException
> >        {
> >            // FIXME: Replace with tracing aspects
> >   -
> >   +
> >            if ( log.isDebugEnabled() )
> >            {
> >                log.debug( "updateCaches(key,val,attr) >
> ICache.INCLUDE_REMOTE_CACHE= " + ICache.INCLUDE_REMOTE_CACHE + " key =
" +
> key );
> >   @@ -296,7 +327,7 @@
> >            throws IOException
> >        {
> >            // FIXME: Replace with tracing aspects
> >   -
> >   +
> >            if ( log.isDebugEnabled() )
> >            {
> >                log.debug(
"updateCaches(key,val,attr,updateRemoteCache)
> > updateRemoteCache= " + updateRemoteCache + " key = " + key );
> >   @@ -319,7 +350,7 @@
> >            throws IOException
> >        {
> >            // FIXME: Replace with tracing aspects
> >   -
> >   +
> >            if ( log.isDebugEnabled() )
> >            {
> >                log.debug( "update(ce) > ICache.INCLUDE_REMOTE_CACHE=
" +
> ICache.INCLUDE_REMOTE_CACHE + " key = " + ce.getKey() );
> >   @@ -359,11 +390,11 @@
> >                throw new IllegalArgumentException(
> >                    "key must not end with " +
NAME_COMPONENT_DELIMITER +
> " for a put operation" );
> >            }
> >   -
> >   +
> >            // FIXME: Replace with tracing aspects
> >
> >            if ( log.isDebugEnabled() )
> >   -        {
> >   +        {
> >                log.debug( "Cache.updateExclude(ce,updateRemoteCache)
>
> updateRemoteCache = " + updateRemoteCache + " key=" + ce.getKey() + ",
> value type=" + ce.getVal().getClass().getName() + ", " +
> ce.getAttributes().toString() );
> >
> >                if ( updateRemoteCache == ICache.INCLUDE_REMOTE_CACHE
)
> >   @@ -392,7 +423,7 @@
> >            for ( int i = 0; i < auxCaches.length; i++ )
> >            {
> >                ICache aux = auxCaches[i];
> >   -
> >   +
> >                if ( log.isDebugEnabled() )
> >                {
> >                    log.debug( "aux.getCacheType() = " +
> aux.getCacheType() );
> >   @@ -433,8 +464,8 @@
> >                    // restrictions
> >                    if ( log.isDebugEnabled() )
> >                    {
> >   -                    log.debug( "lateralcache in aux list: cattr "
+
> >   -                               cacheAttr.getUseLateral() );
> >   +                    log.debug( "lateralcache in aux list: cattr "
+
> >   +                        cacheAttr.getUseLateral() );
> >                    }
> >                    if ( cacheAttr.getUseLateral() &&
> ce.getAttributes().IS_LATERAL && updateRemoteCache )
> >                    {
> >   @@ -682,7 +713,7 @@
> >                    if ( log.isInfoEnabled() )
> >                    {
> >                        log.info( ce.getKey() + " expired" );
> >   -                }
> >   +                }
> >
> >                    this.remove( key );
> >                    //throw new ObjectNotFoundException( key + "
expired
> from cache" );
> >   @@ -1078,7 +1109,7 @@
> >
> >        ////////////////////////////////////////////////
> >        /**
> >   -     *  Gets the attributes attribute of the Cache object
> >   +     *  Gets the default element attribute of the Cache object
> >         *
> >         *@return    The attributes value
> >         */
> >   @@ -1087,6 +1118,26 @@
> >            return attr;
> >        }
> >
> >   +
> >   +    /**
> >   +     *  Gets the ICompositeCacheAttributes attribute of the Cache
> object
> >   +     *
> >   +     *@return    The ICompositeCacheAttributes value
> >   +     */
> >   +    public ICompositeCacheAttributes getCacheAttributes()
> >   +    {
> >   +        return this.cacheAttr;
> >   +    }
> >   +
> >   +    /**
> >   +     *  Sets the ICompositeCacheAttributes attribute of the Cache
> object
> >   +     *
> >   +     *@param  cattr  The new ICompositeCacheAttributes value
> >   +     */
> >   +    public void setCacheAttributes( ICompositeCacheAttributes
cattr )
> >   +    {
> >   +        this.cacheAttr = cattr;
> >   +    }
> >
> >        ////////////////////////////////////////////////
> >        /**
> >
> >
> >
> >
> > --
> > To unsubscribe, e-mail:   <mailto:turbine-dev-
> [EMAIL PROTECTED]>
> > For additional commands, e-mail: <mailto:turbine-dev-
> [EMAIL PROTECTED]>
> >
> >
> 
> 
> 
> --
> To unsubscribe, e-mail:   <mailto:turbine-dev-
> [EMAIL PROTECTED]>
> For additional commands, e-mail: <mailto:turbine-dev-
> [EMAIL PROTECTED]>


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

Reply via email to