<?xml version="1.0" encoding="UTF-8"?>
<!--
  - Licensed to the Apache Software Foundation (ASF) under one or more
  - contributor license agreements.  See the NOTICE file distributed with
  - this work for additional information regarding copyright ownership.
  - The ASF licenses this file to You under the Apache License, Version 2.0
  - (the "License"); you may not use this file except in compliance with
  - the License.  You may obtain a copy of the License at
  -
  -    http://www.apache.org/licenses/LICENSE-2.0
  -
  - Unless required by applicable law or agreed to in writing, software
  - distributed under the License is distributed on an "AS IS" BASIS,
  - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  - See the License for the specific language governing permissions and
  - limitations under the License.
  -
  - $Id$
  -->

<!--
  - Xindice project status file.
  -
  - Version: $Revision$ $Date$
  -->
<status>
  <developers>
    <person name="Vladimir Ritz Bossicard" email="vladimir@apache.org" id="VBO"/>
    <person name="Vadim Gritsenko" email="vgritsenko@apache.org" id="VG"/>
    <person name="Todd Byrne" email="byrne@apache.org" id="TB"/>
    <person name="Natalia Shilenkova" email="natalia@apache.org" id="NS"/>
  </developers>
  <todo>
    <actions priority="Long Term">
      <action context="xml" dev="open">
        <strong>Compressed DOM: Huge document support</strong> 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.
      </action>
      <action context="xml" dev="open">
        <strong>Basic Document-level transactions</strong> 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.
      </action>
      <action context="xml" dev="open">
        <strong>Scheduling</strong> 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.
      </action>
      <action context="xml" dev="open">
        <strong>The Query Engine</strong> 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.
      </action>
      <action context="xml" dev="open">
        <strong>Grouped resource-level transactions</strong> 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.
      </action>
      <action context="xml" dev="open">
        <strong>XQuery support</strong> The Xindice projects needs to work
        with the Xalan project in order to produce a common Apache Foundation
        XQuery implementation.
      </action>
    </actions>
    <!--<actions priority="High Priority">-->
    <!--</actions>-->
    <actions priority="Medium Priority">
      <action context="code" dev="open">
        <strong>Entity Catalogue</strong> Xindice should have internal XML entity
        catalogue and utilize it. Catalogue management operations should be made
        available via Collection API.
      </action>
      <action context="code" dev="open">
        <strong>Authentication</strong> Xindice server should support collection
        level authentication as per XML:DB Database.getCollection method.
      </action>
      <action context="code" dev="open">
        <strong>Authorization</strong> Xindice should support collection level
        and document level authorization of users and groups.
      </action>
      <action context="code" dev="open">
        <strong>Administration</strong> Xindice should provide administration
        tools for database consistency check, recovery, export/import.
      </action>
      <action context="code" dev="open">
        <strong>Specifications</strong> We need to continue fleshing out our
        technical specifications for the core.
      </action>
      <action context="code" dev="open">
        <strong>Javadocs</strong> We need to continue fleshing out our technical
        specifications for the core.
      </action>
    </actions>
  </todo>

  <changes>
    <release version="1.2-dev" date="unreleased">
      <action dev="VG" type="fix" fixes-bug="46218">
        Fixed race condition in shutdown sequence.
      </action>
      <action dev="VG" type="update">
        Optimized transmission of collection's symbol table between server and
        the client for reduced traffic and better performance.
      </action>
      <action dev="VG" type="update">
        Update jetty to version 6.1.11.
      </action>
      <action dev="NS" type="update">
        Update lucene-core library to version 2.4.0.
      </action>
      <action dev="NS" type="update">
        Update lucene-core library to version 2.3.2.
      </action>
      <action dev="NS" type="fix">
        Fix implicitly declared namespace prefix "xml" in DOM implementation. 
      </action>
      <action dev="NS" type="add">
        Change IndexPattern format to allow to specify path to 
        element/attribute.
      </action>
    </release>
    <release version="1.2m1" date="Dec 1 2007">
      <action dev="VG" type="update">
        Update XML-RPC library to the version 3.1.
      </action>
      <action dev="NS" type="add" due-to="Andy Armstrong">
        Add full text indexer. It allows to search documents using Lucene
        queries. Add lucene-core 2.2.0.
      </action>
      <action dev="VG" type="update">
        Update commons-fileupload to version 1.2. Added (required by upload)
        commons-io 1.3.2.
      </action>
      <action dev="VG" type="remove">
        Remove 'Ugly Browser', replaced by WebAdmin.
      </action>
      <action dev="VG" type="update" fixes-bug="42684" due-to="Natalia Shilenkova">
        Use Java NIO to lock database on startup.
      </action>
      <action dev="VG" type="add" fixes-bug="42478" due-to="Natalia Shilenkova">
        Add WebAdmin to the Xindice core (from scratchpad).
      </action>
      <action dev="VG" type="update">
        Minimum required Java version to build Xindice is now 1.4.
      </action>
      <action dev="VG" type="update">
        Update commons-logging, Xerces, Xalan, xml-apis libraries.
      </action>
    </release>
    <release version="1.1" date="May 9 2007">
      <action dev="VG" type="update">
        Do not create meta collections for the system collections.
      </action>
      <action dev="VG" type="fix" fixes-bug="42273" due-to="Natalia Shilenkova">
        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.
      </action>
      <action dev="VG" type="fix" fixes-bug="42272" due-to="Natalia Shilenkova">
        Clear Paged and BTree cache on close.
      </action>
      <action dev="VG" type="update" fixes-bug="41854" due-to="Natalia Shilenkova">
        Add support for HashFiler in database rebuild tool.
      </action>
      <action dev="VG" type="update" fixes-bug="41854" due-to="Natalia Shilenkova">
        Add support for filer parameter in command line tools.
      </action>
      <action dev="VG" type="update">
        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.
      </action>
      <action dev="VG" type="fix" fixes-bug="33148" due-to="Natalia Shilenkova">
        Eliminate gap when index is registered but not created yet, causing
        corruption of index file.
      </action>
      <action dev="VG" type="fix" fixes-bug="41710" due-to="Natalia Shilenkova">
        Ensure that background indexing processes are complete before
        shutting database down.
      </action>
      <action dev="VG" type="fix" fixes-bug="41605" due-to="Natalia Shilenkova">
        Fix support of uncompressed collections. Add test cases.
      </action>
      <action dev="VG" type="update">
        Updated Xindice docs to work with latest Forrest (0.8-dev, trunk).
      </action>
      <action dev="VG" type="fix" fixes-bug="38886" due-to="Terry Rosenbaum">
        Fix MemValueIndexer for starts-with queries.
      </action>
      <action dev="VG" type="fix" fixes-bug="19203" due-to="Natalia Shilenkova">
        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.
      </action>
      <action dev="VG" type="update" fixes-bug="41002" due-to="Natalia Shilenkova">
        Ignore SAXNotSupportedException in DOMParser.setFeature if
        feature is being set to false. (Needed for Oracle 10g application server).
      </action>
      <action dev="VG" type="update" fixes-bug="41003" due-to="Natalia Shilenkova">
        Change InlineMetaReader.read() method signature to remove
        unnecessary data copying.
      </action>
      <action dev="VG" type="update">
        Update Ant to 1.6.5 version.
      </action>
      <action dev="TB" type="fix" fixes-bug="40931">
        Fixed XMLTools to only print out the help menu when
        needed. Also added the ability to set pagecount from
        the command line.
      </action>
      <action dev="VG" type="fix" fixes-bug="31974">
        Fix exception executing xpath query in collections with
        mixed (XML and binary) content.
      </action>
      <action dev="VG" type="fix" fixes-bug="23571">
        Stop timer thread on database shutdown.
      </action>
      <action dev="VG" type="fix" fixes-bug="31159">
        Add pagecount configuration parameter to Paged based
        filers: HashFiler, BTreeFiler.
      </action>
      <action dev="VG" type="fix">
        HashFiler did not allocate root page correctly.
      </action>
      <action dev="VG" type="fix">
        BTreeFiler did not use first pagecount pages due to bug
        introduced in 1.1b4.
      </action>
      <action dev="VG" type="update" fixes-bug="40701">
        Implement DOM3 API compatibility.
      </action>
      <action dev="VG" type="fix">
        Data files were created 6Mb in size instead of 4Mb (default value).
      </action>
      <action dev="VG" type="fix" fixes-bug="37383" due-to="Terry Rosenbaum">
        Fix ClassCastException in MemValueIndexer.
      </action>
      <action dev="VG" type="update">
        Make an attempt to lock a database before opening it up.
        Prevents opening up same database by different processes,
        resulting in database corruption.
      </action>
      <action dev="VG" type="fix" fixes-bug="30878" due-to="Todd Byrne">
        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.
      </action>
      <action dev="VG" type="update" fixes-bug="33657" due-to="Dave Brosius">
        Added support for current Xalan CVS (post 2.6.0 release).
      </action>
      <action dev="VG" type="fix" due-to="Daniel Migowski">
        Fixed memory leak in command line tool, addmultiple command.
      </action>
      <action dev="VG" type="fix" fixes-bug="31205" due-to="Tim O'Brien">
        Fixed bug in xindice.bat, support JAVA_HOME with spaces.
      </action>
      <action dev="VG" type="fix">
        Fixed bugs in TreeWalkerImpl, methods getRoot, getCurrentNode,
        nextNode, previousNode. Added TreeWalker unit test.
      </action>
      <action dev="VG" type="update">
        Make SymbolTableSymbols singleton.
      </action>
      <action dev="VG" type="fix">
        Fixed bug in SymbolSerializer. SymbolDeserializer expects
        DocumentImpl, but SymbolSerializer was sending document element.
      </action>
      <action dev="VG" type="fix">
        Fixed saving of custom meta data documents.
      </action>
      <action dev="VG" type="fix" fixes-bug="27187" due-to="Fredy Dobler">
        Fixed addmultiple command with local (-l) database
      </action>
      <action dev="VG" type="fix" fixes-bug="28317" due-to="Dominic Battre">
        Fixed NullPointerException in importNamespaces.
      </action>
      <action dev="VG" type="fix" fixes-bug="28783">
        Fixed bug in flushing database configuration to the disk.
      </action>
    </release>

    <release version="1.1b4" date="April 8 2004">
      <action dev="VG" type="fix">
        Fixed embedded Collection's getCanonicalName.
      </action>
      <action dev="VG" type="update">
        Implemented support for MetaData for Binary resources.
      </action>
      <action dev="VG" type="fix" fixes-bug="22155">
        Support boolean, string, and number XPath query results.
      </action>
      <action dev="VG" type="fix" fixes-bug="22070">
        XPath query resulting in text nodes will return text node
        wrapped into the &lt;result&gt; element in
        http://xml.apache.org/xindice/Query namespace.
      </action>
      <action dev="VG" type="fix" fixes-bug="22156">
        XPath query resulting in attribute nodes will return attributes
        on the &lt;result&gt; element in http://xml.apache.org/xindice/Query
        namespace.
      </action>
      <action dev="VG" type="fix">
        Fixed bug with DocumentImpl.importNode when importing attribute nodes.
      </action>
      <action dev="VG" type="remove">
        Removing Eclipse UI plugin due to lack of support.
      </action>
      <action dev="VG" type="update">
        Implemented close() in Collection, IndexManager.
      </action>
      <action dev="VG" type="update">
        XML-RPC interface now passes XMLDBException codes as XML-RPC faults.
      </action>
      <action dev="VG" type="update">
        Xindice server and XML-RPC driver support basic HTTP authentication.
      </action>
      <action dev="VG" type="update">
        Xindice managed driver class renamed to DatabaseImpl and supports
        same configuration parameters as embedded driver.
        Xindice managed driver supports multiple database instances.
      </action>
      <action dev="VG" type="update">
        Xindice server and XML-RPC driver support multiple database instances.
      </action>
      <action dev="VG" type="fix">
        Xindice now uses <link href="http://www.apache.org/licenses/LICENSE-2.0.html">
        Apache License, Version 2.0</link>
      </action>
      <action dev="VG" type="fix">
        In results of the queries like "//*", declare
        http://xml.apache.org/xindice/Query namespace just once.
      </action>
      <action dev="VG" type="update">
        Lexus, XUpdate implementation, updated to the current CVS version
        (20040205).
      </action>
      <action dev="VG" type="update">
        Embedded driver has new configuration parameters (see javadoc
        for details), and supports multiple database instances (see
        system.xml for an example).
      </action>
      <action dev="VG" type="update">
        Add max-descriptors configuration attribute to all Filer implementations
        based on Paged. Default value is 16 file descriptors (same as before).
      </action>
      <action dev="VG" type="add">
        Added xindice command line tool to the jar distribution.
      </action>
      <action dev="VG" type="update">
        Xindice startup script and command line scripts are rewritten to
        support Windows 95/98/ME.
      </action>
      <action dev="VG" type="update">
        Optimize flushing of the database configuration, flush only when there
        were changes made.
      </action>
      <action dev="VG" type="update">
        Update XML:DB APIs to the 20030701 snapshot.
      </action>
      <action dev="VG" type="add">
        Added xindice command line tool to the war distribution. It is located
        in webapps/xindice/WEB-INF folder once webapp is unpacked.
      </action>
      <action dev="VG" type="update">
        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.
      </action>
      <action dev="VG" type="fix">
        Command line tool now support binary documents. New command
        add_resource implemented, which adds binary resources to the collection.
      </action>
      <action dev="VG" type="fix">
        Inline meta data and indexers now can co-exist in the same collection.
      </action>
    </release>

    <release version="1.1b3" date="December 30 2003">
      <action dev="VG" type="update">
        GetResource, GetDocument XML-RPC messages will return no result if
        resource not found.
      </action>
      <action dev="VG" type="add">
        Added binary resource support to XML-RPC driver.
      </action>
      <action dev="VG" type="update">
        Updated BinaryResourceImpl to support only byte[] content, as per
        XML:DB API.
      </action>
      <action dev="VG" type="fix">
        Fixed exception in BTreeFiler when adding value with large key
        (more than 4kb).
      </action>
      <action dev="VG" type="fix" fixes-bug="25534">
        Fixed concurrency issues in Paged, BTreeFiler, and HashFiler.
        Unit tests for concurrent writes added.
      </action>
      <action dev="VG" type="update">
        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
      </action>
      <action dev="VG" type="update">
        Upgrade libraries: Xerces to version 2.6.0, Xalan to version 2.5.2.
      </action>
      <action dev="VG" type="fix" fixes-bug="21765">
        Change URLs in debug tool to "/xindice/?/db".
      </action>
      <action dev="VG" type="fix" fixes-bug="14846">
        Drop SysSymbols when deleting collection.
      </action>
      <action dev="VG" type="add">
        Updated build scripts: all build properties extracted into build.properties
        file. You can override them in local.build.properties file.
      </action>
      <action dev="VG" type="add">
        Added new fault code, DBE_CANNOT_READ
      </action>
      <action dev="VG" type="add">
        Added new service, MetaService. It provides access to the metadata.
      </action>
      <action dev="VG" type="update">
        Enable meta data in the system.xml file
      </action>
      <action dev="VG" type="fix">
        XMLSerializable streamToXML method does not modify passed document.
        It uses provided document only as factory for nodes.
      </action>
      <action dev="VG" type="fix">
        Webapp context renamed to /xindice (all lowercase).
      </action>
      <action dev="VG" type="fix">
        When using xindice with Jetty, port is set to 8888.
        Documentation updated to reflect this.
      </action>
      <action dev="VG" type="fix" fixes-bug="17035">
        JDK 1.4 works with Xindice and it is supported.
      </action>
      <action dev="VG" type="fix">
        Collection meta data now has correct collection creation time.
      </action>
      <action dev="VG" type="update">
        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).
      </action>
      <action dev="VG" type="update">
        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.
      </action>
    </release>

    <release version="1.1b" date="November 1 2002">
      <action dev="VBO" type="add">
        Xindice has a new website.
      </action>
    </release>
  </changes>
</status>
