==================================================== BASEX CHANGELOG ===

 Welcome to the changelog. This file contains all code changes since
 BaseX 6.5:

VERSION 7.7.2 (October 7, 2013) ----------------------------------------

 XQUERY
 - CSV Module and serialization added
 - JSON serializer updated (more to follow)
 - update checks in modify clause fixed
 - parsing of new map syntax fixed (ignoring spaces)
 - tail call handling in built-in higher order functions fixed

 API
 - Russian translation added (thanks to Oleksandr Shpak, Max Shamaev)
 - command-line arguments starting with '<' are interpreted as XQuery

 INDEXING
 - bug fixed in updatable index structure

VERSION 7.7.1 (September 16, 2013) -------------------------------------

 XQUERY
 - new map syntax: { 'key' : 'value' }
 - tail call optimization for dynamic functions
 - optimize fn:subsequence() calls and sequence casts
 - db:optimize(): original options are preserved

 WEBDAV
 - return non-breakable spaces as &#xA0;

 CORE
 - avoid OutOfMemory exception when building large databases

VERSION 7.7 (August 7, 2013) -------------------------------------------

 XQUERY
 - Our XQuery 3.0 support is now complete!
   http://docs.basex.org/wiki/XQuery_3.0
 - the Unit Module allows standardized testing of XQuery applications
   http://docs.basex.org/wiki/Unit_Module
 - the Streaming Module speeds up operations on large files
   http://docs.basex.org/wiki/Streaming_Module
 - the Inspection Module provides reflection and documentation features
   http://docs.basex.org/wiki/Inspection_Module
 - we have added support for XQuery collations
   http://docs.basex.org/wiki/Full-Text#Collations
 - we have extended the Database, Archive, File and other Modules
   http://docs.basex.org/wiki/Module_Library
 
 COMMANDS
 - database names have got more flexible
   http://docs.basex.org/wiki/Commands#Valid_Names
 - we have new options for simplifying the creation of large databases
   http://docs.basex.org/wiki/Options
 
 WEB/HTTP SERVICES:
 - WebDAV has been enriched with locking features (sponsored feature!)
   http://docs.basex.org/wiki/WebDAV#Locking
 - RESTXQ has been improved and extended:
   http://docs.basex.org/wiki/RESTXQ

VERSION 7.6 (February 5, 2013) -----------------------------------------

 DATABASE LOCKING:
 - updates on different databases can now be executed in parallel and
   won't lock your read-only queries anymore:
   http://docs.basex.org/wiki/Transaction_Management

 XQUERY
 - when errors are raised, the full stack trace is now returned
 - the EXPath Geo Module, Fetch Module and HTML Module have been added:
   http://docs.basex.org/wiki/Module_Library
 - the Validation, XSLT, Database and Profiling Module have been updated

 GUI
 - error messages are now clickable and linked with the text editor
 - trace/profiling output is redirected to the info view in realtime

VERSION 7.5 (December 21, 2012) ----------------------------------------

  XQUERY UPDATE
  - bulk updates are now much faster than before
  - insert and replace operations take much less memory
  - databases can now be created via XQuery and db:create()

  GUI TEXT EDITOR
  - a fast and flexible search/replace panel has been added
  - error highlighting has been extended to XML files
  - the editor was improved for editing arbitrary text files

  XQUERY 3.0
  - the code has been aligned with latest changes in the specs
  - HTML5 support has been updated

  WEB APPLICATIONS
  - new modules have been added: Request, Session, Sessions
  - logging has been revised and extended to HTTP requests
  - SSL support added, switched to Jetty 8
  - all operation modes have been unified and simplified
  - RESTXQ elements added to simplify forwarding and redirects

  CORE FEATURES
  - improved stability of concurrent read/write operations
  - the INSPECT command performs database sanity checks
  - EXECUTE triggers the execution of command scripts

VERSION 7.3 (June 18, 2012) --------------------------------------------

  - Many new internal XQuery Modules have been added, and existing
    ones have been revised to ensure long-term stability of your future
    XQuery applications: http://docs.basex.org/wiki/Module_Library
  - A new powerful Command API is provided to specify BaseX commands
    and scripts as XML: http://docs.basex.org/wiki/Commands#Basics
  - The full-text fuzzy index was extended to also support wildcard
    queries: http://docs.basex.org/wiki/Full-Text
  - The XQuery 3.0 simple map operator gives you a compact syntax to
    process items of sequences: http://docs.basex.org/wiki/XQuery_3.0
  - BaseX as Web Application can now start its own server instance:
    http://docs.basex.org/wiki/Web_Application
  - All command-line options will now be executed in the given order:
    http://docs.basex.org/wiki/Startup_Options
  - Charles Foster's latest XQJ Driver supports XQuery 3.0 and the
    Update and Full Text extensions: http://xqj.net/basex/

VERSION 7.2.1 (April 27, 2012) -----------------------------------------

  - Our value indexes now support string-based range queries:
    http://docs.basex.org/wiki/Indexes#Value_Indexes
  - Our new XQJ API is based on Charles Foster's implementation.
    It fully utilizes the client/server architecture:
    http://xqj.net/basex
  - Import of XQuery modules has been simplified:
    http://docs.basex.org/wiki/Repository
  - Better Java code integration:
    http://docs.basex.org/wiki/Java_Bindings
  - Full support for the XQuery 3.0 Regular Expressions syntax:
    http://www.w3.org/TR/xpath-functions-30/#regex-syntax
  - Updating functions can now return values:
    http://docs.basex.org/wiki/Database_Module#db:output
  - Unified handling of document and database URIs:
    http://docs.basex.org/wiki/Databases#Access_Resources
  - Pinning of opened database replaced by filesystem locking:
    http://docs.basex.org/wiki/Transaction_Management#Locking
  - REST, RESTXQ, WebDav: concurrency issues fixed

VERSION 7.2 (March 24, 2012) -------------------------------------------

  - support for the new RESTXQ API for building XQuery web services
  - improved support for running BaseX as web application
  - XQuery: higher order functions added to speed up Top-K queries
  - proxy server settings added
  - advanced TagSoup options added for importing HTML files
  - XQuery: faster traversal of full-text index entries: ft:tokens()
  - Command-line: embedded readline and history support via JLine
  - XQuery 3.0: annotation added, updated EQName syntax (Q{uri}name)
  - opened databases are now pinned OS-wide to reduce write conflicts
  - HTML5 serialization of query results
  - a printable version of our Wiki documentation

VERSION 7.1.1 (February 19, 2012) --------------------------------------

  GUI:
  - new "Package" dialog: to list, install and delete XQuery Packages
  - "New/Add" dialog: "RAW" input format allows import of raw files;
    automatic detection of input formats, increased usability
  - "Export" dialog enhanced to support other methods like JSON,
    and various serialization parameters

  Command-Line:
  - new option -L: add trailing newline after query result
  - new option -C: execute commands from batch script

  REST:
  - new "option" parameter: set options before executing request

  Full-Text:
  - Indonesian Stemmer (thanks Andria Arisal!)

  IO:
  - faster read/write access to byte arrays

VERSION 7.1 (February 8, 2012) -----------------------------------------

  GUI
  - improved document management: hierarchical view of db resources
  - easier index creation/removal and database optimization
  - JSON/JsonML parser added
  - editor: updated and reopened files are reverted from disk

  REST
  - automatic XML conversion of popular content types
    (JSON/JsonML, CSV, HTML)

  XQUERY
  - new index module for directly accessing database index structures
  - new repository module to manage EXPath packages via XQuery
  - db:list-details() returns information on the database resources
  - db:content-type() retrieves content-type of a specific resource
  - ft:tokens() returns full-text tokens stored in the index
  - ft:tokenize() tokenizes a given input string
  - util:path() returns the path to the executed query file
  - util:time() prints the time needed to evaluate a given expression
  - util:mem() prints allocated memory for evaluating an expression
  - expanded QNames, computed namespace constructors

  COMMAND-LINE
  - multiple query files and -c/-i/-q flags can now be specified

  INDEXING
  - ID/Pre mapping, incremental indexing of value index structures
  - document index fix: correct replacement of existing documents
  - document index: faster updates

  OPTIONS
  - ADDRAW: add raw files if not filtered by CREATEFILTER
  - MAXLEN: max. length of strings to be added to the index structures
  - MAXCATS: max. number of distinct values stored in statistics
  - UPDINDEX: turn on incremental index updates for value indexes
  - improved BINDINGS option

  CLIENT/SERVER
  - improved log output if query iterator is used
  - new ActionScript API (thanks to Manfred Knobloch!)

  SERIALIZATION
  - "newline" parameter specifies the type of newline to be used

  COMMANDS
  - KILL command accepts IP:port combination to specify target

  TRANSLATIONS
  - Bahasa Indonesian: thanks to Andria Arisal!
  - Mongolian: thanks to Tuguldur Jamiyansharav!

VERSION 7.0.2 (November 11, 2011) --------------------------------------

  FULL TEXT
  - Stemming support for Japanese text corpora
    (thanks to Toshio HIRAI!)

  STARTUP
  - Updated start scripts (thanks to Ralf Jung!)
  - System property "org.basex.path" added to specify
    project's home directory (thanks to malamut2!)

  XQUERY
  - Numerous minor XQuery 3.0 enhancements and fixes
  - Fix for db:optimize() calls (thanks to Martin Hillert!)

  STORAGE
  - Fix to retain newly introduced namespaces
    (thanks to Laurent Chevalier!)

  USERS
  - Default privileges for new users set to "none"
    (thanks to Pascal Heus!)

  REST
  - query base URI for evaluated queries is now $HTTPPATH
    (thanks to Florent Georges!)

VERSION 7.0.1 (October 23, 2011) ---------------------------------------

  DISTRIBUTIONS
  - Windows installer was updated to support latest features
  - ZIP file was updated (initial config & directories added)
  - Short directory names are chosen if config file resides in app.dir.
  - Start scripts have been improved

  XQUERY
  - much faster execution of count() when applied to opened databases

  SERVER
  - Flag -c connects to an existing database server
  - Flag -s specifies a port for stopping the HTTP server (Jetty)
  - Flag -S starts the HTTP server as a service
  - running write operations will be completed before server is stopped

  API
  - Ruby, Python, PHP, Java: clients updated

VERSION 7.0 (October 14, 2010) TEI EDITION -----------------------------

  API
  - Native and tightly integrated REST implementation replaces JAXRX
  - WebDAV provides a file system like access to BaseX databases

  XQUERY
  - Parsing and serializing JSON documents
  - SQL module builds a JDBC bridge to access relational databases
  - EXPath Cryptographic Module for encryption and XML Signatures
  - Full text engine tokenizes Japanese texts (thx to Toshio Hirai!)
  - db:retrieve() and db:store() handle raw data
  - util:uuid() to create random universally unique identifier
  - db:content-type() retrieves the content type of a resource
  - db:exists() checks if the specified database or resource exists
  - db:is-raw(), db:is-xml() check existence and type of a resource
  - db:list(), db:open() uses two separate arguments to specify
    database and resource path
  - further modifications: db:add(),

  SERVER
  - BaseX HTTP Server activates the REST and WebDAV services
  - ITER command returns all results in one go and the client
    handles the iterative execution

  COMMANDS
  - FLUSH command to write all database buffers to disk
  - STORE command to store raw data in a database
  - RETRIEVE command to get raw data from the database
  - modified ADD command

  OPTIONS
  - SERVERHOST: to specify a server
  - KEEPALIVE: optional timeout to close inactive client sessions
  - AUTOFLUSH database buffers
  - QUERYPATH: path to executed query

VERSION 6.7.1 (July 28, 2011) BALISAGE EDITION -------------------------

  XQuery:
  - New database functions for adding, deleting, renaming
    and replacing documents, and optimizing databases:
    http://docs.basex.org/wiki/Database_Functions
  - XSLT transformations via Java or Saxon:
    http://docs.basex.org/wiki/XSLT_Functions
  - All XQuery 3.0 functions are now supported:
    http://docs.basex.org/wiki/XQuery_3.0
  - Tail-call optimizations to speed up recursive functions

  Storage:
  - Use ADDARCHIVES to parse files within archives
  - Use SKIPCORRUPT to skip non-well-formed files when
    creating a database: http://docs.basex.org/wiki/Options
  - Max. level depth limit (256) removed
  - The document index is now incrementally updated

  GUI:
  - "Manage Database" dialog now supports operations on
    multiple databases and the command-line glob syntax:
    http://docs.basex.org/wiki/Commands#Glob_Syntax
  - Drag and drop operations introduced for opening new files
    and copying file paths

  Client/Server:
  - Delay clients that repeatedly fail to login
  - All remaining plain-text password operations now use
    MD5 to send and log passwords

VERSION 6.7 (June 30, 2011) --------------------------------------------

  Main Features:
  [ADD] Native support for the EXPath Packaging system:
        http://docs.basex.org/wiki/Packaging
  [ADD] Client/server event notification:
        http://docs.basex.org/wiki/Events
  [ADD] Persistent document index added to speed up
        access to large collections

  XQuery:
  [ADD] New database and full-text functions:
        http://docs.basex.org/wiki/Database_Functions
        http://docs.basex.org/wiki/Full-Text_Functions
  [ADD] Event function added to fire events
  [MOD] Index optimizations, better cost estimations

  Commands:
  [ADD] Glob syntax introduced to database commands:
        http://docs.basex.org/wiki/Commands
  [ADD] New commands added: REPLACE, RENAME,
        REPO DELETE/INSTALL/LIST, CREATE/DROP EVENT
  [MOD] BACKUP optimized, renamed to CREATE BACKUP

VERSION 6.6.2 (May 13, 2011) LINUXTAG RELEASE --------------------------

  API:
  [ADD] JAX-RX API now supports basic user authentication:
        http://docs.basex.org/wiki/JAX-RX_API
  [ADD] The COPY creates identical database copies:
        http://docs.basex.org/wiki/Commands#COPY
  [ADD] The OPTIMIZE ALL command minimizes all database structures:
        http://docs.basex.org/wiki/Commands#OPTIMIZE

  XQuery:
  [ADD] map expressions and functions added:
        http://docs.basex.org/wiki/Map_Functions
  [MOD] File module aligned with latest EXPath specification:
        http://docs.basex.org/wiki/File_Functions
  [MOD] Speedup of full-text queries with keyword lists.
        Example: $x contains text { 'a', 'b', 'c', ...}
  [MOD] XQuery Update optimizations for replacing nodes;
        tree-aware updates.
  [MOD] XQuery optimizations to avoid materialization of sequences.

  GUI:
  [ADD] Multiple editor tabs added
  [ADD] Database management: copy databases

  Core:
  [ADD] Internal XML parser: HTML entities added
  [FIX] Glob syntax: support for multiple file suffixes

VERSION 6.6.1 (March 30, 2011) XML PRAGUE RELEASE ----------------------

  XQuery:
  [ADD] index rewritings added for .../text()[. = ..] syntax
  [ADD] optimizations of mixed axis path expressions, e.g.: //x/name()
  [MOD] index rewritings on collections fixed and generalized
  [MOD] faster evaluation of filters with pos. predicates, e.g.: $x[5]
  [FIX] fixed relocation of let clauses in GFLWOR expressions
  [FIX] trace function returned wrong original results
  [FIX] variables in catch clauses were discarded
  [FIX] HOF optimizations and fixes

  GUI:
  [FIX] language option (for Japanese, German, etc. interface) fixed

VERSION 6.6 (March 23, 2011) -------------------------------------------

  [ADD] XQuery 3.0: Full support of Higher Order Functions
        (dynamic function invocation, inlined functions, etc.)
  [ADD] XQuery: Full support of the EXPath ZIP and HTTP modules
  [MOD] XQuery Update: numerous speedups, memory consumption reduced
  [ADD] Commands: COPY command added to clone existing databases
  [ADD] CSV/Test importers revised, ENCODING option added to CSV/Text
        parsers
  [ADD] XQuery utility functions added:
        util:format(), util:crc32(), util:md5(), util:sha1(), etc.
  [ADD] XQuery 3.0: context item and decimal-format declarations
  [FIX] Storage and update features revised, bugs fixed

VERSION 6.5 (November 17, 2010) ----------------------------------------

  [ADD] Commands: LIST extended by optional database [path] argument
  [ADD] JAX-RX: full database path is now used to list documents within
        a database. Use "query" parameter to show document contents
  [ADD] JAX-RX: bind external variables to query and run parameter
  [ADD] Windows Installer: creates startmenu entries,
        sets file associations and path environment entries
  [ADD] GUI/Create: support different input formats: XML, HTML, Text, ..
  [MOD] Commands: Allow hierarchical paths in OPEN command
  [MOD] APIs: UTF-8 encoding added to Java binding
  [FIX] Storage: text decompression synchronized
  [FIX] XQuery: context choice in filter predicates
  [MOD] JavaDoc: package.html files added and updated

========================================================================
