added 'IsXml' property for easy identification of xml mime types
loosened 'IsXml' check
fixed error when fetching CharSet surrounded by double-quotes
ParserUtil
better parsing of 'Cookie' and 'Set-Cookie' headers
PhpUtil
switched php serialization to serialize to bytes instead of characters
added 'ConvertToFormatString()' function
PipeStream
class added
Plug
BREAKING CHANGE: renamed 'InvokeYieldEx()' to 'InvokeAsync()'
removed 'InvokeYield()' from the debugger call stack
all 'Invoke()' and 'InvokeYield()' methods now read the response stream to memory making 'Close()' optional to call (use 'InvokeYieldEx()' for streaming)
don't try to add cookies without a value (avoids unnecessary exceptions)
uses 'ResolveAlias()' to retrieve correct cookies for uri
forward host and path-prefix information to local:// uris
increased default timeout to 60 seconds
use HttpUtil methods for adding and fetching cookies
set _timeout on Result object
use global cookie container when not running inside a service
PlugYield
BREAKING CHANGE: class removed (use TaskYield<DreamMessage> instead)
RendezVousEvent
added RENDEZVOUS_IN_PLACE define; when not set, succesful rendez-vous continue on a new thread instead of in-place
removed 'Signal()' and 'Wait()' from the debugger call stack
added a global 'Pending' counter for unsignaled events
capture stack trace into central table for all rendez-vous events
allow capturing of task-state
ResourcePlugFactory
allow 'type=' query parameter to specify the mime-type of the resource
changed 'type' query to 'dream.out.type' for consistency
added support for HEAD requests
ResultBase (formerly TaskBase)
BREAKING CHANGE: 'Wait()' was renamed to 'WhenDone()'
added support for timeouts
added back support for timeout on asynchronous operations using the new TaskTimer
Result (formerly TaskYield)
added missing 'Wait()' method
added 'TryReturn()' method which provides a two-phase commit mechanism for results
Result<T> (formerly TaskYield<T>)
added 'TryReturn()' method which provides a two-phase commit mechanism for results
StorageService
changed date schema for file entries and added expiration date
added caching headers and conditional retrieval handling
StreamUtil
BREAKING CHANGE: removed 'CopyStream()', use 'Async.CopyStream()' instead
renamed 'EncodeString()' to 'QuoteString()' as it was causing too much confusion with 'EscapeString()'
added 'EncodeHtmlEntities()' and 'DecodeHtmlEntities()'
added missing escape sequences to 'EscapeString()' and 'UnescapeString()'
minor optimization for 'EscapeString()'
SysUtil
class added, contains a special 'ConvertType()' method that can convert to nullable types as well (e.g. int?)
added 'ExecuteProcess()'
added 'ChangeType<T>()'
added try..catch around asynchronous piping of data into std-in for 'ExecuteProcess()' as it might throw an exception when the process is terminated before completion
'ChangeType()' now supports conversions from/to string and XUri
put a try..catch around the kill command in ExecuteProcess(), and release Process resources when done