Code cleanup - renamed DelayedAsyncInvocation to ProxyAsyncToken and
generalized it so it does not require an IAsyncService.
Deprecated manifest table in favor of using "entityType" as public
metadata. Fixed bugs in EntityCache related to refreshing & reusing entity ids.
Moved EntityCache and related classes to WeaveData project.
WeaveDataSource no longer builds XML hierarchy (TODO: use EntityTree).
Generalized EntityTree and EntityTreeDataDescriptor to use
IEntityTreeNode interface.
Implemented DataSourceTreeNode for top-level multi-datasource
EntityTree.
Implemented EntityHierarchySelector with two-pane view.
Fixed server-side null pointer errors.
No longer hiding hierarchy editor by default in Admin Console.
Added IDataSource.refreshHierarchy().
DynamicColumnEditor now uses HierarchyExplorer.
Moved deprecated IDataSource functions to IDataSource_old.
getHierarchyInfo() now supports arbitrary metadata search.
Attribute selector now supports multiple selection.
Renamed EntityTree -> WeaveTree, IEntityTreeNode -> IWeaveTreeNode,
EntityTreeDataDescriptor -> WeaveTreeDataDescriptor.
Created SQLUtils.WhereClauseBuilder with support for specifying wildcard
comparisons.
Updated documentation.
Remote entity wildcard search is now working.
Services now limit the maximum number of entities that can be requested
at a time to 1000.
Now hiding columns in MetadataManager that do not match search.
EntityNode now propagates its filter function to child nodes.
Fixed infinite refresh bug when searching for an entity id that does not
exist.
CSVDataSource no longer generates XML hierarchy, and it now has a way to
specify column metadata as an Array of objects.
Code cleanup.
Column metadata is now stored as an object instead of an XML.