2006-08-03 Gonzalo Paniagua Javier * CacheDependency.cs: * Cache.cs: check dependencies on other cache keys. Fixes bug #79002. 2006-03-18 Robert Jordan * OutputCacheModule.cs: invoke the validation callbacks of HttpCachePolicy. Fixes bug #77825. 2006-03-14 Robert Jordan * CachedVaryBy.cs: Fixed VaryByParam="*". Replaced request.Param with QueryString and Form lookups. Made the param name output case insensitive. Fixes bug #77757. 2005-10-24 Gonzalo Paniagua Javier * Cache.cs: new internal method. 2005-09-08 Eyal Alaluf * OutputCacheModule.cs: Use C# 1.0 style of delegate instantiating. Needed to compile Grasshopper (TARGET_J2EE) which uses MS C# 1.0 compiler and does not use msc. 2005-09-02 Gonzalo Paniagua Javier * Cache.cs: ignore exceptions thrown by removed item callbacks. 2005-09-02 Sebastien Pouliot * Cache.cs: Added security permissions with Minimal level for AspNetHostingPermissionLevel (only LinkDemand as the class is sealed). * CacheDependency.cs: : Added security permissions with Minimal level for AspNetHostingPermissionLevel (note class is sealed only in 1.x). 2005-09-01 Eyal Alaluf * CacheDependency.cs: TARGET_J2EE fixes. 2005-08-20 Gonzalo Paniagua Javier * CacheDependency.cs: add missing ctor. 2005-08-15 Jackson Harper * CacheItemPriority.cs: * CacheItemRemovedCallback.cs: * CacheItemRemovedReason.cs: New implementations. 2005-07-30 Miguel de Icaza * OutputCacheModule.cs: Make synchronous. 2005-07-15 Lluis Sanchez Gual * Cache.cs: New implementation. * CacheDependency.cs: New implementation. 2005-06-25 Gonzalo Paniagua Javier * Cache.cs: added new InsertPrivate overload. 2005-06-25 Gonzalo Paniagua Javier * Cache.cs: * CacheEntry.cs: style. Removed doc. comments. 2005-06-08 Ilya Kharmatsky * CacheDependency.cs - added TARGET_JVM directives in places, where file watching is using (Mainsoft's implementation currently doesn't support the feature). 2005-05-09 Gonzalo Paniagua Javier * CacheEntry.cs: credits for this patch should go to mcs. it catched that the code after 'if ((_enumFlags & Flags.Removed) != 0)' was unreachable. 2005-04-28 Gonzalo Paniagua Javier * ExpiresBuckets.cs: * Cache.cs: * CacheExpires.cs: fix NullReferenceException thrown sometimes when using sliding expiration and under high load. Patch by Eyal Alayuf from Mainsoft. 2005-04-20 Gonzalo Paniagua Javier * CacheDependency.cs: remove warnings. 2005-04-01 Gonzalo Paniagua Javier * CachedVaryBy.cs: fixed VaryByParam and wildcard (*). Patch by Ilya Kharmatsky (Mainsoft) that fixes bug #73981. 2005-04-01 Lluis Sanchez Gual * CachedRawResponse.cs: Fix warning. 2004-11-08 Gonzalo Paniagua Javier * CacheEntry.cs: convert the external DateTime to GMT, as everything else uses that timezone. Fixes bug #69194. 2004-10-03 Ben Maurer * Cache.cs, CacheEntry.cs, CacheExpires.cs, ExpiresBuckets.cs: use UtcNow rather than Now. 2004-05-27 Patrik Torstensson * ExpiresBucket.cs (FlushExpiredItems): fix csc and a typo bug 2004-05-27 Patrik Torstensson * CacheEntry.cs,CacheExpires.cs,ExpiresBucket.cs, Cache.cs : Fixed deadlock issues, fixed items not correctly being flushed, fixed update of item when expiration has been updated more than 1 min (placed in wrong bucket), fixed deadlock during cache callback when item is removed due to expiriation. Rewrite of locking handling in Cache class, leading to better performance and less bugs. This rewrite is due to a number of bugs found in the output caching during load (leading to memory leaks and deadlocks) 2004-05-16 Patrik Torstensson * ExpiresBucket.cs: Style changes plus; (Update): Fixed possible lock bug (bug 54531) (Expand): remove lock optimization due to it can cause newly added items to be lost. (Remove): fixed possible lock bug. 2004-04-16 Gonzalo Paniagua Javier * Cache.cs: fix from Jan Jaros for NullRef (bug #56996). 2004-04-07 Lluis Sanchez Gual * Cache.cs, CacheEntry.cs, ExpiresBuckets.cs: The value to use to specify infinite timeout in ReaderWriterLock is -1, not 0. 2004-03-19 Gonzalo Paniagua Javier * Watcher.cs: Removed file. Jackson made it obsolete and already removed it from the .sources file. 2004-02-09 Jackson Harper * ExpiresBucket.cs: Remove duplicate code. Fixes bug #54031. 2004-02-09 Jackson Harper * Cache.cs: Close entries that are removed. * CacheDependency.cs: Use FileSystemWatcher instead of custom Watcher for file dependencies. * OutputCacheModule.cs: Make the varyby objects dependent on the cached page. 2004-02-05 Jackson Harper * CacheDependency.cs: Handle cache keys that have not been added to the cache yet. 2004-02-02 Jackson Harper * OutputCacheModule.cs: We can use file dependancies now. 2004-01-14 Jackson Harper * Cache.cs: Return null when items are expired but have not been removed yet. * OutputCacheModule.cs: Handle sliding expirations. Remove hacks checking if the item is expired, the cache no longer returns expired items. 2004-01-14 Jackson Harper * Cache.cs: When using sliding expiration update the cache objects expires time as well as the expires entry expire time because the objects expire time is checked when objects are pulled out. This fixex bug #52778. 2004-01-11 Jackson Harper * OutputCacheModule.cs: Remove varyby objects when there are no more raw responses that belong to them. * CachedRawResponse.cs: Keep a reference to the VaryBy object that this response belongs to this is so the varyby can be cleaned up. * CachedVaryBy.cs: Keep a reference to the keys that belong to the varyby and a reference to the varyby's key. 2004-01-04 Jackson Harper * OutputCacheModule.cs: Dont cache items when trace is enabled. 2004-01-04 Jackson Harper * OutputCacheModule.cs: Update the date header value. * CachedRawResponse.cs: Expose a ref to the date header, so it can be easily set/updated. Remove unused methods and vars. 2004-01-04 Jackson Harper * CacheDependency.cs: Copy all the entries into the entries array, set on removed callback for items that we are dependent on. * Cache.cs: Add method to get CacheEntry objects. * OutputCacheModule.cs: Make raw repsonse entries dependent on their varyby param entries. 2004-01-04 Jackson Harper * OutputCacheModule.cs: VaryBy keys now need the HttpContext not just the request. * CachedVaryBy.cs: Handle vary by headers, and vary by custom. 2004-01-03 Gonzalo Paniagua Javier * ExpiresBuckets.cs: set _intPos when expanding the array. Fixes bug 52541. Patch by Jan Jaros (mono-bug@jerryweb.info). 2003-11-21 Jackson Harper * OutputCacheModule.cs: Only cache a page if it has a 200 status code. Fix tabbing. * CachedVaryBy.cs: Give raw response keys a name, use the httpmethod in the key, and delimit items with \n so it is easier to read when debugging. 2003-11-21 Jackson Harper * OutputCacheModule.cs: Store a CachedVaryBy object for each cached page. Then store a CachedRawResponse for each combination of varried parameters for a page. * CachedRawResponse.cs: Do not need to store param values anymore those are stored in the CachedVaryBy now. Get the content length so we dont send back the entire buffer. * CachedVaryBy.cs: New file - holds the varyby data for a page, and a method to generate a key based on params. Right now this only works with VaryByParams. TODO: support VaryByHeaders and VaryByCustom. 2003-11-20 Jackson Harper * Cache.cs: New method so non public cache items can be added. * CachedRawResponse.cs: New file - A snapshot of a response that is stored in the cache and can be used to create a new response. * OutputCacheModule.cs: Module for inserting and retrieving responses from the cache. 2003-04-09 Gonzalo Paniagua Javier * CacheDependency.cs: * CacheEntry.cs: * Watcher.cs: added a FileSystemWatcher-like class for dependency checking. 2003-03-13 Gonzalo Paniagua Javier * Cache.cs: * CacheDefinitions.cs: * CacheDependency.cs: * CacheEntry.cs: * CacheExpires.cs: * ExpiresBuckets.cs: reformatted, make class status page happier. Does not work yet (wait for the next patch). 2002-12-27 Daniel Cazzulino * CacheEntry.cs: several changes. New constants, use of constants defined in Cache.cs, modified locks to optimize perf. Fixed property sets which weren't using the keyword value to set the new values (don't know how this worked before!). * Cache.cs: changed singleton implementation to only create the object when actually used. Changed Insert overloads to use constants defined instead of hard values. * ExpiresBuchets: major changes. All locking now uses ReaderWriterLock class. Bucket now efectively reuses free indexes from removed items to avoid unnecessary expansions. Expansion now uses Array.CopyTo to add elements to the new list. Added private Int32Collection to handle int indexes efficiently (thanks Shawn Van Ness). See comments there. 2002-10-08 Gonzalo Paniagua Javier * Cache.cs: little fixes. 2002-07-28 Gonzalo Paniagua Javier * CacheDefinitions.cs: fixed a couple of enums. * CacheDependency.cs: the class is sealed. 2002-06-11 Gonzalo Paniagua Javier * CacheDependency.cs: fixed a couple of typos and don't throw NotImplementedException in constructors. 2001-12-21 Gaurav Vaish * CacheDependency.cs: Some unimplemented methods to make build 2001-07-20 Patrik Torstensson (Patrik.Torstensson@labs2.com) * Cache.cs: Implemented. (90% ready) * CacheDefinitions.cs: Implemented. * CacheDependency.cs: Added. (20% ready) * CacheExpires: Implemented. * CacheEntry.cs: Implemented. (95% ready, going to be changed due to CacheDependecy support) * ExpiresBuckets.cs: Implemented.