See docs/LICENSE for The Xindice License TODO ==== Compressed DOM -------------- The compressed DOM still needs quite a bit of work. Client support -------------- We need to enable the Client API and CORBA clients to receive compressed DOM documents, and then use a downloaded symbol table to decompress those documents. Huge document support --------------------- We need to create a virtualized byte array class to drive the compressed DOM system. Right now, there's a single byte array that represents the entire compressed document, but if that byte array is huge, and the document doesn't need to be fully traversed, then most of it is hanging around in memory for no reason. Advanced auto-linking --------------------- Basic auto-linking works right now, but there are some tree-walker related issues with it and it doesn't support things like controlled re-evaluation. Basic Document-level transactions --------------------------------- We need to provide the ability to lock a node (and recursively everything beneath it) to support node-level transactions. This locking should allow for both single writer/many reader and exclusive locking. The Application Server ---------------------- The foundations for the Application Server layer exist, but need to be built up substantially. Sessions -------- A Session system based on Thread-local associations needs to be developed. Sessions will be represented as XML Serializable objects and will be capable of Collection-based storage. Because the Filer that a Collection uses is virtualized, sessions will be capable of being transient and in-memory, persisted on disk, or replicated across a set of servers in a transparent fashion. Scheduling ---------- An Application-level scheduler needs to be developed for performing automated management tasks. Events will fall into several classes, including XMLObject method calls and external command execution. The Query Engine ---------------- The query engine has basic functionality right now. Indexing and XPath query work against a Collection, but no unified cross-Collection query system currently exists. Grouped resource-level transactions ----------------------------------- A system needs to be designed that allows transactions across a set of resources to be performed. Documentation ------------- We need to continue fleshing out our technical specifications for the core. We also need to work on JavaDoc where there is none already. Everything ---------- Pretty much everything needs to be looked at, if not be completely written. We've got a good foundation in place, it's now just a matter of getting all the pieces to fit together nicely. Grep for the string 'TODO' in the source code and you'll no doubt find stuff.