From 06cd3d3834e1a83671be100326463bd8ab58b6f3 Mon Sep 17 00:00:00 2001 From: Michael Hunger Date: Mon, 13 Jun 2011 01:09:41 +0200 Subject: [PATCH] API updates --- .../graph/neo4j/rest/support/RestNode.java | 29 +++++++++++++++++-- .../neo4j/rest/support/LocalTestServer.java | 5 ++-- .../neo4j/template/Neo4jTemplateApiTest.java | 2 +- .../data/graph/neo4j/template/NeoApiTest.java | 2 +- .../Neo4jGraphRecommendationTest-context.xml | 2 +- .../Neo4jGraphPersistenceTest-context.xml | 2 +- 6 files changed, 34 insertions(+), 8 deletions(-) diff --git a/spring-data-neo4j-rest/src/main/java/org/springframework/data/graph/neo4j/rest/support/RestNode.java b/spring-data-neo4j-rest/src/main/java/org/springframework/data/graph/neo4j/rest/support/RestNode.java index b5d12a17d..9317eedaf 100644 --- a/spring-data-neo4j-rest/src/main/java/org/springframework/data/graph/neo4j/rest/support/RestNode.java +++ b/spring-data-neo4j-rest/src/main/java/org/springframework/data/graph/neo4j/rest/support/RestNode.java @@ -19,13 +19,17 @@ package org.springframework.data.graph.neo4j.rest.support; import com.sun.jersey.api.client.ClientResponse; import org.neo4j.graphdb.*; import org.neo4j.graphdb.Traverser.Order; +import org.neo4j.helpers.collection.CombiningIterable; import org.neo4j.helpers.collection.IterableWrapper; import org.neo4j.helpers.collection.IteratorUtil; import java.net.URI; +import java.util.Arrays; import java.util.Collection; import java.util.Map; +import static java.util.Arrays.asList; + public class RestNode extends RestEntity implements Node { public RestNode( URI uri, RestGraphDatabase graphDatabase ) { super( uri, graphDatabase ); @@ -98,13 +102,34 @@ public class RestNode extends RestEntity implements Node { return wrapRelationships( restRequest.get( "relationships/" + RestDirection.from( direction ).pathName ) ); } + @Override + public Iterable getRelationships(final Direction direction, RelationshipType... types) { + return new CombiningIterable(new IterableWrapper, RelationshipType>(asList(types)) { + @Override + protected Iterable underlyingObjectToObject(RelationshipType relationshipType) { + return getRelationships(direction, relationshipType); + } + }); + } + + @Override + public boolean hasRelationship(Direction direction, RelationshipType... types) { + for (RelationshipType relationshipType : types) { + if (hasRelationship(direction,relationshipType)) return true; + } + return false; + } + public Iterable getRelationships( RelationshipType type, Direction direction ) { - String relationshipsKey = RestDirection.from( direction ).dataName + "_relationships"; - Object relationship = getStructuralData().get( relationshipsKey ); + Object relationship = getStructuralData().get(directionParameter(direction)); return wrapRelationships( restRequest.get( relationship + "/" + type.name() ) ); } + private String directionParameter(Direction direction) { + return RestDirection.from(direction).dataName + "_relationships"; + } + public Relationship getSingleRelationship( RelationshipType type, Direction direction ) { return IteratorUtil.singleOrNull( getRelationships( type, direction ) ); diff --git a/spring-data-neo4j-rest/src/test/java/org/springframework/data/graph/neo4j/rest/support/LocalTestServer.java b/spring-data-neo4j-rest/src/test/java/org/springframework/data/graph/neo4j/rest/support/LocalTestServer.java index 70c039c7f..d75af9089 100644 --- a/spring-data-neo4j-rest/src/test/java/org/springframework/data/graph/neo4j/rest/support/LocalTestServer.java +++ b/spring-data-neo4j-rest/src/test/java/org/springframework/data/graph/neo4j/rest/support/LocalTestServer.java @@ -19,7 +19,8 @@ package org.springframework.data.graph.neo4j.rest.support; import org.apache.commons.configuration.Configuration; import org.neo4j.graphdb.GraphDatabaseService; import org.neo4j.kernel.AbstractGraphDatabase; -import org.neo4j.kernel.ImpermanentGraphDatabase; +import org.neo4j.server.configuration.PropertyFileConfigurator; +import org.neo4j.test.ImpermanentGraphDatabase; import org.neo4j.server.AddressResolver; import org.neo4j.server.Bootstrapper; import org.neo4j.server.NeoServerWithEmbeddedWebServer; @@ -97,7 +98,7 @@ public class LocalTestServer { } }; neoServer = new NeoServerWithEmbeddedWebServer(bootstrapper - , addressResolver, new StartupHealthCheck(), new File(url.getPath()), new Jetty6WebServer(), serverModules) { + , addressResolver, new StartupHealthCheck(), new PropertyFileConfigurator(new File(url.getPath())), new Jetty6WebServer(), serverModules) { @Override protected int getWebServerPort() { return port; diff --git a/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/template/Neo4jTemplateApiTest.java b/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/template/Neo4jTemplateApiTest.java index 345caf979..cabeb979c 100644 --- a/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/template/Neo4jTemplateApiTest.java +++ b/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/template/Neo4jTemplateApiTest.java @@ -24,7 +24,7 @@ import org.junit.Before; import org.junit.Test; import org.neo4j.graphdb.*; import org.neo4j.graphdb.index.Index; -import org.neo4j.kernel.ImpermanentGraphDatabase; +import org.neo4j.test.ImpermanentGraphDatabase; import org.neo4j.kernel.Traversal; import org.neo4j.kernel.impl.transaction.SpringTransactionManager; import org.springframework.dao.DataAccessException; diff --git a/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/template/NeoApiTest.java b/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/template/NeoApiTest.java index b59f6f6b3..b0c61e77b 100644 --- a/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/template/NeoApiTest.java +++ b/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/template/NeoApiTest.java @@ -19,7 +19,7 @@ package org.springframework.data.graph.neo4j.template; import org.junit.After; import org.junit.Before; import org.neo4j.graphdb.GraphDatabaseService; -import org.neo4j.kernel.ImpermanentGraphDatabase; +import org.neo4j.test.ImpermanentGraphDatabase; import org.neo4j.kernel.impl.transaction.SpringTransactionManager; import org.springframework.data.graph.core.GraphDatabase; import org.springframework.data.graph.neo4j.support.DelegatingGraphDatabase; 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 f8e214502..8f9ad5cba 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 @@ -81,7 +81,7 @@ - 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 d2e588f98..d369aed08 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 @@ -77,7 +77,7 @@ -