diff --git a/changelog.txt b/changelog.txt index 17c947d83..3a77418cc 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,6 +1,22 @@ Spring Data Graph Changelog ============================================= +Changes in version 1.0.0.RC1 (2011-04-01) +---------------------------------------- + +* replaced finders with composable spring-data-commons repositories +* added rest-client support for consuming Neo4j-REST servier with Spring Data Graph +* 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 +* many documentation updates + + Changes in version 1.0.0.M5 (2011-03-25) ---------------------------------------- diff --git a/spring-data-neo4j-roo/src/test/resources/org/springframework/data/graph/neo4j/jpa/Neo4jEntityManagerTest-context.xml b/spring-data-neo4j-roo/src/test/resources/org/springframework/data/graph/neo4j/jpa/Neo4jEntityManagerTest-context.xml index 0fe46e4e6..41688e172 100644 --- a/spring-data-neo4j-roo/src/test/resources/org/springframework/data/graph/neo4j/jpa/Neo4jEntityManagerTest-context.xml +++ b/spring-data-neo4j-roo/src/test/resources/org/springframework/data/graph/neo4j/jpa/Neo4jEntityManagerTest-context.xml @@ -97,7 +97,7 @@ + class="org.springframework.data.graph.neo4j.support.relationship.RelationshipEntityInstantiator"/> @@ -109,7 +109,7 @@ + class="org.springframework.data.graph.neo4j.support.node.NodeEntityInstantiator"/> diff --git a/spring-data-neo4j/src/main/java/org/springframework/data/graph/neo4j/config/Neo4jConfiguration.java b/spring-data-neo4j/src/main/java/org/springframework/data/graph/neo4j/config/Neo4jConfiguration.java index 9704f20d6..18d7fcf76 100644 --- a/spring-data-neo4j/src/main/java/org/springframework/data/graph/neo4j/config/Neo4jConfiguration.java +++ b/spring-data-neo4j/src/main/java/org/springframework/data/graph/neo4j/config/Neo4jConfiguration.java @@ -36,10 +36,10 @@ import org.springframework.data.graph.neo4j.fieldaccess.RelationshipEntityStateF import org.springframework.data.graph.neo4j.repository.DirectGraphRepositoryFactory; import org.springframework.data.graph.neo4j.support.GraphDatabaseContext; import org.springframework.data.graph.neo4j.support.TypeRepresentationStrategyFactory; -import org.springframework.data.graph.neo4j.support.node.Neo4jConstructorGraphEntityInstantiator; +import org.springframework.data.graph.neo4j.support.node.NodeEntityInstantiator; import org.springframework.data.graph.neo4j.support.node.Neo4jNodeBacking; -import org.springframework.data.graph.neo4j.support.node.PartialNeo4jEntityInstantiator; -import org.springframework.data.graph.neo4j.support.relationship.ConstructorBypassingGraphRelationshipInstantiator; +import org.springframework.data.graph.neo4j.support.node.PartialNodeEntityInstantiator; +import org.springframework.data.graph.neo4j.support.relationship.RelationshipEntityInstantiator; import org.springframework.data.graph.neo4j.support.relationship.Neo4jRelationshipBacking; import org.springframework.data.graph.neo4j.template.Neo4jExceptionTranslator; import org.springframework.data.graph.neo4j.transaction.ChainedTransactionManager; @@ -115,16 +115,16 @@ public class Neo4jConfiguration { } @Bean - protected ConstructorBypassingGraphRelationshipInstantiator graphRelationshipInstantiator() { - return new ConstructorBypassingGraphRelationshipInstantiator(); + protected RelationshipEntityInstantiator graphRelationshipInstantiator() { + return new RelationshipEntityInstantiator(); } @Bean protected EntityInstantiator graphEntityInstantiator() { if (isUsingCrossStorePersistence()) { - return new PartialNeo4jEntityInstantiator(new Neo4jConstructorGraphEntityInstantiator(), entityManagerFactory); + return new PartialNodeEntityInstantiator(new NodeEntityInstantiator(), entityManagerFactory); } else { - return new Neo4jConstructorGraphEntityInstantiator(); + return new NodeEntityInstantiator(); } } diff --git a/spring-data-neo4j/src/test/resources/org/springframework/data/graph/neo4j/config/DataGraphNamespaceHandlerTest-context.xml b/spring-data-neo4j/src/test/resources/org/springframework/data/graph/neo4j/config/DataGraphNamespaceHandlerTest-context.xml index ba094be5e..c9f2da40e 100644 --- a/spring-data-neo4j/src/test/resources/org/springframework/data/graph/neo4j/config/DataGraphNamespaceHandlerTest-context.xml +++ b/spring-data-neo4j/src/test/resources/org/springframework/data/graph/neo4j/config/DataGraphNamespaceHandlerTest-context.xml @@ -13,5 +13,5 @@ - + \ No newline at end of file diff --git a/spring-data-neo4j/src/test/resources/org/springframework/data/graph/neo4j/partial/Neo4jGraphRecommendationTest-context.xml b/spring-data-neo4j/src/test/resources/org/springframework/data/graph/neo4j/partial/Neo4jGraphRecommendationTest-context.xml index ca8f54a73..5faf66b63 100644 --- a/spring-data-neo4j/src/test/resources/org/springframework/data/graph/neo4j/partial/Neo4jGraphRecommendationTest-context.xml +++ b/spring-data-neo4j/src/test/resources/org/springframework/data/graph/neo4j/partial/Neo4jGraphRecommendationTest-context.xml @@ -94,14 +94,14 @@ - + - + + class="org.springframework.data.graph.neo4j.support.relationship.RelationshipEntityInstantiator"/> diff --git a/spring-data-neo4j/src/test/resources/org/springframework/data/graph/neo4j/support/Neo4jGraphPersistenceTest-context.xml b/spring-data-neo4j/src/test/resources/org/springframework/data/graph/neo4j/support/Neo4jGraphPersistenceTest-context.xml index 465079929..557ef7820 100644 --- a/spring-data-neo4j/src/test/resources/org/springframework/data/graph/neo4j/support/Neo4jGraphPersistenceTest-context.xml +++ b/spring-data-neo4j/src/test/resources/org/springframework/data/graph/neo4j/support/Neo4jGraphPersistenceTest-context.xml @@ -95,10 +95,10 @@ + class="org.springframework.data.graph.neo4j.support.relationship.RelationshipEntityInstantiator"/> + class="org.springframework.data.graph.neo4j.support.node.NodeEntityInstantiator"/> diff --git a/spring-data-neo4j/src/test/resources/org/springframework/data/graph/neo4j/support/PersonDirectCreator-context.xml b/spring-data-neo4j/src/test/resources/org/springframework/data/graph/neo4j/support/PersonDirectCreator-context.xml index 5e9705d6e..383f2cf03 100644 --- a/spring-data-neo4j/src/test/resources/org/springframework/data/graph/neo4j/support/PersonDirectCreator-context.xml +++ b/spring-data-neo4j/src/test/resources/org/springframework/data/graph/neo4j/support/PersonDirectCreator-context.xml @@ -15,7 +15,7 @@ http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> + class="org.springframework.data.graph.neo4j.support.node.NodeEntityInstantiator"> diff --git a/src/docbkx/reference/aspectj-intro.xml b/src/docbkx/reference/aspectj-intro.xml index d7c71f901..bdf75c6a9 100644 --- a/src/docbkx/reference/aspectj-intro.xml +++ b/src/docbkx/reference/aspectj-intro.xml @@ -45,9 +45,11 @@ classes has already been rewritten to delegate appropriate calls via the declared advice in the aspects. + A caveat of using compile-time weaving is that all source files that should be part of the weaving process must be compiled with the AspectJ compiler. Fortunately, this is all taken care of seamlessly by the AspectJ Maven plugin. + AspectJ also supports other types of weaving, for example load-time weaving and runtime weaving. These are diff --git a/src/docbkx/reference/programming-model/aspectj.xml b/src/docbkx/reference/programming-model/aspectj.xml index 6b8094c71..24680b7ff 100644 --- a/src/docbkx/reference/programming-model/aspectj.xml +++ b/src/docbkx/reference/programming-model/aspectj.xml @@ -26,4 +26,22 @@ delegation code. The EntityState then uses a number of FieldAccessorFactories to create a FieldAccessor instance per field that does the specific handling needed for the concrete field type. +
+ IDE-AspectJ Support + + As Spring Data Graph uses some advanced aspects of AspectJ, there might be issues with IDE reporting errors + where there are none. Features that might be reported are: introduction of methods to interfaces, declaration + of additional interfaces for annotated classes, generified introduced methods. + + + Eclipse and STS support AspectJ via the AJDT plugin which can be installed from the update-site: + + + + The AspectJ support in IntelliJ IDEA lacks some of the features. JetBrains is working to improve the situation + with the upcoming 10.5 release of the IDE (which is currently available as EAP). Building the project with + Ajc works in the IDE (Options -> Compiler -> Java-Compiler should show Ajc, please add + 512 MB RAM for the compiler to run). + +
\ No newline at end of file diff --git a/src/docbkx/reference/programming-model/programming-model.xml b/src/docbkx/reference/programming-model/programming-model.xml index 85af23b1a..176847751 100644 --- a/src/docbkx/reference/programming-model/programming-model.xml +++ b/src/docbkx/reference/programming-model/programming-model.xml @@ -11,7 +11,7 @@ - + diff --git a/src/docbkx/reference/programming-model/typerepresentationstrategy.xml b/src/docbkx/reference/programming-model/typerepresentationstrategy.xml index 3fed0354a..1e37d1f2f 100644 --- a/src/docbkx/reference/programming-model/typerepresentationstrategy.xml +++ b/src/docbkx/reference/programming-model/typerepresentationstrategy.xml @@ -8,9 +8,7 @@ this type information is saved in the graph database. - Implementations of - TypeRepresentationStrategy - take care of persisting this information on entity instance + Implementations of TypeRepresentationStrategy take care of persisting this information on entity instance creation. They also provide the repository methods that use this type information to perform their operations, like findAll and count. diff --git a/src/docbkx/reference/template.xml b/src/docbkx/reference/template.xml index f67ddee9d..601b44ee1 100644 --- a/src/docbkx/reference/template.xml +++ b/src/docbkx/reference/template.xml @@ -20,14 +20,13 @@ @@ -36,8 +35,7 @@ assert "Mark".equals(neo.query("devs","name","Mark",new NodeNamePathMapper()));
Indexing - Adding nodes and relationships to an index is achieved using the index and autoindex) - methods. + Adding nodes and relationships to an index is achieved using the index method. Query methods either take a field / value combination to look for exact matches in the index or