Spring Data Graph Changelog =========================== 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