diff --git a/spring-data-neo4j-aspects/pom.xml b/spring-data-neo4j-aspects/pom.xml
index 61a815c57..e52235723 100644
--- a/spring-data-neo4j-aspects/pom.xml
+++ b/spring-data-neo4j-aspects/pom.xml
@@ -44,11 +44,6 @@
org.springframework.data
spring-data-neo4j
- test-jar
-
-
- org.springframework.data
- spring-data-neo4j
${project.version}
test-jar
@@ -215,49 +210,58 @@
-
- org.codehaus.mojo
- aspectj-maven-plugin
- 1.2
-
-
- org.aspectj
- aspectjrt
- ${aspectj.version}
-
-
- org.aspectj
- aspectjtools
- ${aspectj.version}
-
-
-
-
-
- compile
- test-compile
-
-
-
-
-
-
- true
-
-
- org.springframework
- spring-aspects
-
-
-
- 1.6
- 1.6
-
-
-
+
+ org.codehaus.mojo
+ aspectj-maven-plugin
+ 1.2
+
+
+ org.aspectj
+ aspectjrt
+ ${aspectj.version}
+
+
+ org.aspectj
+ aspectjtools
+ ${aspectj.version}
+
+
+
+
+
+ true
+
+
+ org.springframework
+ spring-aspects
+
+
+ 1.6
+ 1.6
+
+
+
+ default-compile
+
+ compile
+
+
+
+ test-compile
+
+ test-compile
+
+
+
+
+
org.apache.maven.plugins
maven-jar-plugin
diff --git a/spring-data-neo4j-aspects/src/main/java/org/springframework/data/neo4j/aspects/support/node/Neo4jNodeBacking.aj b/spring-data-neo4j-aspects/src/main/aspect/org/springframework/data/neo4j/aspects/support/node/Neo4jNodeBacking.aj
similarity index 99%
rename from spring-data-neo4j-aspects/src/main/java/org/springframework/data/neo4j/aspects/support/node/Neo4jNodeBacking.aj
rename to spring-data-neo4j-aspects/src/main/aspect/org/springframework/data/neo4j/aspects/support/node/Neo4jNodeBacking.aj
index 20bbae650..bccf5f01c 100644
--- a/spring-data-neo4j-aspects/src/main/java/org/springframework/data/neo4j/aspects/support/node/Neo4jNodeBacking.aj
+++ b/spring-data-neo4j-aspects/src/main/aspect/org/springframework/data/neo4j/aspects/support/node/Neo4jNodeBacking.aj
@@ -16,6 +16,7 @@
package org.springframework.data.neo4j.aspects.support.node;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.aspectj.lang.JoinPoint;
diff --git a/spring-data-neo4j-aspects/src/main/java/org/springframework/data/neo4j/aspects/support/relationship/Neo4jRelationshipBacking.aj b/spring-data-neo4j-aspects/src/main/aspect/org/springframework/data/neo4j/aspects/support/relationship/Neo4jRelationshipBacking.aj
similarity index 100%
rename from spring-data-neo4j-aspects/src/main/java/org/springframework/data/neo4j/aspects/support/relationship/Neo4jRelationshipBacking.aj
rename to spring-data-neo4j-aspects/src/main/aspect/org/springframework/data/neo4j/aspects/support/relationship/Neo4jRelationshipBacking.aj
diff --git a/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/EntityTestBase.java b/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/EntityTestBase.java
new file mode 100644
index 000000000..cc0373706
--- /dev/null
+++ b/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/EntityTestBase.java
@@ -0,0 +1,103 @@
+/**
+ * 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.aspects.support;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.junit.Before;
+import org.neo4j.graphdb.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.convert.ConversionService;
+import org.springframework.data.neo4j.aspects.FriendshipRepository;
+import org.springframework.data.neo4j.aspects.GroupRepository;
+import org.springframework.data.neo4j.aspects.PersonRepository;
+import org.springframework.data.neo4j.repository.DirectGraphRepositoryFactory;
+import org.springframework.data.neo4j.support.GraphDatabaseContext;
+import org.springframework.data.neo4j.support.node.Neo4jHelper;
+import org.springframework.test.context.transaction.BeforeTransaction;
+
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * @author mh
+ * @since 15.10.11
+ */
+public class EntityTestBase {
+ protected final Log log = LogFactory.getLog(getClass());
+
+ @Autowired protected GraphDatabaseContext graphDatabaseContext;
+ @Autowired protected ConversionService conversionService;
+
+ @Autowired protected GraphDatabaseService graphDatabaseService;
+
+ @Autowired protected DirectGraphRepositoryFactory graphRepositoryFactory;
+
+ @Autowired protected PersonRepository personRepository;
+ @Autowired protected GroupRepository groupRepository;
+ @Autowired protected FriendshipRepository friendshipRepository;
+ protected TestTeam testTeam;
+
+ @Before
+ public void createTeam() throws Exception {
+ testTeam = new TestTeam(graphDatabaseContext);
+ }
+
+ protected Node getNodeState(Object entity) {
+ return graphDatabaseContext.getPersistentState(entity);
+ }
+ protected Long getNodeId(Object entity) {
+ final Node node = graphDatabaseContext.getPersistentState(entity);
+ return node == null ? null : node.getId();
+ }
+ protected Long getRelationshipId(Object entity) {
+ final Relationship rel = graphDatabaseContext.getPersistentState(entity);
+ return rel == null ? null : rel.getId();
+ }
+
+ protected boolean hasPersistentState(Object entity) {
+ return graphDatabaseContext.getPersistentState(entity)!=null;
+ }
+
+ protected Relationship getRelationshipState(Object entity) {
+ return graphDatabaseContext.getPersistentState(entity);
+ }
+
+ @SuppressWarnings("unchecked")
+ public T persist(T entity) {
+ return (T) graphDatabaseContext.save(entity);
+ }
+
+ protected Set set(T... values) {
+ return new HashSet(Arrays.asList(values));
+ }
+
+ protected void manualCleanDb() {
+ Transaction tx = graphDatabaseService.beginTx();
+ try {
+ cleanDb();
+ tx.success();
+ } finally {
+ tx.finish();
+ }
+ }
+
+ @BeforeTransaction
+ public void cleanDb() {
+ Neo4jHelper.cleanDb(graphDatabaseContext);
+ }
+}