diff --git a/pom.xml b/pom.xml index 9e7ee8123..03cdcf53b 100644 --- a/pom.xml +++ b/pom.xml @@ -15,6 +15,10 @@ spring-data-neo4j-rest spring-data-neo4j-aspects spring-data-neo4j-cross-store + spring-data-neo4j-examples/hello-worlds + spring-data-neo4j-examples/imdb + spring-data-neo4j-examples/cineasts + spring-data-neo4j-examples/myrestaurants-social http://www.springsource.org/spring-data/neo4j diff --git a/spring-data-neo4j-examples/cineasts/pom.xml b/spring-data-neo4j-examples/cineasts/pom.xml index bafb6bc82..85c12cb07 100644 --- a/spring-data-neo4j-examples/cineasts/pom.xml +++ b/spring-data-neo4j-examples/cineasts/pom.xml @@ -11,10 +11,10 @@ UTF-8 - 3.0.5.RELEASE + 3.0.6.RELEASE 1.6.1 UTF-8 - 1.4.1 + 1.5-SNAPSHOT 2.0.0.BUILD-SNAPSHOT 1.6.12.M1 1.6.1 @@ -159,7 +159,7 @@ org.springframework.data - spring-data-neo4j + spring-data-neo4j-aspects ${spring-data-graph.version} @@ -312,7 +312,7 @@ org.springframework.data - spring-data-neo4j + spring-data-neo4j-aspects 1.6 diff --git a/spring-data-neo4j-examples/hello-worlds/pom.xml b/spring-data-neo4j-examples/hello-worlds/pom.xml index 8e2b61b71..2bb3dc9de 100644 --- a/spring-data-neo4j-examples/hello-worlds/pom.xml +++ b/spring-data-neo4j-examples/hello-worlds/pom.xml @@ -11,7 +11,7 @@ UTF-8 - 3.0.5.RELEASE + 3.0.6.RELEASE 1.6.12.M1 1.6.1 UTF-8 @@ -78,7 +78,7 @@ org.springframework.data - spring-data-neo4j + spring-data-neo4j-aspects ${spring-data-neo4j.version} @@ -115,7 +115,7 @@ org.springframework.data - spring-data-neo4j + spring-data-neo4j-aspects 1.6 diff --git a/spring-data-neo4j-examples/imdb/pom.xml b/spring-data-neo4j-examples/imdb/pom.xml index 755967b75..6f91bd26b 100644 --- a/spring-data-neo4j-examples/imdb/pom.xml +++ b/spring-data-neo4j-examples/imdb/pom.xml @@ -7,7 +7,7 @@ 2.0.0-BUILD-SNAPSHOT imdb - 3.0.5.RELEASE + 3.0.6.RELEASE 1.6.12.M1 1.6.1 UTF-8 @@ -146,7 +146,7 @@ org.springframework.data - spring-data-neo4j + spring-data-neo4j-aspects ${data-graph.version} @@ -407,7 +407,7 @@ org.springframework.data - spring-data-neo4j + spring-data-neo4j-aspects 1.6 diff --git a/spring-data-neo4j-examples/myrestaurants-social/pom.xml b/spring-data-neo4j-examples/myrestaurants-social/pom.xml index 3d2eb3bac..2119a5a12 100644 --- a/spring-data-neo4j-examples/myrestaurants-social/pom.xml +++ b/spring-data-neo4j-examples/myrestaurants-social/pom.xml @@ -7,12 +7,12 @@ 2.0.0.BUILD-SNAPSHOT myrestaurants-social - 3.0.5.RELEASE + 3.0.6.RELEASE 2.0.0.BUILD-SNAPSHOT 1.6.12.M1 1.6.1 UTF-8 - 3.0.2.RELEASE + 3.0.6.RELEASE @@ -384,7 +384,7 @@ org.springframework.data - spring-data-neo4j + spring-data-neo4j-cross-store ${spring-data-graph.version} @@ -441,7 +441,7 @@ org.springframework.data - spring-data-neo4j + spring-data-neo4j-aspects 1.6 diff --git a/spring-data-neo4j-examples/myrestaurants-social/src/main/java/com/springone/myrestaurants/domain/TopRatedRestaurantTraverser.java b/spring-data-neo4j-examples/myrestaurants-social/src/main/java/com/springone/myrestaurants/domain/TopRatedRestaurantTraverser.java index 528b089d9..26ef81c7a 100644 --- a/spring-data-neo4j-examples/myrestaurants-social/src/main/java/com/springone/myrestaurants/domain/TopRatedRestaurantTraverser.java +++ b/spring-data-neo4j-examples/myrestaurants-social/src/main/java/com/springone/myrestaurants/domain/TopRatedRestaurantTraverser.java @@ -7,10 +7,7 @@ import org.neo4j.graphdb.traversal.TraversalBranch; import org.neo4j.graphdb.traversal.TraversalDescription; import org.neo4j.kernel.impl.traversal.TraversalDescriptionImpl; import org.springframework.data.neo4j.core.FieldTraversalDescriptionBuilder; -import org.springframework.data.neo4j.core.NodeBacked; -import org.springframework.data.neo4j.mapping.Neo4JPersistentProperty; - -import java.lang.reflect.Field; +import org.springframework.data.neo4j.mapping.Neo4jPersistentProperty; /** * @author Michael Hunger @@ -20,7 +17,7 @@ import java.lang.reflect.Field; */ class TopRatedRestaurantTraverser implements FieldTraversalDescriptionBuilder { @Override - public TraversalDescription build(NodeBacked start, Neo4JPersistentProperty field, String... params) { + public TraversalDescription build(Object start, Neo4jPersistentProperty field, String... params) { return new TraversalDescriptionImpl() .breadthFirst() .relationships(DynamicRelationshipType.withName("friends")) diff --git a/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/support/query/CypherQueryExecutor.java b/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/support/query/CypherQueryExecutor.java index 9a62c8bcf..b29dd07a3 100644 --- a/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/support/query/CypherQueryExecutor.java +++ b/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/support/query/CypherQueryExecutor.java @@ -16,8 +16,10 @@ package org.springframework.data.neo4j.support.query; +import org.springframework.data.neo4j.conversion.QueryResult; import org.springframework.data.neo4j.support.GraphDatabaseContext; import org.springframework.data.neo4j.support.conversion.EntityResultConverter; +import org.springframework.util.ClassUtils; import java.util.Collections; import java.util.Map; @@ -28,11 +30,20 @@ import java.util.Map; * todo limits */ public class CypherQueryExecutor implements QueryOperations> { - private final CypherQueryEngine queryEngine; + private final QueryEngine> queryEngine; public CypherQueryExecutor(GraphDatabaseContext ctx) { EntityResultConverter converter = new EntityResultConverter(ctx); - queryEngine = new CypherQueryEngine(ctx.getGraphDatabaseService(), converter); + if (ClassUtils.isPresent("org.neo4j.cypher.javacompat.ExecutionEngine",getClass().getClassLoader())) { + queryEngine = new CypherQueryEngine(ctx.getGraphDatabaseService(), converter); + } else { + queryEngine = new QueryEngine>() { + @Override + public QueryResult> query(String statement, Map params) { + throw new IllegalStateException("Cypher is not available, please add it to your dependencies to execute: "+statement); + } + }; + } } public Iterable> queryForList(String statement, Map params) {