|
|
Denim
From $1
- Miscellaneous:
- General
- BREAKING CHANGE: replaced '-Yield()' suffix to '-Async()' (e.g. PostYield() is now PostAsync()); this makes the Dream API more self-consistent
- Core
- BREAKING CHANGE: replaced IDreamEnvironment references with Plug (better decoupling)
- BREAKING CHANGE: all internal uris now use local://; they get converted automatically on exit
- replaced many occurrences of XDoc 'Start().Value().End()' with 'Elem()'
- Dream
- replaced many occurrences of XDoc 'Start().Value().End()' with 'Elem()'
- removed all Cue classes and interfaces
- moved all classes from 'MindTouch.Tasking' into 'MindTouch.Dream' namespace
- APITest
- changes to parameters are now automatically reflected in the url (no need to hit Update Url)
- the radio button next to Use File/Use Test gets automatically selected when either field is changed
- header values are now displayed as part of the request results
- fixed xpath escaping issue
- ArrayUtil
- Async
- BREAKING CHANGE: renamed 'Wait()' methods to 'Sleep()' and 'WaitHandler()'
- create new static class for Asynchronous methods
- 'CopyStream()' detects memory streams to avoid unnecessary asynchronous calls
- remove timeout on 'CopyStream()' method since it contains inner timeouts for the chunks
- AtomService
- new service added
- fixed errors due to type change on XAtomBase
- Bench
- added Mindtouch.bench utility to benchmark/stress test a batch of uris using Apache Bench (ab)
- ConsoleHost
- BREAKING CHANGE: deprecated 'root-uri', used 'path-prefix' instead
- BREAKING CHANGE: renamed 'path-prefix' to 'server-path' ('path-prefix' is still recognized though)
- added 'G' as console key-press to force garbage collection
- apikey is now generated automatically if not present and printed on the startup screen
- DreamHost needs to be deinitialized before the transports are shutdown (since the transports are needed to conduct the shutdown!)
- removed transport-level apikey, username, password settings
- added 'H'-key for interactive help
- automatically assign server-name if none is provided
- added new command line option 'capture-stack-trace' for debugging
- added new interactive shell commands (D: toggle stack capture, P: show pending rendez-vous events)
- 'P' will now show the stack trace for pending rendez-vous events, if the stack trace has been captured
- 'D' now cycles through debug-levels (none, task-state only, task-state & stack-trace)
- 'I' shows pending DreamContext instances when task-state is captured
- added timer and activity details to system information output
- check for 'services' folder and automatically load assemblies contained in it
- Cue
- BREAKING CHANGE: removed class
- CueYieldDoneHandler
- BREAKING CHANGE: removed delegate
- DataCatalog
- added data access classes
- added 'ConnectionStream' property (using this property is not recommended and shows a warning during compilation)
- added TestConnection to catalog.cs
- DataCommand
- added data access classes
- added usage documentation to methods; finalized most methods
- added 'Read()' method for reading a single string value
- added more verbose logging of db calls
- DataFactory
- added data access classes
- added lots of error checking during factory creation (checks for types and constructors)
- workaround to Mono on Linux with SMP issue causing deadlocks under high volume
- DebugUtil
- removed DEBUG_STACKTRACE compiler flag; we can control this now with a command-line flag
- DirectoryService
- added 'filestorage-path' which is used to store directory info on the filesystem
- DreamContext
- BREAKING CHANGE: removed 'Passthrough()'
- BREAKING CHANGE: 'Close()' and 'KeepOpen()' have been removed (no longer applicable)
- BREAKING CHANGE: renamed 'RootUri' to 'BaseUri'
- BREAKING CHANGE: renamed 'BaseUri' to 'PublicUri'
- BREAKING CHANGE: 'Redirect()' is now a coroutine
- BREAKING CHANGE: renamed 'Redirect()' method to 'Relay()'
- add 'Feature' property to identify invoked feature
- fixed bug where context state was reset for each stage in a feature request
- added 'Env' property
- initialized immediately when received
- added 'ServerUri' which is based on <server-name> config setting
- added method to convert URIs to local representation
- added 'Request' property that holds the current client request message
- Enums can now be used in 'GetParam<EnumType>()'
- added stopwatch
- DreamContextCollection
- 'Add()' now requires the DreamContext and return Stream object
- removed unnecessary serialization overhead when doing streaming
- DreamFeature
- added 'HitCounter' and 'ExecutionTime' properties
- exposing the main DreamFeatureStage from DreamFeature
- DreamFeatureChain
- service features access privileges are now enforced
- major bug in error recovery was fixed (could cause leaking DreamContext objects)
- fixed bug where exceptions would skip a handler
- refactoring to hide stack trace during debugging
- show URI of feature which failed to respond
- DreamFeatureDirectory
- 'ListAll()' now returns an XDoc instead of List<string>
- DreamFeatureYieldAsyncHandler
- BREAKING CHANGE: delegate type removed
- DreamHost
- BREAKING CHANGE: 'POST:shutdown' has been replaced by 'DELETE:'
- BREAKING CHANGE: 'POST:start' has been replaced with 'POST:services', make sure to update all deki.startup.xml files
- fixed bug with api-key not being checked properly
- removed 'Submit()' and 'IPlugFactory.Invoke()' from the debugger call stack
- added additional logging for failed deinitialization
- request is now always added to DreamContext state as DreamMessage type
- initializes DreamConte.RootUri when request arrived over a standard port and the path-prefix header is set
- added 'GET:activities' to show open connections (and potentially more in the future)
- added mapping from external aliases to local:// uris (preserves cookies and so on)
- changed default storage path for services
- don't invoke cusomt proloque/epliques for '/@config' features since these are system calls that happen for initialization and shutdown operations
- don't log "service stopped" message, since it could be the log service that was stopped (oops)
- support for private-storage provider
- added 'GET:status' to provide system & host status information
- added 'count' attribute to activities
- additional debug output during shutdown
- 'SubmitRequest()' is processed on separate worker thread
- 'GET:status' now shows up-time, host aliases, services, and features with execution time
- 'StartService()' now returns message from failed service startup
- DreamKernel
- BREAKING CHANGE: merged into 'DreamHost'
- DreamMessage
- BREAKING CHANGE: changed 'Stream', 'Document', 'Text', 'TextReader', and 'Bytes' properties to 'AsStream()', 'AsDocument()', 'AsText()', 'AsTextReader()', and 'AsBytes()' methods
- added 'ContentDisposition' property
- added 'ForStreaming()' method which create a new message with a pipe stream
- error messages are now returned as XML with a XSL tranform
- made XSLT href smarter for error messages (now based active host environment)
- fixed annoying bug that would cause the error xslt to have the wrong uri
- fixed bug in 'InternalError()' that caused an exception to be raised when 'exception' was null
- changed 'Memorize()' method into a coroutine
- fixed deserialization bug in 'ContentDisposition' property
- DreamNoMessageException
- BREAKING CHANGE:class removed (use DreamResponseException)
- DreamProcessing
- content transforms are now also applied to non-succesful responses when the response is XML
- fixed bug in 'EpilogueDreamOut()' that prevented conversion of error messages to PHP/JSON
- returning correct response-uri header (instead of local://...)
- added 'host.exit' epilogue to gather feature timing information
- DreamRequestException
- BREAKING CHANGE:class removed (use DreamResponseException)
- DreamService
- BREAKING CHANGE: switched child logging service from EventsService to AtomService
- BREAKING CHANGE: 'Start()' and 'Stop()' are now coroutines
- BREAKING CHANGE: removed 'GetParam()' methods (used 'DreamContext.GetParam()' instead)
- features can now be 'public', 'internal', and 'private' (based on access modifier of implemented method)
- at creation time, all services get cryptographically strong private and internal access keys
- added 'Prologues' and 'Epiloques' properties used during service initialization
- made all '@config' features 'private'
- added 'apikey' as a configuration option for all services
- added <autosave> configuration property to trigger automatic saves for services with state
- made DetermineAccess virtual
- use List<Cookies> to store cookies (instead of CookieContainer)
- use HttpUtil to manage cookies
- enumerate blueprint attribute and add them to the blueprint
- changed "POST:grant" to "POST:@grants"
- DreamServiceBlueprintAttribute
- DreamUtil
- BREAKING CHANGE: removed 'CloseAllMessages()'
- HostService
- BREAKING CHANGE: merged into 'DreamHost'
- HttpHandler
- added ability to post a startup script by specifying <add name="script" value="startup.xml"/> in web.config
- changed the web.config vhost and port parameters to be deki-uri (just like mindtouch.dream.host)
- create the logger as a HttpHandler not a HttpTransport
- use the correct requestUri for processing provided by mod_mono
- removed transport authentication since feature access is now controlled by reflecting member access modifier
- no longer overwriting 'host' header
- uri replacement of index.aspx changed to /index.aspx to reduce unwanted matches
- build our XUri from the RawUrl rather than the Url to prevent additional Uri decoding
- convert response to stream before setting headers (forces 'Content-Length' header to be created)
- fixed inconsistency with HttpTransport
- HttpOutCue
- BREAKING CHANGE: removed class
- HttpPlug
- should now always respond with a DreamMessage and never throw an exception
- rewrote 'Invoke()' to take advantage of the coroutine capabilities
- HttpPlugFactory
- added fix for double messages on authentication (thx to Vincent D. for submitting the patch)
- made 'GetResponse()' asynchronous
- replaced use of 'ThreadPool.RegisterWaitForSingleObject()' with 'Async.Wait()' method
- don't use KeepAlive and use HTTP/1.0 (avoids 'connection closed: An unexpected error occurred on a send')
- HttpTransport
- now handles both receiving and responding to requests
- made response handler asynchronous
- injects 'path-prefix' header before submitting it to DreamHost
- moved 'DreamMessage.Close()' call into "finally" handler
- don't timeout on long http connections
- serialize output before sending it to generate the proper 'Content-Length' header
- use object as key instead of 'httpContext' to log activities
- HttpUtil
- added 'GetCookie()' to bypass a mono bug
- added FetchCookies() and UpdateCookies()
- fixed cookie value parsing
- ignore casing when fetching cookies
- fixed cookies in IE by not enclosing cookie path with quotes and moving path to last parameter
- added 'ParseNameValuePairs()' method for parsing headers
- fixed username/passwords being url encoded when containing irregular chars issue
- using 'expires' absolute date for set-cookie header and parsing this on incoming cookie header
- IDreamEnvironment
- BREAKING CHANGE: 'Submit()' now takes a DreamMessage and TaskYield<DreamMessage> instead of cues
- BREAKING CHANGE: renamed 'RootUri' to 'LocalUri'
- BREAKING CHANGE: renamed 'Submit()' to 'SubmitRequest()'
- BREAKING CHANGE: renamed 'AddActivityMessage()' to 'AddActivityDescription()'
- IDreamResponseFormater
- BREAKING CHANGE: fixed encoding bug (was always UTF8)
- IDreamService
- BREAKING CHANGE: 'SubmitRequest()' does not take a timeout parameter anymore
- removed 'Uri' (use 'Self' instead)
- IDreamTransprot
- BREAKING CHANGE: removed interface
- IPlugFactory
- BREAKING CHANGE: 'Invoke()' now takes a DreamMessage and TaskYield<DreamMessage> instead of cues
- BREAKING CHANGE: 'Invoke()' is now a coroutine
- BREAKING CHANGE: removed 'timeout' parameter from 'Invoke()' method (it's redundant since ResultBase already has a timeout)
- added 'ResolveAlias()' method to support multiple host names
- ITask
- BREAKING CHANGE: renamed to 'IYield'
- Lock<T>
- added class for managing non-blocking access to exclusive resources
- MimeType
- added NOTHING type (doesn't match any type)
- changed PHP mime-type to 'application/php; charset=utf8'
- added DREAM_EXCEPTION mime-type (application/x-dream-exception+xml)
- changed HTML to UTF-8
- 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
- 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
- added 'CopyToMemoryStream()' and 'DupStream()'
- increase buffer size to 4KB (recommended size)
- 'EscapeString()' was not escaping single quotes
- removed 'PadStream()' method (use 'Async.PadStream()' instead)
- StringUtil
- added MD5 hash method
- 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
- removed 'ExecuteProcess()' (use 'Async.ExecuteProcess()' instead)
- Task
- BREAKING CHANGE: 'Async(Enumerator, ...)' renamed to 'Iterate(Enumerator, ...)'
- BREAKING CHANGE: moved 'Fork()' methods to Async class
- better handling of exceptions
- added asynchronous 'CopyStream' method
- added 'New()' to create a new task context
- added a few more methods to the debugger hide list (makes the call stack shorter)
- added logging for 'Fork()' methods
- moved Async class into its own file
- TaskBehavior
- fixed regression where exceptions where not properly forwarded
- added a few more methods to the debugger hide list (makes the call stack shorter)
- TaskTimer
- TaskYield
- BREAKING CHANGE: renamed to Result
- 'Wait(...)' methods now return 'this' to allow chaining
- added 'Return(TaskYield)' for chaining async responses
- TaskYield<T>
- BREAKING CHANGE: renamed to Result<T>
- 'Wait(...)' methods now return 'this' to allow chaining
- added 'Return(TaskYield)' for chaining async responses
- added 'Return(delegate)' for on-demand responses
- added exception handlers around 'BeginRead()' and 'BeginWrite()'
- TaskYieldBase
- BREAKING CHANGE: renamed to ResultBase
- added 'ReturnType' property
- TimerQueue
- BREAKING CHANGE: removed class (use TaskTimer instead)
- TimeSchedule
- BREAKING CHANGE: class removed (use TaskTimer instead)
- VoidClosure
- added stronger checks for misuse
- XAtomBase
- class added
- added support for GeoRSS
- made protected methods public
- 'Id' is an element, not a attribute
- changed 'Id' type to XUri
- removed 'xmlns' atom namespace attribute (causing too many issues)
- XAtomEntry
- XAtomFeed
- XDoc
- BREAKING CHANGE: renamed 'Count' to 'ListLength'
- BREAKING CHANGE:'LoadFrom()' is now 'XDocFactory.LoadFrom()'
- BREAKING CHANGE:'From()' is now 'XDocFactory.From()'
- BREAKING CHANGE:'FromData()' is now 'XDocFactory.FromData()'
- BREAKING CHANGE:'ToJson()' is now 'JsonUtil.ToJson()'
- BREAKING CHANGE:'ToVersit()' is now 'VersitUtil.ToVersit()'
- BREAKING CHANGE:'ToXSpan()' is now 'XSpanUtil.ToXSpan()'
- BREAKING CHANGE:'ToPhp()' is now 'PhpUtil.ToPhp()'
- BREAKING CHANGE: changed 'AsText' to return null if element is empty or does not contain a #text node as it first child node
- BREAKING CHANGE: renamed 'AppendsNodes()' to 'AddNodes()' for consistency
- fixed XHTML output
- added 'ToBytes()' method
- 'ReplaceValue()' now also works on attributes
- 'ToXhtml()' properly handles EMPTY html elements
- added 'Parent' property
- added 'AppendNodes()' method
- added 'PrependNodes()' method
- added 'Rename()' method
- added 'WithXslTransform()' method
- added support for namespaces when creating elements and attributes
- added 'this[XmlNode]' property to initialize an XDoc at a given node position
- added 'Tranform(XUri)' and 'Transform(XslCompiledTransform)' methods
- XDoc constructor now looks for the first Element node (skipping processing elements and comment nodes)
- added more null argument checks
- fixed bug in 'ToXHtml()' method
- added 'ReplaceWithNodes()' method
- adding XUris to an xdoc converts them to public uris when appropriate (using DreamContex.AsPublicUri)
- fixed bug with #text and CDATA nodes
- added special xml serialization rules for 'bool' so that it always produces 'true' and 'false'
- 'AsUri' now converts URIs to local representation when possible
- 'Value()', 'Attr()', and 'Elem()' methods now acts as no-ops when the value is null (no more exceptions!)
- added 'ReplaceValue()' methods for all value types with special handling
- added 'ToInnerXHtml()' method (like 'ToXHtml()' but without the enclosing element tag)
- changed 'this[XmlNode]' so that it returns an XDoc with only 1 element rather than all its siblings (much, much faster!)
- store list of nodes as array instead of List<XmlNode> (less overhead)
- XDoc(XDoc) constructor now initializes the new xdoc as a rooted document (i.e. it will be used as the starting point for xpath queries)
- removed 'Transform(XUri)'
- added 'CDataSection()' method
- added 'RemoveNodes()'
- removed 'Normalize()' call from 'ToXHtml()' as it was crashing from time to time on MONO
- added support for inserting xml comments
- add 'ConditionalComment()' method
- default namespace can only be set when parsing an xml document (this fixes the Atom generation bug)
- XDocCop
- added class to validate XDoc documents
- don't apply rules to root node
- allow for shorthand notation to add rules
- convert CDATA sections into plain text elements
- XDocDiff
- new class to create diffs of XDocs
- fixed bug when diffing empty documents
- changed word boundary parsing to not include symbols into alphanumeric names
- count only terms beginning with a letter or a digit as words
- start diff at the current node, rather than the owner document
- provide an optional memory limit for diffs
- XDocFactory
- added DTD caching for SgmlReader
- fixed whitespaces munging bug when parsing HTML (bug #2037)
- added 'From()' method to create XDoc for enumeration of key-value pairs
- removed 'FromData()' methods
- XDocWord
- added class to describe words in XDoc
- added 'IsWord' property
- XHtmlTextWriter
- use commented-out CDATA section inside <script> elements
- better support for automatic CDATA encoding of <script> elements
- XPostUtil
- xdoc serialization to key-value pairs was seriously messed up
- XUri
- BREAKING CHANGE: removed support for segment parameters (they were causing issues; instead parse manually for segment parameters if desired)
- fixed typo in method name
- fix bug in 'TryParse()' method
- allow empty segments in path if there are segment parameters
- 'TryParse(string)' now returns XUri instead of bool (if result is null, TryParse failed)
- added '^' to the legal set of path characters
- added 'Encode()' method as a shortcut for 'EncodeSegment()'
| Images 0 |
|---|
| No images to display in the gallery. |
|