diff --git a/.gitignore b/.gitignore index 54ed1cc8e..55b3d0f62 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,5 @@ target .ant-targets-build.xml src/ant/.ant-targets-upload-dist.xml *.iml +*.ipr +*.iws diff --git a/spring-data-graph-parent/pom.xml b/spring-data-graph-parent/pom.xml index 8952e1164..efbdf084a 100644 --- a/spring-data-graph-parent/pom.xml +++ b/spring-data-graph-parent/pom.xml @@ -303,7 +303,7 @@ org.apache.maven.plugins maven-surefire-plugin - false + true **/*Tests.java **/*Test.java diff --git a/spring-data-neo4j-roo/src/test/java/org/springframework/data/graph/neo4j/Person.java b/spring-data-neo4j-roo/src/test/java/org/springframework/data/graph/neo4j/Person.java index 7dc82e1d0..735daf196 100644 --- a/spring-data-neo4j-roo/src/test/java/org/springframework/data/graph/neo4j/Person.java +++ b/spring-data-neo4j-roo/src/test/java/org/springframework/data/graph/neo4j/Person.java @@ -12,151 +12,181 @@ import java.util.Date; @NodeEntity(useShortNames = false) -public class Person { +public class Person +{ - @GraphId - private Long graphId; + public static final String NAME_INDEX = "name_index"; + @GraphId + private Long graphId; - @GraphProperty(index = true) - private String name; + @Indexed(name = NAME_INDEX) + private String name; - @Indexed - private String nickname; + @Indexed + private String nickname; - private int age; + private int age; - private Short height; + private Short height; - private transient String thought; + private transient String thought; - private Personality personality; + private Personality personality; - private Date birthdate; + private Date birthdate; - private Person spouse; + private Person spouse; - private Car car; + private Car car; - @RelatedTo(type = "mother", direction = Direction.OUTGOING) - private Person mother; + @RelatedTo(type = "mother", direction = Direction.OUTGOING) + private Person mother; - @RelatedTo(type = "boss", direction = Direction.INCOMING) - private Person boss; + @RelatedTo(type = "boss", direction = Direction.INCOMING) + private Person boss; - @RelatedToVia(type = "knows", elementClass = Friendship.class) - private Iterable friendships; + @RelatedToVia(type = "knows", elementClass = Friendship.class) + private Iterable friendships; - public Person() { + public Person() + { } - public Person(String name, int age) { - this.name = name; - this.age = age; - } + public Person( String name, int age ) + { + this.name = name; + this.age = age; + } - public String getName() { - return name; - } + public String getName() + { + return name; + } - public void setName(String name) { - this.name = name; - } + public void setName( String name ) + { + this.name = name; + } - public int getAge() { - return age; - } + public int getAge() + { + return age; + } - public void setAge(int age) { - this.age = age; - } + public void setAge( int age ) + { + this.age = age; + } - public Short getHeight() { - return height; - } + public Short getHeight() + { + return height; + } - public void setHeight(Short height) { - this.height = height; - } + public void setHeight( Short height ) + { + this.height = height; + } - public Person getSpouse() { - return spouse; - } + public Person getSpouse() + { + return spouse; + } - public void setSpouse(Person spouse) { - this.spouse = spouse; - } + public void setSpouse( Person spouse ) + { + this.spouse = spouse; + } - public Person getMother() { - return mother; - } + public Person getMother() + { + return mother; + } - public void setMother(Person mother) { - this.mother = mother; - } + public void setMother( Person mother ) + { + this.mother = mother; + } - public Person getBoss() { - return boss; - } + public Person getBoss() + { + return boss; + } - public void setBoss(Person boss) { - this.boss = boss; - } + public void setBoss( Person boss ) + { + this.boss = boss; + } - @Override - public String toString() { - return name; - } + @Override + public String toString() + { + return name; + } - public Iterable getFriendships() { - return friendships; - } + public Iterable getFriendships() + { + return friendships; + } - public void setFriendships(Iterable f) { - friendships = f; - } + public void setFriendships( Iterable f ) + { + friendships = f; + } - public Friendship knows(Person p) { - return (Friendship)relateTo(p, Friendship.class,"knows"); - } + public Friendship knows( Person p ) + { + return (Friendship) relateTo( p, Friendship.class, "knows" ); + } - public void setPersonality(Personality personality) { - this.personality = personality; - } + public void setPersonality( Personality personality ) + { + this.personality = personality; + } - public Personality getPersonality() { - return personality; - } + public Personality getPersonality() + { + return personality; + } - public void setThought(String thought) { - this.thought = thought; - } + public void setThought( String thought ) + { + this.thought = thought; + } - public String getThought() { - return thought; - } + public String getThought() + { + return thought; + } - public Date getBirthdate() { - return birthdate; - } + public Date getBirthdate() + { + return birthdate; + } - public void setBirthdate(Date birthdate) { - this.birthdate = birthdate; - } + public void setBirthdate( Date birthdate ) + { + this.birthdate = birthdate; + } - public long getId() { - return graphId; - } + public long getId() + { + return graphId; + } - public void setCar(Car car) { - this.car = car; - } + public void setCar( Car car ) + { + this.car = car; + } - public Car getCar() { - return car; - } + public Car getCar() + { + return car; + } - public void setNickname(String nickname) { - this.nickname = nickname; - } + public void setNickname( String nickname ) + { + this.nickname = nickname; + } } diff --git a/spring-data-neo4j/src/main/java/org/springframework/data/graph/annotation/GraphProperty.java b/spring-data-neo4j/src/main/java/org/springframework/data/graph/annotation/GraphProperty.java index 05eadf1ed..3196016c4 100644 --- a/spring-data-neo4j/src/main/java/org/springframework/data/graph/annotation/GraphProperty.java +++ b/spring-data-neo4j/src/main/java/org/springframework/data/graph/annotation/GraphProperty.java @@ -32,8 +32,4 @@ import java.lang.annotation.Target; @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.FIELD) public @interface GraphProperty { - /** - * @return true if the property should be indexed, false if not - */ - boolean index() default true; } diff --git a/spring-data-neo4j/src/main/java/org/springframework/data/graph/neo4j/fieldaccess/IndexingNodePropertyFieldAccessorListenerFactory.java b/spring-data-neo4j/src/main/java/org/springframework/data/graph/neo4j/fieldaccess/IndexingNodePropertyFieldAccessorListenerFactory.java index eea3e3ff7..796cb2dd0 100644 --- a/spring-data-neo4j/src/main/java/org/springframework/data/graph/neo4j/fieldaccess/IndexingNodePropertyFieldAccessorListenerFactory.java +++ b/spring-data-neo4j/src/main/java/org/springframework/data/graph/neo4j/fieldaccess/IndexingNodePropertyFieldAccessorListenerFactory.java @@ -48,9 +48,7 @@ class IndexingNodePropertyFieldAccessorListenerFactory implements FieldAccessorL final NodeEntity entityAnnotation = f.getDeclaringClass().getAnnotation(NodeEntity.class); if (entityAnnotation!=null && entityAnnotation.fullIndex()) return true; final Indexed indexedAnnotation = f.getAnnotation(Indexed.class); - if (indexedAnnotation != null) return true; - final GraphProperty propertyAnnotation = f.getAnnotation(GraphProperty.class); - return propertyAnnotation!=null && propertyAnnotation.index(); + return indexedAnnotation != null; } private boolean isPropertyField(final Field f) { @@ -64,7 +62,10 @@ class IndexingNodePropertyFieldAccessorListenerFactory implements FieldAccessorL private String getIndexName(Field field) { Indexed indexed = field.getAnnotation(Indexed.class); - return hasIndexName(indexed) ? indexed.name() : null; + if (hasIndexName(indexed)) return indexed.name(); + + final Indexed indexedEntity = field.getDeclaringClass().getAnnotation(Indexed.class); + return hasIndexName( indexedEntity ) ? indexedEntity.name() : null; } private boolean hasIndexName(Indexed indexed) { diff --git a/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/Group.java b/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/Group.java index a95555940..713d089da 100644 --- a/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/Group.java +++ b/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/Group.java @@ -4,6 +4,7 @@ import org.neo4j.graphdb.DynamicRelationshipType; import org.neo4j.graphdb.traversal.TraversalDescription; import org.neo4j.kernel.Traversal; import org.neo4j.kernel.impl.traversal.TraversalDescriptionImpl; +import org.springframework.data.annotation.Indexed; import org.springframework.data.graph.*; import org.springframework.data.graph.annotation.GraphProperty; import org.springframework.data.graph.annotation.GraphTraversal; @@ -30,9 +31,10 @@ public class Group { private Iterable people; @GraphProperty + @Indexed private String name; - @GraphProperty(index = false) + @GraphProperty private String unindexedName; private String unindexedName2; diff --git a/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/Person.java b/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/Person.java index 132e6b643..c28678d11 100644 --- a/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/Person.java +++ b/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/Person.java @@ -14,10 +14,11 @@ import java.util.Date; @NodeEntity(useShortNames = false) public class Person { - @GraphId + public static final String NAME_INDEX = "name_index"; + @GraphId private Long graphId; - @GraphProperty(index = true) + @Indexed(name = NAME_INDEX) private String name; @Indexed diff --git a/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/partial/Restaurant.java b/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/partial/Restaurant.java index 6cfe9d5b4..d6aeb09b5 100644 --- a/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/partial/Restaurant.java +++ b/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/partial/Restaurant.java @@ -1,5 +1,6 @@ package org.springframework.data.graph.neo4j.partial; +import org.springframework.data.annotation.Indexed; import org.springframework.data.graph.annotation.GraphProperty; import org.springframework.data.graph.annotation.NodeEntity; @@ -20,6 +21,7 @@ public class Restaurant { String zipCode; @GraphProperty + @Indexed @Transient Cuisine cuisine; diff --git a/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/partial/User.java b/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/partial/User.java index d52558ddd..e0c6b1893 100644 --- a/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/partial/User.java +++ b/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/partial/User.java @@ -1,6 +1,7 @@ package org.springframework.data.graph.neo4j.partial; import org.neo4j.graphdb.DynamicRelationshipType; +import org.springframework.data.annotation.Indexed; import org.springframework.data.graph.*; import org.springframework.data.graph.annotation.GraphProperty; import org.springframework.data.graph.annotation.NodeEntity; @@ -26,6 +27,7 @@ public class User { int age; @GraphProperty + @Indexed @Transient String nickname; diff --git a/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/support/Neo4jGraphPersistenceTest.java b/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/support/Neo4jGraphPersistenceTest.java index a433d28c9..cd2a5c1c3 100644 --- a/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/support/Neo4jGraphPersistenceTest.java +++ b/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/support/Neo4jGraphPersistenceTest.java @@ -369,7 +369,7 @@ public class Neo4jGraphPersistenceTest { Person spouse = new Person("Tina", 36); me.setSpouse(spouse); final Finder personFinder = finderFactory.getFinderForClass(Person.class); - final Person foundMe = personFinder.findByPropertyValue(null, "Person.name", "Michael"); + final Person foundMe = personFinder.findByPropertyValue( Person.NAME_INDEX, "Person.name", "Michael"); assertEquals(spouse,foundMe.getSpouse()); } @@ -481,7 +481,7 @@ public class Neo4jGraphPersistenceTest { public void testFindAllPersonByIndexOnAnnotatedField() { Person person = new Person("Michael",35); final Finder finder = finderFactory.getFinderForClass(Person.class); - final Person found = finder.findByPropertyValue(null, "Person.name", "Michael"); + final Person found = finder.findByPropertyValue( Person.NAME_INDEX, "Person.name", "Michael"); assertEquals(person, found); }