1.1 (2010-07-29)
----------------

-New features
o Auto configuration by looking at available RAM and heap.
o New event framework, see http://wiki.neo4j.org/content/Event_framework
o JMX enabled kernel.
o New traversal framework, see http://wiki.neo4j.org/content/Traversal_Framework
o Block size for strings and arrays are now configurable when creating a new db.
o Read only operations can now execute without a transaction.

-API
o Added a method to get the GraphDatabaseService on Node and Relationship.
o Moved the commons component utilities into kernel component, 
  see helpers package.

-Bug fixes
o Fixed issues with logical log and active log that could cause recovery 
  to throw an exception.
o Fixed buffer overflow for large string/array properties.
o Fixed bug that could cause leak of NodeImpl.


1.0 (2010-02-16)
----------------

-API 
o Updated javadoc.

-Bug fixes
o Fixed leak of non committed property changes to other transactions.
o Fixed cache duplication bug of relationships.
o Fixed problem that could cause other exception to be thrown than 
  NotFoundException on getNodeById/RelationshipById.
o Fixed problem with recovery when LuceneFulltextIndex entries existed 
  in global transaction log.
o BatchInserter now throws exception when trying to create a relationship
  with same start and end node.
o Fixed problem with broken entries in logical log that could cause recovery 
  to throw an exception.

1.0-rc (2010-01-10)
------------------

o API: moved API to org.neo4j.grapdb and implementation to 
  org.neo4j.kernel.impl

1.0-b11 (2009-12-27)
--------------------

- Minor Enhancements, changes and tweaks
o Removed compile-time dependency on shell component.
o Batch inserter now has a NeoService version.
o Minor tweak of concurrency characteristics of array map implementation.

-Bug fixes
o Fixed problem with half entries in global tx log (due to full disk).
o Fixed some bugs in batch inserter.

1.0-b10 (2009-11-02)
--------------------

-Enhancements, new features and major changes
o Core: Read-only mode. It is now possible to start multiple read only 
  NeoServices to the same store (using EmbeddedReadOnlyNeo).
o Core:  Improved depth first traversal speed on nodes with many 
  relationships by loading relationships on demand. This will also
  reduce the stress on GC when traversing over a node with many
  relationships since much fewer objects will be created.

-Minor enhancements, changes and tweaks
o Core: Faster rebuild of id generators after a crash
o Core: Exception cleanup removing bad code either catching Throwable or 
  throwing RuntimeException.
o Core: Fixed so a read only NeoService can apply a logical log from a 
  backup.

-Bug Fixes
o Fixed a bug when using plain buffers instead of memory mapped ones that 
  could case recovery to fail due to buffers not being flushed properly.


1.0-b9 (2009-08-14)
-------------------

-Enhancements
o Core: New 'batch insert' mode, see http://wiki.neo4j.org/content/Batch_Insert,
  typically used for initial import of bulk data.
o Core: Added a "Windows mode" that uses plain Java buffers instead of mmap().
o Core: Expanded id space for all primitives by adding one more bit.
o Core: Read only transactions have been optimized to have much less overhead.
o Core: New cache implementation based on soft references, which employs faster
  gets and is more concurrent and memory efficient.
o Core: OSGi enabled [thanks Andreas Kollegger]

-Minor enhancements, changes and tweaks
o Shell: Added a traverser command for creating custom traversers.
o Shell: Added support of setting and listing array types.
o Shell: "cd" command can now position itself on a relationship.
o Shell: Output of "man" command has been improved.

-Bug fixes
o Core: Fixed all known batch inserter bugs.
o Core: Fixed a bug that could cause multiple remove of same property to fail
  (should just return null if it doesn't exist).


1.0-b8 (2009-05-03)
-------------------

-Enhancements, new features and major changes
o API: Added NeoService.getAllNodes for iterating across the entire node space
  and getRelationshipTypes() to get all reltypes in the underlying store.
o Core: Added logical log rotation and online-backup core features.
o Core: Reduced memory footprint and object allocation.
o Core: Moved all constraint checks to nioneo resulting in performance increase.
o Core: Improved traversal speed reworking set oriented caches to use arrays.

-Smaller enhancements, changes and tweaks
o API: Added a convenience implementation ofRelationshipType for dynamically
  created and named relationship types: DynamicRelationshipType.
o API: Deprecated PropertyContainer.getPropertyValues() to be removed in later
  releases.
o Core: Removed event manager dependency since it needs a rewrite (event
  generation still to be completely specified).
o Core: Transaction events have been removed, need proper specification.
o Core: Removed read lock on loading of non-cached node/relationship,
  replaced with reentrant lock stripe.
o Core: Persistence row windows in nioneo now only load data if acquired for 
  read operation.
o Core: Upgraded to JTA 1.1
o Core: Improved some error messages.
o Core: EmbeddedNeo.toString now reports object id and neo store path.
o Core: Cleaned up logging messages during recovery.
o Core: Increased default block size for string and array stores to better
  fit avg. data sets out there.

-Bug fixes
o Core: Fixed missing close on TM's active log file.
o Core: A bug with copy on write "diff" maps that could cause wrong cached value 
  to be read (for both properties and relationships) has been fixed.
o Core: Fixed an issue with non committed properties/relationships
  modifications leaking to other transactions (in cache layer during cache 
  resize).
o Core: Fixed bug in property index manager that could cause created index
  not to be published at the right time.
o Core: Fixed bug that allowed for relationship/property loads on deleted
  node (in same tx).
o Core: Fixed some bugs caused by use of JTA tx synchronization hooks (we can't 
  use them when ordering is required).
o Core: Fixed bug with relationship type store not handling "holes" correctly.
o Core: Fixed problem with multiple calls to close() on XaDataSources
o Core: Removed use IOException( Throwable ) since it is not in Java 1.5
o Core: Parsing of memory mapped settings can now handle G (1024*1024*1024).
o Core: Fixed silent catch of NotFoundException in traverser implementation.

-Notes
o Testing on Windows Vista platform has revealed a strange performance
  degradation for b8 that we've yet to find the cause of. The problem becomes
  more visible when running many concurrent transactions/threads hammering
  requests to Neo (10x performance decrease has been observed on same hardware).
  For production systems we recommend using GNU Linux or Solaris OS with Sun's
  1.6 JVM for best performance.


1.0-b7 (2008-09-29)
------------------

o API: Removed a number of deprecated methods (primarily for relationship type
  management) from EmbeddedNeo as per warning in the previous release.
o API: Transaction is now an interface.
o API: TraversalPosition now has an isStartNode() method.
o API: NotFound and NotInTransaction runtime exceptions have been moved from
  internal impl package to the api package.
o API: getRelationshipById is now exposed in NeoService.
o API: A common base interface for Node and Relationship has been added that
  contains the set/get/remove property operations.
o Core: Made it easy to embed Neo4j in a Spring application. Spring can also be 
  configured to use Neo4j's transaction manager.
o Core: All known bugs have been fixed.
o Core: Removed singletons and made everything IoC.
o Core: Lots of minor optimization and improvements above native store
  layer (nioneo).
o Core: Cleanup of code (removed non used code) and improved exception handling.
o Core: Improved read performance and parallelism by implementing MVCC-like 
  features. No locks are now taken during read-only operations, instead
  concurrent operations are working against snapshot versions. Rather than full
  versioning, for higher performance diffs are kept and applied to the right
  transactions (those that have modified data). Result is that read operations
  will execute taking no locks, make full use of what has already been cached
  and can execute concurrently with a transaction that modify the same data.
  Write operations will take locks and use diffs instead of full copy on write
  (this proved to be faster and scale better than actually doing a in memory
  copy of the required data).


1.0-b6 (2007-11-19)
-------------------

o API: Added a NeoService interface that EmbededNeo implements. Left a number
  of methods in EmbeddedNeo for backwards compatibility. They will be removed
  the next release.
o API: Changed relationship types to be dynamic, i.e. created in underlying
  store when they are first used. This means that clients won't have to
  register them with EmbeddedNeo at startup.
o API: The semantics of relationship type equivalence has changed from being
  based strictly on object identity to being based on name() equality.
o API: A a new method isType() has been added to Relatinship. Due to the less
  intuitive ways to check reltype equivalence, it's the prefered way to check
  whether a relationship is of a particular type.
o API: Added convenience methods hasRelationship(...) to Node.
o API: Added a convenience method notStartNode() to TraversalPositions to
  clean up the code (less cumbersome null-checks for edge cases) for evaluator
  implementations.
o Shell: Now detects and lists all available commands dynamically.
o Shell: Integration with Groovy for easy evaluation of Groovy scripts.
o Shell: Now auto-reconnects to server.
o Shell: Polish like cleaner output, filters to ls and bash-style prompt with
  variable expansion.
o Core: Lots of performance tweaks and improvements.
o Core: The internal version of the datastores have been changed. This release
  will transparently upgrade old versions of the store files so there's nothing
  manual involved. But after that, previous releases of Neo won't be able to
  read the store files.
o Core: Testing and robustification on Windows.
o Core: Now fully supports array properties for all primitives and Strings.
