+2010-05-06 Marek Habersack <mhabersack@novell.com>
+
+ * OutputCacheModule.cs: added a 2.0 internal property to return
+ the internal provider used in this profile.
+
+ * OutputCache.cs: added internal RemoveFromProvider method to
+ remove items from the indicated provider.
+
+2010-02-23 Marek Habersack <mhabersack@novell.com>
+
+ * CachedVaryBy.cs: made serializable for 4.0+ (necessary for
+ extensible output caching)
+
+2010-02-03 Marek Habersack <mhabersack@novell.com>
+
+ * OutputCache.cs: DefaultProviderName checks if there was any
+ provider configured and, if not, returns a built-in provider's
+ name.
+
+ * SqlCacheDependencyAdmin.cs: added
+
+ * OutputCacheProviderCollection.cs: added
+
+ * OutputCacheProvider.cs: added
+
+ * OutputCacheModule.cs: uses the 4.0 extensible output cache
+ provider model now (also internally in the 2.0 profile)
+ OutputCacheProvider is retrieved on every request using
+ HttpApplication.GetOutputCacheProviderName (4.0+). In the 2.0
+ profile an instance of InMemoryOutputCacheProvider is always
+ returned.
+
+ * InMemoryOutputCacheProvider.cs: default output cache provider
+ for ASP.NET 4.0, also used internally in the 2.0 profile.
+
+ * CachedVaryBy.cs: made the generated key shorter
+
+ * CacheItemPriorityQueueDebug.cs: debugging support for
+ CacheItemPriorityQueue. Most of the code is compiled only when the
+ DEBUG macro is defined. Debugging support includes recording of
+ the queue operations sequence which is output to an XML file on
+ appdomain shutdown. The recorded sequence files can be used to
+ generate NUnit test cases for the priority queue (see
+ ../Test/tools/README)
+
+ * CacheItemPriorityQueue.cs: rewritten using an array based heap
+ instead of a binary tree based one - implementation is simpler,
+ faster and more elegant. Heap is initially 32 entries long and
+ its size is doubled every time it fills up. After reaching a
+ threshold (8192 entries currently) it is shrunk to the number of
+ items + 1/3 of item count in order to preserve memory.
+
+ * CacheItem.cs: added a Guid field to easier distinguish items
+ (mostly for debugging purposes)
+
+ * CacheDependency.cs: minor performance improvements
+
+ * Cache.cs: better handling of timer periods
+
+2010-01-25 Marek Habersack <mhabersack@novell.com>
+
+ * SqlCacheDependency.cs: added parameter checks to the
+ constructors.
+ Partially implemented 4.0 method CreateOutputCacheDependency
+
+ * CacheItemUpdateReason.cs, CacheItemUpdateCallback.cs: added
+
+ * CacheItem.cs: added OnUpdateCallback field
+
+ * Cache.cs: implemented support for cache item update callback
+ (3.5+)
+
+ * AggregateCacheDependency.cs: added undocumented
+ DependencyDispose method override
+
+2010-01-22 Marek Habersack <mhabersack@novell.com>
+
+ * SubstitutionResponseElement.cs: implemented correct
+ (de)serialization of the Callback delegate.
+
+ * OutputCache.cs: implemented Serialize, Deserialize,
+ DefaultProviderName and Providers.
+
+2010-01-21 Marek Habersack <mhabersack@novell.com>
+
+ * DatabaseNotEnabledForNotificationException.cs, OutputCache.cs,
+ FileResponseElement.cs, HeaderElement.cs, IOutputCacheEntry.cs,
+ MemoryResponseElement.cs, OutputCacheProvider.cs,
+ ResponseElement.cs, OutputCacheProviderCollection.cs,
+ SubstitutionResponseElement.cs,
+ TableNotEnabledForNotificationException.cs: added
+
+ * CacheDependency.cs: default constructor is protected in 4.0
+
+2010-01-06 Marek Habersack <mhabersack@novell.com>
+
+ * CacheItemPriorityQueue.cs: make sure lastParent is never null if
+ root is not null in Enqueue. Possible fix for bug #567869
+
+2009-12-01 Marek Habersack <mhabersack@novell.com>
+
+ * Cache.cs: ExpireItems dequeues the next item when a disabled
+ item is found before continuing to look for items to expire. Fixes
+ bug #559470. Patch from Adriaan van Kekem <avkekem@hotmail.com>,
+ thanks.
+
+2009-10-21 Marek Habersack <mhabersack@novell.com>
+
+ * CacheItemPriorityQueue.cs: lock the queue on enqueue/dequeue
+
+2009-10-20 Marek Habersack <mhabersack@novell.com>
+
+ * OutputCacheModule.cs: keysCache and entriesToInvalidate
+ dictionaries are allocated only when they are
+ required. BuildManager's RemoveEntry envent is subscribed to only
+ if cache actually has some entries.
+ Added support for post-cache substitution.
+
+ * CachedRawResponse.cs: data is stored in a list of DataItem
+ instances instead of just in a single buffer. This enables support
+ for post-cache substitution.
+
+2009-10-05 Marek Habersack <mhabersack@novell.com>
+
+ * Cache.cs: if item expiration time exceeds the maximum value
+ Timer accepts, use the latter - item will expire properly anyway,
+ as the timer will be rescheduled for the item's expiration time
+ once that item is bubbled to the top of the priority queue. Fixes
+ bug #544171
+
+2009-09-26 Marek Habersack <mhabersack@novell.com>
+
+ * CacheItemPriorityQueue.cs, CacheItem.cs, CacheItemEnumerator.cs:
+ added
+
+ * Cache.cs: factored out CacheItem and CacheItemEnumerator to
+ separate files.
+ Use reader-writer locks instead of Monitor.
+ Added two 3.5sp1 properties - EffectivePrivateBytesLimit and
+ EffectivePercentagePhysicalMemoryLimit.
+ Added support for disabling cache item expiration.
+ One timer is used to expire all timed items (instead of one timer
+ per item). Timed items are kept in a priority queue.
+
+2009-03-03 Marek Habersack <mhabersack@novell.com>
+
+ * CachedRawResponse.cs: headers are stored in NameValueCollection
+ now.
+
+2009-01-09 Marek Habersack <mhabersack@novell.com>
+
+ * Cache.cs: System.Threading.Timer.Change takes a long, not an
+ int. The maximum value of sliding expiration is 365 days
+ (31536000000ms) which fits within the value range of long. The
+ previous cast to int might yield negative values in certain
+ situations which was the reason for bug #464221. Fixes bug #464221
+
+2008-10-21 Marek Habersack <mhabersack@novell.com>
+
+ * OutputCacheModule.cs: seal the class.
+ Made OnRawResponseRemoved a static method.
+
+ * CachedVaryBy.cs: seal the class.
+ Use portable line terminators instead of literal '\n'.
+
+ * Cache.cs: seal the CacheItem and CacheItemEnumerator classes.
+
+ * CacheDependency.cs: dispose the associated dependency in the
+ DependencyDispose method.
+
+ * CachedRawResponse.cs: seal the class
+
+2008-10-15 Marek Habersack <mhabersack@novell.com>
+
+ * OutputCacheModule.cs: do not take any action if Response returns
+ null from GetCachedResponse.
+
+2008-09-30 Juraj Skripsky <js@hotfeet.ch>
+
+ * CachedRawResponse.cs: Don't allocate a 32k buffer that is never
+ used. Fixes enhancement bug #430963.
+
+2008-09-29 Marek Habersack <mhabersack@novell.com>
+
+ * OutputCacheModule.cs: invalidate cache entries when the
+ corresponding source file (.as?x) is recompiled by hooking up to
+ System.Web.Compilation.BuildManager's build cache entry removal
+ event. Fixes bug #429926
+
+2008-09-26 Juraj Skripsky <js@hotfeet.ch>
+
+ * OutputCacheModule.cs: Consistently use InternalCache for
+ CachedRawResponse items and Cache for CachedVaryBy items.
+ Partial fix for bug #429926.
+
+2008-08-11 Marek Habersack <mhabersack@novell.com>
+
+ * Cache.cs: dispose item timer when removing an entry. Fixes bug
+ #416076. Patch provided by Adriaan van Kekem
+ <adriaanvk@gmail.com>, thanks!
+ Pass onRemoveCallback along in Insert. Fixes bugs #324528 and
+ #382644. Patch provided by Juraj Skripsky <juraj@hotfeet.ch>,
+ thanks!
+
+2008-06-18 Marek Habersack <mhabersack@novell.com>
+
+ * SqlCacheDependency.cs: added
+
+2008-05-30 Marek Habersack <mhabersack@novell.com>
+
+ * CacheDependency.cs: do not use synthetized event accessors (to
+ avoid locks).
+
+2008-05-23 Marek Habersack <mhabersack@novell.com>
+
+ * Cache.cs: optimize lock usage
+
+2008-04-28 Marek Habersack <mhabersack@novell.com>
+
+ * Cache.cs: refactoring - move the timeout setting code to
+ separate methods, so that it can be accessed from outside the
+ class. Fixes bug #382644
+
+2008-03-18 Geoff Norton <gnorton@novell.com>
+
+ * Cache.cs: MS allows calling Insert in a removed handler, we need to
+ avoid double locking here otherwise the Insert will never succeed.
+
+2008-02-26 Kornél Pál <kornelpal@gmail.com>
+
+ * CachedRawResponse.cs, OutputCacheModule.cs: Don't add Date header because
+ servers usually add a Date header that would result in duplicate Date header
+ sent to the client. Fixes bug #363404.
+
+2007-12-31 Vladimir Krasnov <vladimirk@maimsoft.com>
+
+ * Cache.cs: added DependencyCache property, a cache object for
+ creating dependencies
+
+2007-12-19 Juraj Skripsky <js@hotfeet.ch>
+
+ * Cache.cs: Replace periodic timer (60s) with per-cache-item expiration
+ timers.
+
+2007-08-17 Marek Habersack <mhabersack@novell.com>
+
+ * CacheDependency.cs: use DependencyChanged as a list of events.
+ OnChanged now calls OnDependencyChanged, to notify
+ AggregateCacheDependency that it has changed. Fixes bug #82419.
+
+2007-08-14 Marek Habersack <mhabersack@novell.com>
+
+ * AggregateCacheDependency.cs: propagate changes in any child
+ dependencies to the base class.
+
+2007-06-25 Juraj Skripsky <js@hotfeet.ch>
+
+ * Cache.cs: Re-introduce "InvokePrivateCallbacks" accidentally
+ removed in r80321.
+
+2007-06-20 Marek Habersack <mhabersack@novell.com>
+
+ * OutputCacheModule.cs: use Context.InternalCache.
+
+ * Cache.cs: 2.0 profile uses generic containers to keep the cache
+ entries.
+ Gotten rid of the InsertPrivate and InsertInternal methods. The
+ latter was moved to one of the Insert overloads.
+ Private entries are no longer handled specifically, because the
+ internal cache is now kept in a separate object.
+ Iterate over the entries when filling the ArrayList in the 2.0
+ profile to avoid type cast exceptions.
+
+2007-05-03 Igor Zelmanovich <igorz@mainsoft.com>
+
+ * AggregateCacheDependency.cs:
+ * CacheDependency.cs:
+ added missing API.
+
+2007-04-10 Marek Habersack <mhabersack@novell.com>
+
+ * CacheDependency.cs: add the NotifyFilters.Size to the
+ watcher flags, so that we watch for modifications to a file when
+ using Linux inotify.
+
+2006-11-29 Marek Habersack <grendello@gmail.com>
+
+ * CachedVaryBy.cs: Make sure that the vary:* header is generated
+ only when allowed under the 2.0 profile.
+
+2006-11-25 Marek Habersack <grendello@gmail.com>
+
+ * AggregateCacheDependency.cs: A small code optimization.
+
+2006-11-14 Marek Habersack <grendel@caudium.net>
+
+ * Cache.cs:
+ * CacheDependency.cs:
+ * AggregateCacheDependency.cs: implement this one.
+
2006-09-11 Andrew Skiba <andrews@mainsoft.com>
* CacheDependency.cs: ifdef TARGET_JVM