*********************************************************************
  XAM SDK JAVA Reference VIM ReleaseNotes MayWorkingDraft_2009
*********************************************************************
=================
Table of Contents
=================
  - Overview
  - Summary of New Functionality
  - New API Methods Supported
  - Bugs and RFEs Fixed in the Release

=========
Overview
=========
    This is the 5th code drop for the Reference VIM. This release consists of implementations
    of missing functionality, bug fixes, and updates for the errata corrections and changes 
    targeted for the 1.0.1 version of the XAM specification. 

    XAM Java Reference VIM Code Drops
        1 Basic functionality: creating and persisting XSets
        2 Export/import for XSet without streams;simple retention support
            using fixed policy
        3 Simple query jobs supported; allow client to specify storage location
        4 Bug fixes; corrections for XAM specification errata and updates targeted for
          the XAM 1.1 specification; client example program; 
          XUID conversion programs for debugging.
        5 *This Release*
          Implementation of required functional and some optional functionality to 
          demonstrate the XAM API functionality.

==============================
 Summary of New Functionality
==============================

    - Support for XSet.applyAccessPolicy() method.
    - Support for more than one username for authentication and XSet access.
    - Support for XSystem.holdXSet and XSystem.releaseXSet
    - Support for XSystem.getXSetAccessTime
    - Support for XSystem.accessXSet
    - Support for setting autodelete and shred settings on XSets
      (nb: no autodelete or shred policies, these will come later).
    - Support for simple "where" clauses of level 1 query.
    - Support for disposition policies (autodelete and shred)
    - Support for retention policies
    - Retention Policies are exported in the canonical XSet format
    - Retention and Disposition Policies are checked agains the ReferenceVIM XSystem in import.
    - Asynchronous methods are supported
    - Level 2 query is supported

==========================================
New API Methods Supported 
==========================================

   New API Methods Supported in this Release:
      VIM:      NA
      XSystem:  holdXset, releaseXSet, getXSetAccessTime, accessXSet,
      	        asyncOpenXSet, asyncCopyXSet
      XSet:     applyAccessPolicy, setAutodelete, setShred
                applyAutodeletePolicy, applyShredPolicy, getActualAutodelete, getActualShred,
                resetAccessFields, resetManagementFields, applyRetentionDurationPolicy, 
                applyRetentionEnabledPolicy, applyBaseRetentionPolicy, getActualRetentionDuration,
                getActualRetentionEnabled, asyncCommit
      XStream:  asyncWrite, asyncRead, asyncClose
      XUID:     NA
 
==========================================
Description of implemented Functionality
==========================================
   Autodelete and shred support for explicit XSet settings are supported. 
   
   Level 1 query is fully supported.
   
   Level 2 query is fully supported.
   
   The Reference VIM implements query using two important technologies. The level 1 query is 
   implemented using Java DB, which is present in Java 6. Users of Java 5 may download Derby DB 
   from the Apache project and put the Derby jar file in the classpath. 
   
   Level 2 query is implemented using the Lucene full text search engine. Users wishing to utilize 
   the textual search capabilities of the Reference VIM must download the Lucene core jar file and 
   add it to the class path. If Lucene is not in the classpath, the Reference VIM indicates that 
   level 2 functionality is not supported, by setting the appropriate property in the XSystem instance.
   This functionality has been tested with Lucene 1.9 and Lucene 2.4.1. The Reference VIM only supports
   this functionality on XStreams of type "text/plain".
   
   Reference VIM XUIDs are stronger than before and carry a reasonable guarantee of uniqueness. 
   Older XUID values, and XUIDs from other XSystem vendors are supported.
   
   IMPORTANT NOTE: This release has modified the stored file format. This new format is no longer 
   compatible with previous releases. You MUST delete any existing data in your XSet store. The 
   RefereneceVIM is not upwards compatible with old data stores. It is possible for you to modify
   existing XSets to be compatible. You must edit the XSet XML files and change the value tags for 
   calendar properties from <string> to <date>. The ReferenceVIM does not provide any functionality
   to do this.
   
   Asynchronous methods are supported. Opening and Copying XSets (XSystem methods) are supported,
   but because the ReferenceVIM XSystem has no readable XStreams, asyncOpenXStream is not implemented.
   The XSet and XStream asynchronous methods are supported.
   
   See the README.txt file for a complete description of all functionality in the Reference VIM.
   
==========================================
Bugs and RFEs Fixed in this Release
==========================================

   Ticket #'s of Bugs and RFEs Fixed in this Release:
      - #8  Expand SASL authentication. Added multiple user name capability.
      - #9  Honor access policies, one for each user, plus two extra read-only and read/write policies
      - #11 Add retention policies and associated methods.
      - #16 Support for level 2 query operators
      - #58 In import, retention values are to be checked against the system built in policies.
      - #109 Support hold/release methods, accessXSet, getXSetAccessTime
      - #104 Support for level 1 query
      - #106 Support for auto delete/shred via explicit settings and policy settings.
      - #107, #108 Support for asynchronous methods.

