Spring Data Neo4j Changelog =========================== Changes in version 2.3.5.RELEASE (2013-03-10) --------------------------------------------- * No changes. Changes in version 3.0.0.RELEASE (2014-02-24) --------------------------------------------- * DATAGRAPH-388 - Add Label based indexes * DATAGRAPH-428 - Release 3.0 GA Changes in version 2.3.4.RELEASE (2013-02-17) --------------------------------------------- * No changes. Changes in version 3.0.0.RC1 (2014-01-29) ----------------------------------------- * DATAGRAPH-423 - Upgrade to Neo4j 2.0 GA (read-tx, removal reference node, fixing tests, update dependencies) * DATAGRAPH-414 - Fixed Bundlor issue * DATAGRAPH-413 - Fixed ConcurrentModificationException with Advanced Mode and implicit tx * DATAGRAPH-424 - Release Spring Data Neo4j 3.0 RC1 Changes in version 2.3.3.RELEASE (2013-12-11) --------------------------------------------- * DATAGRAPH-407 - Bug when deleting nodes on an auto_index index * DATAGRAPH-409 - Improved default transaction configuration for repositories. * DATAGRAPH-415 - Release 2.3.3 Changes in version 3.0.0.M1 (2013-11-21) ---------------------------------------- * DATAGRAPH-311 QueryResultProxy not Serializable * DATAGRAPH-349 Maven Build Plugin is missing in spring-data-neo4j-rest * DATAGRAPH-393 Use supplied RestGraphDatabase as GraphDatabase in MappingInfrastructure * DATAGRAPH-402 Use transactions for all operations * DATAGRAPH-407 Bug when deleting nodes on an auto_index index * DATAGRAPH-409 Improve default transaction configuration for repositories * DATAGRAPH-365 Fire an event before and after entity deletion * DATAGRAPH-399 Add support for nested repositories * DATAGRAPH-340 CDI support for Neo4j repositories * DATAGRAPH-387 Add Label based TypeRepresentation Strategy * DATAGRAPH-392 Add support for custom findAll Queries. * DATAGRAPH-384 Upgrade to Neo4j 2.0.0-M06 * DATAGRAPH-406 Remove Gremlin Dependency * DATAGRAPH-408 Upgrade to latest Spring Data Build parent to pull in new Spring dependencies * DATAGRAPH-411 Release 3.0.M1 Changes in version 2.3.2.RELEASE (2013-10-25) ---------------------------------------- * DATAGRAPH-393 Use supplied RestGraphDatabase as GraphDatabase in MappingInfrastructure * DATAGRAPH-397 Release 2.3.2 Changes in version 2.3.1.GA (2013-09-09) ---------------------------------------- * DATAGRAPH-386 Upgrade to Spring Data Commons 1.6.1 Changes in version 2.3.0.GA (2013-09-09) ---------------------------------------- * DATAGRAPH-377 Upgrade to Neo4 1.9.3 * DATAGRAPH-298 Better handling of invalid target types for repositories (e.g. abstract types, interfaces) * DATAGARPH-365 Before- and After-Delete events * DATAGRAPH-259 Handle empty query results for ResultConverter * DATAGRAPH-311 Serializable ManagedFieldAccessorSet and DynamicProperties * DATAGRAPH-311 @QueryResult annotated, serializable POJOS as query results Changes in version 2.3.0.RC1 (2013-08-05) ---------------------------------------- * DATAGRAPH-375 - Upgrade to SD-Commons 1.6.0.RC1 * made querydsl optional, fix for deleting dynamic properties * Add type safety mechanism for repositories / finder-methods * DATAGRAPH-345 - Support for countBy projections for derived queries * DATAGRAPH-368 - Fix for handling transient properties on detached entities * DATAGRAPH-352, DATAGRAPH-330 - Fixed issues relating to Sorting and Paging for repository.findAll Changes in version 2.2.2.RELEASE (2013-07-16) --------------------------------------------- * DATAGRAPH-330 - Sort and Order By for repository.findAll * DATAGRAPH-325 - Cannot return a set from a query with Neo4j Changes in version 2.3.0.M1 (2013-06-09) ---------------------------------------- * DATAGRAPH-355 - Update to Neo4j 1.9, SD-Commons 1.6.M1, QueryDSL 3.2.0 * DATAGRAPH-354 - Fixed behaviour with neo4j:config base-package * DATAGRAPH-346 - Deprecated ChainedTransactionManager * DATAGRAPH-356 - Handle transient fields consistently with Spring Data & SD Rest * DATAGRAPH-325 - Cannot return a set from a query with Neo4j * Infrastructure updates for Neo4jPersistentProperty, Neo4jPersistentEntity and Neo4jMappingContext Changes in version 2.2.1.RELEASE (2013-04-18) --------------------------------------------- * DATAGRAPH-191 - ChainedTransactionManager does not return connection to DataSource on failure * DATAGRAPH-348 - Release 2.2.1 Changes in version 2.2.0.RELEASE (2013-02-11) --------------------------------------------- * DATAGRAPH-332 - Updated project to new build system and new dependencies * DATAGRAPH-329 - Updated dependencies to Neo4j 1.8.1 (but also works with 1.9.x) * DATAGRAPH-328 - Added Auditing Support, SD-commons 1.5.x * DATAGRAPH-323 - Support for count-queries for page results * DATAGRAPH-318 - NodeEntity fields are not persisted in CrossStore setup * DATAGRAPH-320 - Performance improvement regarding reference annotations in Neo4jMappingContext * Update examples and tests for new cypher syntax rules (order by) Changes in version 2.1.RELEASE (2012-10-10) ------------------------------------------- * DATAGRAPH-303 - Upgrade to Neo4j 1.8, Spring Data Commons 1.4.RELEASE * Documentation updates Changes in version 2.1.RC4 (2012-09-19) --------------------------------------- * DATAGRAPH-296 - Updates to stable versions of Neo4j 1.8.RC1, spatial, cypher-dsl and java-rest-binding, adopted to API changes * DATAGRAPH-285 - Adding application events for save and delete * DATAGRAPH-263, DATAGRAPH-212, DATAGRAPH-272, DATAGRAPH-147 - Refactored derived query creation, added support for multiple indexed fields and all query keywords * DATAGRAPH-294 - Derived finder methods for numerically indexed values * DATAGRAPH-293 - find objects by graph-id * DATAGRAPH-275 - non graceful fallback on empty graph for TypeRepresentationStrategyFactory * DATAGRAPH-246 - allowing entity as parameter to derived finders * DATAGRAPH-281 - Added support for Enums and Dates as parameters to Cypher Changes in version 2.1.RC3 (2012-08-24) --------------------------------------- * Updates to stable versions of Neo4j 1.8.M07, spatial, cypher-dsl and java-rest-binding, adopted to API changes * DATAGRAPH-276 - Fixed issue to make @RelatedToVia support Iterable and not just Set * DATAGRAPH-250 - Introduced 'enforceTargetType' flag to help discriminate clashing relationship types based on end node type * DATAGRAPH-274 - Fixed that @RelatedToVia on single entities fetched eagerly by default, also check of correct annotation for target entity * DATAGRAPH-266 - Added support for @EnableNeo4jRepositories on JavaConfig, Fixed reference to repositories namespace in XSD. * Documentation updates * DATAGRAPH-264 - Handle Exceptions for nested internal transactions with an explicit tx.failure() * DATAGRAPH-286 - Conversions to arbitrary target property types Changes in version 2.1.RC2 (2012-06-25) -------------------------------------- * DATAGRAPH-255 - Created a transaction manager factory bean to allow backwards-compatibility. We now support Neo 1.7-1.8 * DATAGRAPH-251 - Fixed issue with annotation-provided relationship type (@RelatedToVia), firmed up relationship type precedence * DATAGRAPH-205 - Improved error message Changes in version 2.1.RC1 (2012-05-04) -------------------------------------- * DATAGRAPH-228 - Update to Neo4j 1.7, SD-Commons 1.3.0.RC2, Neo4j-Spatial 0.8, Neo4j-Java-Rest-Binding 1.7 * DATAGRAPH-206 - Neo4jTemplate can now also be instantiated directly, MappingInfrastructureFactoryBean takes care of providing dependencies * DATAGRAPH-219, DATAGRAPH-210 - Unique relationships with annotation and via template, and documentation for unique entities * DATAGRAPH-221 - Indexed needed by the persistent entities are now created upfront by an MappingContextListener to satisfy cypher checks * DATAGRAPH-214 - Numeric fields can be indexed non-numerically * DATAGRAPH-181 - Fix for creating unique entities with numeric unique fields * DATAGRAPH-213 - Support inheritance (querying) of relationship-entities Changes in version 2.1.M1 (2012-03-02) -------------------------------------- thanks to Mark Spitzler, Oliver Gierke, Rajaram Ganeshan, Laurent Pireyn * DATAGRAPH-181 - Added support for unique entities with template.getOrCreateNode and @Indexed(unique=true) * DATAGRAPH-198 - Added support for custom target type, e.g. storing a Date converted to a Long @GraphProperty(propertyType=Long.class) * DATAGRAPH-102 - Fixed type representation in graph with support for @TypeAlias to allow shorter type-identifiers in the graph * DATAGRAPH-204 - Pom.xml cleanup (repositories) and dependency to SFW is now range from 3.0.7.RELEASE - 3.2 * DATAGRAPH-185 - Cypher queries for single fields return null on no results * DATAGRAPH-182 - Allow @RelatedTo on Single RelationshipEntity fields + internal refactorings * DATAGRAPH-202 - Provide a getRelationshipsBetween() method in Neo4jTemplate * GH-#34 - Fix for using Neo4j High-Availability * DATAGRAPH-176 - Added debug log output for cypher and gremlin query as well as derived query methods * DATAGRAPH-186 - Default value for readonly relationship collections * DATAGRAPH-173 - Fixed verify method for interfaces, added interface support for type-representation strategies * DATAGRAPH-169 - Backquoting all variable parts of derived finder queries to accommodate for non-identifier names. * DATAGRAPH-164 - Added methods to determine stored java type to neo4j-template and crud-repository * DATAGRAPH-166 - Fixed multiple sort parameters * Documentation updates Changes in version 2.0.1.RELEASE (2012-02-09) --------------------------------------------- * Updated dependencies to SpringFramework 3.0.7, Spring-Data-Commons 1.2.1, Neo4j, Cypher-DSL, Neo4j-Spatial 1.6 * Updated repository configuration * DATAGRAPH-186 - default value for readonly relationship collections Changes in version 2.0.0.RELEASE (2011-12-23) --------------------------------------------- * Updated Neo4j, Cypher-DSL to 1.6.M02, SpringFramework to 3.0.7.RELEASE, Spring-Data-Commons to 1.2.0.RELEASE * updated documentation and examples, added chapter on how to deploy an SDN backed sample app to Heroku * allow customization for index names, e.g. for multi-tenancy * object typed fields are not converted if the actual instance can be stored by Neo4j * cleanup of maven dependencies on neo4j, logging frameworks, * allow injection of custom ConversionServices * template.fetch() reloads entities and collections * support for default field values on load via the @GraphProperty annotation Changes in version 2.0.0.RC1 (2011-11-11) ----------------------------------------- * Updated Neo4j to 1.5 AspectJ to 1.6.12 * added support for cypher-dsl (1.5.M1) (which also comes with query-dsl support) in CypherDslRepository * updated cypher syntax changes for 1.5 * extended result-dsl to allow changes of container classes * added examples for hello-worlds and cypher for both mapping options * @RelationshipEntity has an fallback relationship-type attribute * support for (mutable) @RelatedToVia collections (like Set) * Relationship-Entities can now be directly instantiated in both mapping modes and saved or added to @RelatedToVia collections * introduced the concept of a MappingPolicy which is taken into account with the POJO mapping (currently @Fetch) * simplified cineasts using the new annotated and derived queries on repositories, updated docs for that * added repository for access of relationship-related methods * support for arrays, iterables, collections, sets and lists of primitive and convertible values as node/rel properties * List, Set, Collection, Page as return types on derived and annotated query methods * added eclipse-maven-plugins to poms with aspectj-natures * Changes in version 2.0.0.M1 (2011-10-21) ---------------------------------------- * updated dependencies to SpringFrameWork 3.0.6, Neo4j 1.5.M02, neo4j-java-rest-binding 1.5.M03 * optional dependency to neo4j-spatial * moved to new github repository * included examples and cineasts in project * externalized java-rest-wrapper to a separate library * separate submodules spring-data-neo4j, spring-data-neo4j-aspects, spring-data-neo4j-cross-store, spring-data-neo4j-rest * spring-data-neo4j-rest does no longer depend on spring-data-neo4j-aspects (except for testing) * added Neo4jMappingContext to take care of mapping meta information * added cypher parameter support * added derived queries from finder method names to repositories * added new, non-aspectj mapping approach with cascading fetching and fetch-strategies * merged GraphDatabaseContext into the Neo4jTemplate offering low level graph and high level entity related methods * extracted configuration setup of Neo4jTemplate into a single MappingInfrastructure with sensible defaults * indexing methods that take the property meta-information into account * extension of result-conversion mechanisms, including EntityPath and generic Use-Case interfaces (e.g. for subgraphs) * added spatial index providers and more generic index-types * added Support for traversing over Nodes, Relationships, Paths, NodeEntities and RelationshipEntities with the @GraphTraversal annotation DATAGRAPH-97 * added additional examples, for the different mapping modes and remote access * added a developer-notes cheat sheet * added handling of map like structures (DynamicProperties) * lots of package reorganization, API and class name and responsiblity cleanup * cleanup and documentation updates * upgraded maven plugin version * added documentation generating tests Changes in version 1.1.0.RELEASE (2011-08-04) --------------------------------------------- * update to Neo4j 1.4.1 * documentation updates * fixed package name in NamespaceHandler declaration * cypher, gremlin as optional dependencies * minor RestAPI updates * made nodeDelegatingFieldAccessorFactory an overrideable bean definition Changes in version 1.1.0.RC1 (2011-07-25) ----------------------------------------- * Added Gremlin support (embedded & REST) * QueryEngine.query method now takes a parameter map (for cypher and gremlin) * documentation updates Changes in version 1.1.0.M2 (2011-07-20) ----------------------------------------- * updated dependency to Neo4j 1.4 * API updates to Neo4j 1.4 changes * repackaging to org.springframework.data.neo4j.* * added cypher queries to Neo4j-Template * Neo4j-Template API overhaul * fluent query, traversal, lookup methods in the Neo4j-Template * Integrated remote REST-Cypher Plugin * fixed lingering client connections for the REST module (ClientResponse.close()) * fixed NotFoundException with GraphRepository.exists() Changes in version 1.1.0.M1 (2011-06-13) ----------------------------------------- * updated dependency to Neo4j 1.4.M04 * updated dependency to AspectJ 1.6.12.M1 (also available with STS 2.7.0.M2) * fixed errors in the REST binding (multiple property setting, index operations) * added sample build scripts for gradle and ant/ivy * API updates to Neo4j 1.4 changes * added support for the Neo4j query language "Cypher" in entity annotations, introduced methods and repositories * added support for self-relationships * elementClass annotation attribute is now optional * updated documentation for: merge behaviour, annotation inheritance, support for primitive collection types, IDE aspectj support Changes in version 1.0.0.RELEASE (2011-04-18) --------------------------------------------- * updated dependency to Neo4j 1.3 final * restructured repository interfaces * overloaded methods for index operation without required index names * ClosableIterator returned from index query methods (close() when not loop through) * removed cyclic dependencies * better relationship collection update handling for detached entities * documentation updates Changes in version 1.0.0.RC1 (2011-04-04) ---------------------------------------- * replaced finders with composable spring-data-commons repositories * added rest-client support for consuming Neo4j-REST server with Spring Data Graph * re-added OSGi bundlor metainformation * relationship entity creation aligned to node entity creation * added TypeRepresentation Strategies for Relationships, enabling RelationshipEntity-Repositories * lots of performance improvements * fixed removal of relationship entities * added a GraphDatabase abstraction to be used with Neo4jTemplate * Neo4jTemplate API udpates * added aspect-introduced methods to NodeBacked and RelationshipBacked interfaces (with javadocs) * removed fullIndex annotation attribute * moved @Indexed annotation to org.springframework.data.graph.neo4j.annotation package * many documentation updates Changes in version 1.0.0.M5 (2011-03-25) ---------------------------------------- * fixed docbook build to include images * added tutorial section to book * clarified in documentation what AspectJ does * fail on startup if transaction manager is misconfigured * fail early at runtime if 1:N field is missing the RelatedTo.elementClass * added new default NodeTypeStrategy based on indexing * fixed Bacon path issue in IMDB example * fixed bug with stale EntityManagers in a cross-store scenario * @NodeEntities are no longer @Configurable * update to Neo4j 1.3.M05, AspectJ 1.6.11.RELEASE * better integration support for Neo4j Server unmanaged extensions * made type attribute of @RelatedTo optional * many performance improvements * ability to register StateBackedCreators to NodeEntityInstantiator to forgo instantiation via reflection * fixed test context leakage into other tests via aspects, added cleaning TestExecutionListener Changes in version 1.0.0.M4 (2011-03-15) ---------------------------------------- * update to Neo4j-1.3.M04 * simplification of detached/attached state * all node entities are detached at creation, must call persist() * attach() renamed to persist() * separate indices per domain class * support for fulltext indices * fixed direct lookup of numerically indexed values * relationships via relateTo are now also restricted to one per type,direction and target * added EntityPath/EntityPathMapper for entity based Neo4jTemplate callbacks * added EntityEvaluator for entity based path evaluation * error handling for node type strategy called on non type nodes * FieldTraversalDescriptionBuilder build method parametrization * re-enabled, updated and fixed cross-store persistence * graph managed fields no longer have to be annotated with @Transient (the aspect takes care of that) * removed the need to mark graph managed fields with @Transient for a cross store entity * changed documentation format to guidebook, added tutorial as first part Changes in version 1.0.0.M3 (2011-02-25) ---------------------------------------- * update to Neo4j-1.3.M03, AspectJ 1.6.11.M2 * added explicit support for detachable entities * added bean validation support for property changes * added external transaction manager support (XA and one phase commit best effort) * added xml namespace configuration * simplified Spring Java Config configuration class * added automatic numerical indexing and range queries * added full featured Neo4jTemplate * all methods introduced to entities are now generified Changes in version 1.0.0.M2 (2011-01-31) ---------------------------------------- General * Improved indexing support - full, named index support for nodes and relationships * Now supporting removal of node and relationship entities * Added strict type checking on entity instantiation from framework methods (according to type strategy) * Added support for dynamic projection to arbitrary graph entities * Updated dependency to Neo4j 1.2 Changes in version 1.0.0.M1 (2010-12-24) ---------------------------------------- General * Simplified annotation driven programming model for Neo4j applications * Strategy to handle representation of java types in the graph * AspectJ ITD backed field mapping for plain Java objects * Annotations for graph persistence * Support for building traversal descriptions * Support for cross-store persistence including basic transaction support * Abstract configuration class