added 'config' command line option to load an XML environment configuration file
DirectPlug
BREAKING CHANGE: deleted, is no longer needed after refactoring Plug
DreamContext
BREAKING CHANGE: replaced Suffixes and OriginalSuffixes with GetSuffix
added methods for accessing query arguments
added query argument getter methods
DreamEnvironment
added WaitUntilShutdown method to block thread until system shuts down
environment can now be configured to listen only to some IPs instead of all
added IPlugFactory interface to allows multiple co-hosted environments to exist
added DreamAbortProcessingException processing in feature handler
added processing pipeline that support prologs and epilogs feature invocations
added constructors that ommit the DreamMessageStatus parameter
fixed bug where 'output=' (now 'dream.out.format=') was only applied to outbound (http) messages
DreamMessage
automatic conversion to XDoc for query form data content-type
changed behavior of 'HasDocument' to return true when content-type is 'application/xml'
added HEADER_RESPONSE_URI header which holds the URI of the respondent
DreamRequest, DreamResponse
added support for cookies
DreamServiceBase
added GetValue<T> (with and without default) to fetch values from XDoc; it throws an DreamAbortProcessingException if the path cannot be found or the value cannot be converted
added Authenticate method that throws a DreamAbortProcessingException when authentication fails
DreamUtil
BREAKING CHANGE: remove INFINITE_TIMEOUT, use TIMEOUT_LONG (30 mins) instead to avoid permanent deadlocks
DirectoryService
added POST:update/ feature to use as end-point when listening to directory notifications
EventsService
added GET:/ and POST:/ as synonyms to GET:events/ and POST:events/. The latter are still supported.
fixed 'maxeventid' bug when no events are present
fixed 'ttl' bug where time was not read in seconds
General
added output=jspon (use prefix=foo), which prints root element
added output=php
added output=xspan
added output=xhtml
added output=versit
BREAKING CHANGE: renamed ActionCueSender to ActionOutCue
BREAKING CHANGE: renamed DreamResponseStatus to DreamMessageStatus
BREAKING CHANGE: renamed ICueReceiver to IInCue
BREAKING CHANGE: renamed ICueSender to IOutCue
HostService
changed BadRequest response to NotFound response for HostService
added support for <fork> script command
scheduler items are now accelerated when shutting down
added "*:test/" feature
added "POST:xmltransform/" feature
added "POST:convert/"
changed "POST:register/" to allow for an entire assembly to be registered at once
fixed bug in "POST:stop/"
HttpCueSender
BREAKING CHANGE: renamed to HttpOutCue
fixed bug that overwrote content-type for non-XML responses
HttpPlug:
fixed bug caused by WebException being thrown on non-OK responses
HttpTransport
now checks for username and password for all non-localhost request (when username and passwowrd are provided)
Log4NetService
allowing to view log4net output through a REST API
Plug
added PlugCue for easy asynchronous processing
added native type overloads for With()
BREAKING CHANGE: standard HTTP methods now only support empty, XDoc, and DreamMessage parameters
BREAKING CHANGE: 'packetsize=XYZ' must now explicitly be provided to enable mutli-message responses (events)
BREAKING CHANGE: renamed 'WithUser' to 'WithCredentials'
PHP
added Plug PHP class
StorageService
added 'ttl' query parameter
made service state persistent
TimerService
changed implementation to rely on DreamScheduler
changed timer notfications to use POST instead of GET (avoid proxy caching)
XDoc
added AddAll(XDoc)
added ForEach(Action<XDoc>)
added GetContentAsBytes()
added ToVersit() and ::FromVersit()
BREAKING CHANGE: changed ToHtml() to ToXspan()
added Replace(XDoc)
XUri
BREAKING CHANGE: renamed 'SetUserAndPassword' to 'SetCredentials'