Compressed DOM: 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.
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.
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. First step towards implementing transaction support is
implementation of the document locking mechanism.
XQuery support The Xindice projects needs to work
with the Xalan project in order to produce a common Apache Foundation
XQuery implementation.
Entity Catalogue Xindice should have internal XML entity
catalogue and utilize it. Catalogue management operations should be made
available via Collection API.
Authentication Xindice server should support collection
level authentication as per XML:DB Database.getCollection method.
Authorization Xindice should support collection level
and document level authorization of users and groups.
Administration Xindice should provide administration
tools for database consistency check, recovery, export/import.
Specifications We need to continue fleshing out our
technical specifications for the core.
Javadocs We need to continue fleshing out our technical
specifications for the core.
Fixed race condition in shutdown sequence.
Optimized transmission of collection's symbol table between server and
the client for reduced traffic and better performance.
Update jetty to version 6.1.11.
Update lucene-core library to version 2.4.0.
Update lucene-core library to version 2.3.2.
Fix implicitly declared namespace prefix "xml" in DOM implementation.
Change IndexPattern format to allow to specify path to
element/attribute.
Update XML-RPC library to the version 3.1.
Add full text indexer. It allows to search documents using Lucene
queries. Add lucene-core 2.2.0.
Update commons-fileupload to version 1.2. Added (required by upload)
commons-io 1.3.2.
Remove 'Ugly Browser', replaced by WebAdmin.
Use Java NIO to lock database on startup.
Add WebAdmin to the Xindice core (from scratchpad).
Minimum required Java version to build Xindice is now 1.4.
Update commons-logging, Xerces, Xalan, xml-apis libraries.
Do not create meta collections for the system collections.
Save meta collection configuration in the database and initialize meta
collection from the configuration on startup. This keeps meta collection
configuration consistent with database configuration.
Clear Paged and BTree cache on close.
Add support for HashFiler in database rebuild tool.
Add support for filer parameter in command line tools.
Moved configuration file in WAR file to /WEB-INF/config. Updated
XindiceServlet to check for xindice.configuration system property
before attempting to load configuration from WAR file.
Eliminate gap when index is registered but not created yet, causing
corruption of index file.
Ensure that background indexing processes are complete before
shutting database down.
Fix support of uncompressed collections. Add test cases.
Updated Xindice docs to work with latest Forrest (0.8-dev, trunk).
Fix MemValueIndexer for starts-with queries.
Fix indexing of multi-byte numeric types (long, double, etc). Due to
the change in the BTree, existing databases has to be re-built using
DatabaseRebuild command line utility.
Ignore SAXNotSupportedException in DOMParser.setFeature if
feature is being set to false. (Needed for Oracle 10g application server).
Change InlineMetaReader.read() method signature to remove
unnecessary data copying.
Update Ant to 1.6.5 version.
Fixed XMLTools to only print out the help menu when
needed. Also added the ability to set pagecount from
the command line.
Fix exception executing xpath query in collections with
mixed (XML and binary) content.
Stop timer thread on database shutdown.
Add pagecount configuration parameter to Paged based
filers: HashFiler, BTreeFiler.
HashFiler did not allocate root page correctly.
BTreeFiler did not use first pagecount pages due to bug
introduced in 1.1b4.
Implement DOM3 API compatibility.
Data files were created 6Mb in size instead of 4Mb (default value).
Fix ClassCastException in MemValueIndexer.
Make an attempt to lock a database before opening it up.
Prevents opening up same database by different processes,
resulting in database corruption.
Make sure that XUpdate commands are run only once per document.
In case XUpdate command does not complete successfully, revert
all affected documents to the original state. This requires
buffering of modified documents - so XUpdate on large collection
might require lots of memory.
Added support for current Xalan CVS (post 2.6.0 release).
Fixed memory leak in command line tool, addmultiple command.
Fixed bug in xindice.bat, support JAVA_HOME with spaces.
Fixed bugs in TreeWalkerImpl, methods getRoot, getCurrentNode,
nextNode, previousNode. Added TreeWalker unit test.
Make SymbolTableSymbols singleton.
Fixed bug in SymbolSerializer. SymbolDeserializer expects
DocumentImpl, but SymbolSerializer was sending document element.
Fixed saving of custom meta data documents.
Fixed addmultiple command with local (-l) database
Fixed NullPointerException in importNamespaces.
Fixed bug in flushing database configuration to the disk.
Fixed embedded Collection's getCanonicalName.
Implemented support for MetaData for Binary resources.
Support boolean, string, and number XPath query results.
XPath query resulting in text nodes will return text node
wrapped into the <result> element in
http://xml.apache.org/xindice/Query namespace.
XPath query resulting in attribute nodes will return attributes
on the <result> element in http://xml.apache.org/xindice/Query
namespace.
Fixed bug with DocumentImpl.importNode when importing attribute nodes.
Removing Eclipse UI plugin due to lack of support.
Implemented close() in Collection, IndexManager.
XML-RPC interface now passes XMLDBException codes as XML-RPC faults.
Xindice server and XML-RPC driver support basic HTTP authentication.
Xindice managed driver class renamed to DatabaseImpl and supports
same configuration parameters as embedded driver.
Xindice managed driver supports multiple database instances.
Xindice server and XML-RPC driver support multiple database instances.
Xindice now uses
Apache License, Version 2.0
In results of the queries like "//*", declare
http://xml.apache.org/xindice/Query namespace just once.
Lexus, XUpdate implementation, updated to the current CVS version
(20040205).
Embedded driver has new configuration parameters (see javadoc
for details), and supports multiple database instances (see
system.xml for an example).
Add max-descriptors configuration attribute to all Filer implementations
based on Paged. Default value is 16 file descriptors (same as before).
Added xindice command line tool to the jar distribution.
Xindice startup script and command line scripts are rewritten to
support Windows 95/98/ME.
Optimize flushing of the database configuration, flush only when there
were changes made.
Update XML:DB APIs to the 20030701 snapshot.
Added xindice command line tool to the war distribution. It is located
in webapps/xindice/WEB-INF folder once webapp is unpacked.
xindice.configuration servlet configuration parameter can point to
the file on local file system if absolute path is used, relative
path should point to webapp context resource.
Command line tool now support binary documents. New command
add_resource implemented, which adds binary resources to the collection.
Inline meta data and indexers now can co-exist in the same collection.
GetResource, GetDocument XML-RPC messages will return no result if
resource not found.
Added binary resource support to XML-RPC driver.
Updated BinaryResourceImpl to support only byte[] content, as per
XML:DB API.
Fixed exception in BTreeFiler when adding value with large key
(more than 4kb).
Fixed concurrency issues in Paged, BTreeFiler, and HashFiler.
Unit tests for concurrent writes added.
Properties PROP_XINDICE_CONFIGURATION, PROP_XINDICE_DB_HOME for
embed driver can now be passed when driver is instantiated by
org.apache.xindice.client.xmldb.DatabaseImpl
Upgrade libraries: Xerces to version 2.6.0, Xalan to version 2.5.2.
Change URLs in debug tool to "/xindice/?/db".
Drop SysSymbols when deleting collection.
Updated build scripts: all build properties extracted into build.properties
file. You can override them in local.build.properties file.
Added new fault code, DBE_CANNOT_READ
Added new service, MetaService. It provides access to the metadata.
Enable meta data in the system.xml file
XMLSerializable streamToXML method does not modify passed document.
It uses provided document only as factory for nodes.
Webapp context renamed to /xindice (all lowercase).
When using xindice with Jetty, port is set to 8888.
Documentation updated to reflect this.
JDK 1.4 works with Xindice and it is supported.
Collection meta data now has correct collection creation time.
Added XINDICE_DB_HOME environment variable and corresponding
xindice.db.home system property. This property takes precedence
over db location preferred by the driver (XindiceServlet prefers
WEB-INF folder and embedded driver prefers directory where
system.xml file is located).
Update ant to version 1.5.3 and move it into tools/ant/.
Build script modified to call ant script instead of ant class.
Compilation from the Cygwin environment now working.
Xindice has a new website.