Jo Shields a575963da9 Imported Upstream version 3.6.0
Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
2014-08-13 10:39:27 +01:00

621 lines
21 KiB
Plaintext

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
2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
* CacheDependency.cs:
* Cache.cs: check dependencies on other cache keys. Fixes bug #79002.
2006-03-18 Robert Jordan <robertj@gmx.net>
* OutputCacheModule.cs: invoke the validation callbacks of
HttpCachePolicy. Fixes bug #77825.
2006-03-14 Robert Jordan <robertj@gmx.net>
* 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 <gonzalo@ximian.com>
* Cache.cs: new internal method.
2005-09-08 Eyal Alaluf <eyala@mainsoft.com>
* 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 <gonzalo@ximian.com>
* Cache.cs: ignore exceptions thrown by removed item callbacks.
2005-09-02 Sebastien Pouliot <sebastien@ximian.com>
* 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 <eyala@mainsoft.com>
* CacheDependency.cs: TARGET_J2EE fixes.
2005-08-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
* CacheDependency.cs: add missing ctor.
2005-08-15 Jackson Harper <jackson@ximian.com>
* CacheItemPriority.cs:
* CacheItemRemovedCallback.cs:
* CacheItemRemovedReason.cs: New implementations.
2005-07-30 Miguel de Icaza <miguel@novell.com>
* OutputCacheModule.cs: Make synchronous.
2005-07-15 Lluis Sanchez Gual <lluis@novell.com>
* Cache.cs: New implementation.
* CacheDependency.cs: New implementation.
2005-06-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
* Cache.cs: added new InsertPrivate overload.
2005-06-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
* Cache.cs:
* CacheEntry.cs: style. Removed doc. comments.
2005-06-08 Ilya Kharmatsky <ilyak-at-mainsoft.com>
* 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 <gonzalo@ximian.com>
* 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 <gonzalo@ximian.com>
* 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 <gonzalo@ximian.com>
* CacheDependency.cs: remove warnings.
2005-04-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
* CachedVaryBy.cs: fixed VaryByParam and wildcard (*). Patch by Ilya
Kharmatsky (Mainsoft) that fixes bug #73981.
2005-04-01 Lluis Sanchez Gual <lluis@novell.com>
* CachedRawResponse.cs: Fix warning.
2004-11-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
* CacheEntry.cs: convert the external DateTime to GMT, as everything
else uses that timezone. Fixes bug #69194.
2004-10-03 Ben Maurer <bmaurer@ximian.com>
* Cache.cs, CacheEntry.cs, CacheExpires.cs, ExpiresBuckets.cs:
use UtcNow rather than Now.
2004-05-27 Patrik Torstensson <totte@hiddenpeaks.com>
* ExpiresBucket.cs (FlushExpiredItems): fix csc and a typo bug
2004-05-27 Patrik Torstensson <totte@hiddenpeaks.com>
* 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 <totte@hiddenpeaks.com>
* 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 <gonzalo@ximian.com>
* Cache.cs: fix from Jan Jaros for NullRef (bug #56996).
2004-04-07 Lluis Sanchez Gual <lluis@ximian.com>
* 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 <gonzalo@ximian.com>
* Watcher.cs: Removed file. Jackson made it obsolete and already
removed it from the .sources file.
2004-02-09 Jackson Harper <jackson@ximian.com>
* ExpiresBucket.cs: Remove duplicate code. Fixes bug #54031.
2004-02-09 Jackson Harper <jackson@ximian.com>
* 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 <jackson@ximian.com>
* CacheDependency.cs: Handle cache keys that have not been added
to the cache yet.
2004-02-02 Jackson Harper <jackson@ximian.com>
* OutputCacheModule.cs: We can use file dependancies now.
2004-01-14 Jackson Harper <jackson@ximian.com>
* 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 <jackson@ximian.com>
* 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 <jackson@ximian.com>
* 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 <jackson@ximian.com>
* OutputCacheModule.cs: Dont cache items when trace is enabled.
2004-01-04 Jackson Harper <jackson@ximian.com>
* 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 <jackson@ximian.com>
* 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 <jackson@ximian.com>
* 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 <gonzalo@ximian.com>
* ExpiresBuckets.cs: set _intPos when expanding the array. Fixes bug
52541. Patch by Jan Jaros (mono-bug@jerryweb.info).
2003-11-21 Jackson Harper <jackson@ximian.com>
* 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 <jackson@ximian.com>
* 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 <jackson@ximian.com>
* 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 <gonzalo@ximian.com>
* CacheDependency.cs:
* CacheEntry.cs:
* Watcher.cs: added a FileSystemWatcher-like class for dependency checking.
2003-03-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
* 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 <dcazzulino@users.sf.net>
* 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 <gonzalo@ximian.com>
* Cache.cs: little fixes.
2002-07-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
* CacheDefinitions.cs: fixed a couple of enums.
* CacheDependency.cs: the class is sealed.
2002-06-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
* CacheDependency.cs: fixed a couple of typos and don't throw
NotImplementedException in constructors.
2001-12-21 Gaurav Vaish <gvaish@iitk.ac.in>
* 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.