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.