diff --git a/spring-data-neo4j-aspects/pom.xml b/spring-data-neo4j-aspects/pom.xml
index 9cb651304..d5a6acfa5 100644
--- a/spring-data-neo4j-aspects/pom.xml
+++ b/spring-data-neo4j-aspects/pom.xml
@@ -41,6 +41,12 @@
org.springframework.data
spring-data-neo4j
+
+ org.springframework.data
+ spring-data-neo4j
+ ${project.version}
+ test-jar
+
@@ -87,6 +93,35 @@
true
+
+ org.neo4j
+ neo4j-cypher
+ true
+
+
+
+ org.neo4j
+ server-api
+ true
+
+
+
+ com.tinkerpop.blueprints
+ blueprints-core
+ true
+
+
+ com.tinkerpop.blueprints
+ blueprints-neo4j-graph
+ true
+
+
+
+ com.tinkerpop
+ gremlin
+ true
+
+
org.mockito
mockito-all
@@ -206,10 +241,10 @@
org.springframework
spring-aspects
-
+
1.6
1.6
diff --git a/spring-data-neo4j-aspects/src/main/java/org/springframework/data/neo4j/config/Neo4jAspectConfiguration.java b/spring-data-neo4j-aspects/src/main/java/org/springframework/data/neo4j/config/Neo4jAspectConfiguration.java
index 776773abe..8f494bbd3 100644
--- a/spring-data-neo4j-aspects/src/main/java/org/springframework/data/neo4j/config/Neo4jAspectConfiguration.java
+++ b/spring-data-neo4j-aspects/src/main/java/org/springframework/data/neo4j/config/Neo4jAspectConfiguration.java
@@ -1,3 +1,18 @@
+/**
+ * Copyright 2011 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
package org.springframework.data.neo4j.config;
import org.springframework.context.annotation.Bean;
diff --git a/spring-data-neo4j-aspects/src/main/java/org/springframework/data/neo4j/core/GraphBacked.java b/spring-data-neo4j-aspects/src/main/java/org/springframework/data/neo4j/core/GraphBacked.java
index 1ff76f623..ac2e42519 100644
--- a/spring-data-neo4j-aspects/src/main/java/org/springframework/data/neo4j/core/GraphBacked.java
+++ b/spring-data-neo4j-aspects/src/main/java/org/springframework/data/neo4j/core/GraphBacked.java
@@ -26,7 +26,7 @@ import org.springframework.data.neo4j.support.ManagedEntity;
* @author Michael Hunger
* @since 21.09.2010
*/
-public interface GraphBacked extends ManagedEntity {
+public interface GraphBacked> extends ManagedEntity {
/**
* internal setter used for initializing the graph-db state on existing or newly created entities
*
diff --git a/spring-data-neo4j-aspects/src/main/java/org/springframework/data/neo4j/core/NodeBacked.java b/spring-data-neo4j-aspects/src/main/java/org/springframework/data/neo4j/core/NodeBacked.java
index bfbc40926..a7b091056 100644
--- a/spring-data-neo4j-aspects/src/main/java/org/springframework/data/neo4j/core/NodeBacked.java
+++ b/spring-data-neo4j-aspects/src/main/java/org/springframework/data/neo4j/core/NodeBacked.java
@@ -19,8 +19,6 @@ package org.springframework.data.neo4j.core;
import org.neo4j.graphdb.Node;
import org.neo4j.graphdb.Relationship;
import org.neo4j.graphdb.traversal.TraversalDescription;
-import org.springframework.data.neo4j.support.node.Neo4jNodeBacking;
-import org.springframework.data.neo4j.support.query.CypherQueryExecutor;
import java.util.Map;
@@ -30,7 +28,7 @@ import java.util.Map;
*
* @author Rod Johnson
*/
-public interface NodeBacked extends GraphBacked {
+public interface NodeBacked extends GraphBacked {
/**
* Attach the entity inside a running transaction. Creating or changing an entity outside of a transaction
diff --git a/spring-data-neo4j-aspects/src/main/java/org/springframework/data/neo4j/core/RelationshipBacked.java b/spring-data-neo4j-aspects/src/main/java/org/springframework/data/neo4j/core/RelationshipBacked.java
index baaccd1d5..c040ff7a7 100644
--- a/spring-data-neo4j-aspects/src/main/java/org/springframework/data/neo4j/core/RelationshipBacked.java
+++ b/spring-data-neo4j-aspects/src/main/java/org/springframework/data/neo4j/core/RelationshipBacked.java
@@ -22,7 +22,7 @@ import org.neo4j.graphdb.Relationship;
* concrete interface introduced onto Relationship entities by the {@link org.springframework.data.neo4j.support.relationship.Neo4jRelationshipBacking}
* aspect, encapsulates a neo4j relationship as backing state
*/
-public interface RelationshipBacked extends GraphBacked{
+public interface RelationshipBacked extends GraphBacked{
/**
* @return the id of the underlying relationship or null if there is none
diff --git a/spring-data-neo4j-aspects/src/main/java/org/springframework/data/neo4j/support/node/Neo4jNodeBacking.aj b/spring-data-neo4j-aspects/src/main/java/org/springframework/data/neo4j/support/node/Neo4jNodeBacking.aj
index 98df47166..35aedffc6 100644
--- a/spring-data-neo4j-aspects/src/main/java/org/springframework/data/neo4j/support/node/Neo4jNodeBacking.aj
+++ b/spring-data-neo4j-aspects/src/main/java/org/springframework/data/neo4j/support/node/Neo4jNodeBacking.aj
@@ -22,7 +22,6 @@ import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.reflect.FieldSignature;
import org.neo4j.graphdb.DynamicRelationshipType;
import org.neo4j.graphdb.Path;
-import org.neo4j.helpers.collection.IterableWrapper;
import org.neo4j.graphdb.Node;
import org.neo4j.graphdb.Relationship;
import org.neo4j.graphdb.traversal.TraversalDescription;
@@ -39,6 +38,7 @@ import org.springframework.data.neo4j.annotation.GraphTraversal;
import org.springframework.data.neo4j.core.NodeBacked;
import org.springframework.data.neo4j.core.RelationshipBacked;
+import org.springframework.data.neo4j.fieldaccess.GraphBackedEntityIterableWrapper;
import org.springframework.data.neo4j.support.DoReturn;
import org.springframework.data.neo4j.core.EntityPath;
import org.springframework.data.neo4j.core.EntityState;
@@ -196,20 +196,10 @@ public privileged aspect Neo4jNodeBacking { // extends AbstractTypeAnnotatingMix
private Iterable> convertToGraphEntity(Traverser traverser, final Class> targetType) {
final GraphDatabaseContext ctx = Neo4jNodeBacking.aspectOf().graphDatabaseContext;
if (NodeBacked.class.isAssignableFrom(targetType)) {
- return new IterableWrapper