From ea64c99c339a27d1fae374431a82e91d51ec9bf9 Mon Sep 17 00:00:00 2001 From: Andrey Date: Wed, 16 May 2012 07:42:54 +0400 Subject: [PATCH 1/5] DATAGRAPH-123: Compile time errors OpenJDK. Helped OpenJDK to deduce generic param types. --- .../data/neo4j/support/mapping/Neo4jEntityConverterImpl.java | 4 ++-- .../data/neo4j/support/mapping/Neo4jEntityFetchHandler.java | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/support/mapping/Neo4jEntityConverterImpl.java b/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/support/mapping/Neo4jEntityConverterImpl.java index da6d63205..c93aa5956 100644 --- a/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/support/mapping/Neo4jEntityConverterImpl.java +++ b/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/support/mapping/Neo4jEntityConverterImpl.java @@ -95,7 +95,7 @@ public class Neo4jEntityConverterImpl implements @Override public R loadEntity(R entity, S source, MappingPolicy mappingPolicy, Neo4jPersistentEntityImpl persistentEntity, final Neo4jTemplate template) { if (mappingPolicy.shouldLoad()) { - final BeanWrapper, R> wrapper = BeanWrapper.create(entity, conversionService); + final BeanWrapper, R> wrapper = BeanWrapper., R>create(entity, conversionService); sourceStateTransmitter.copyPropertiesFrom(wrapper, source, persistentEntity,mappingPolicy, template); // 6) handle cascading fetches cascadeFetch(persistentEntity, wrapper, mappingPolicy, template); @@ -141,7 +141,7 @@ public class Neo4jEntityConverterImpl implements return; } - final BeanWrapper, T> wrapper = BeanWrapper.create(source, conversionService); + final BeanWrapper, T> wrapper = BeanWrapper., T>create(source, conversionService); if (sink == null) { sink = entityStateHandler.useOrCreateState(source,sink); // todo handling of changed state entityStateHandler.setPersistentState(source, sink); diff --git a/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/support/mapping/Neo4jEntityFetchHandler.java b/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/support/mapping/Neo4jEntityFetchHandler.java index 4e487da5b..37a663ee9 100644 --- a/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/support/mapping/Neo4jEntityFetchHandler.java +++ b/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/support/mapping/Neo4jEntityFetchHandler.java @@ -55,7 +55,7 @@ public class Neo4jEntityFetchHandler { if (property.getTypeInformation().isCollectionLike()) { List replacement = new ArrayList(); for (Object inner : ((Iterable) value)) { - final BeanWrapper, Object> innerWrapper = BeanWrapper.create(inner, conversionService); + final BeanWrapper, Object> innerWrapper = BeanWrapper., Object>create(inner, conversionService); final PropertyContainer state = entityStateHandler.getPersistentState(inner); fetchValue(innerWrapper, state, persistentEntity, mappingPolicy, template); replacement.add(inner); @@ -63,7 +63,7 @@ public class Neo4jEntityFetchHandler { } return replacement; } else { - final BeanWrapper, Object> innerWrapper = BeanWrapper.create(value, conversionService); + final BeanWrapper, Object> innerWrapper = BeanWrapper., Object>create(value, conversionService); final PropertyContainer state = entityStateHandler.getPersistentState(value); fetchValue(innerWrapper, state, persistentEntity, mappingPolicy, template); // sourceStateTransmitter.copyPropertiesFrom(innerWrapper, entityStateHandler.getPersistentState(value), persistentEntity); From c73c05abdaecc5508e843728ffd5b2d67dbac107 Mon Sep 17 00:00:00 2001 From: Michael Hunger Date: Thu, 24 May 2012 09:46:58 +0200 Subject: [PATCH 2/5] #49 transactional rate method in CineastsUserDetailsService --- .../org/neo4j/cineasts/controller/MovieController.java | 10 ++-------- .../cineasts/service/CineastsUserDetailsService.java | 9 +++++++++ 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/spring-data-neo4j-examples/cineasts-aspects/src/main/java/org/neo4j/cineasts/controller/MovieController.java b/spring-data-neo4j-examples/cineasts-aspects/src/main/java/org/neo4j/cineasts/controller/MovieController.java index 249e42a9c..f98793225 100644 --- a/spring-data-neo4j-examples/cineasts-aspects/src/main/java/org/neo4j/cineasts/controller/MovieController.java +++ b/spring-data-neo4j-examples/cineasts-aspects/src/main/java/org/neo4j/cineasts/controller/MovieController.java @@ -6,10 +6,8 @@ import org.neo4j.cineasts.domain.Rating; import org.neo4j.cineasts.domain.User; import org.neo4j.cineasts.repository.MovieRepository; import org.neo4j.cineasts.repository.PersonRepository; -import org.neo4j.cineasts.service.CineastsRepository; import org.neo4j.cineasts.service.CineastsUserDetailsService; import org.neo4j.cineasts.service.DatabasePopulator; -import org.neo4j.helpers.collection.IteratorUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -62,7 +60,7 @@ public class MovieController { model.addAttribute("stars", stars); Rating rating = null; if (user!=null) rating = movie.getRelationshipTo(user, Rating.class, "RATED"); - if (rating == null) rating = new Rating().rate(stars,null); + if (rating == null) rating = new Rating().rate(stars, null); model.addAttribute("userRating",rating); } return "/movies/show"; @@ -72,11 +70,7 @@ public class MovieController { public String updateMovie(Model model, @PathVariable String movieId, @RequestParam(value = "rated",required = false) Integer stars, @RequestParam(value = "comment",required = false) String comment) { Movie movie = movieRepository.findById(movieId); User user = userDetailsService.getUserFromSession(); - if (user != null && movie != null) { - int stars1 = stars==null ? -1 : stars; - String comment1 = comment!=null ? comment.trim() : null; - user.rate(movie, stars1, comment1); - } + userDetailsService.rate(user, movie, stars, comment); return singleMovieView(model,movieId); } diff --git a/spring-data-neo4j-examples/cineasts-aspects/src/main/java/org/neo4j/cineasts/service/CineastsUserDetailsService.java b/spring-data-neo4j-examples/cineasts-aspects/src/main/java/org/neo4j/cineasts/service/CineastsUserDetailsService.java index 3f4e81a67..094dc040c 100644 --- a/spring-data-neo4j-examples/cineasts-aspects/src/main/java/org/neo4j/cineasts/service/CineastsUserDetailsService.java +++ b/spring-data-neo4j-examples/cineasts-aspects/src/main/java/org/neo4j/cineasts/service/CineastsUserDetailsService.java @@ -1,5 +1,6 @@ package org.neo4j.cineasts.service; +import org.neo4j.cineasts.domain.Movie; import org.neo4j.cineasts.domain.User; import org.neo4j.cineasts.repository.UserRepository; import org.springframework.beans.factory.annotation.Autowired; @@ -74,4 +75,12 @@ public class CineastsUserDetailsService implements UserDetailsService { user.addFriend(friend); } } + + @Transactional + public void rate(User user, Movie movie, Integer stars, String comment) { + if (user == null || movie == null) return; + int stars1 = stars==null ? -1 : stars; + String comment1 = comment!=null ? comment.trim() : null; + user.rate(movie, stars1, comment1); + } } From 88283ba93c9772dc439c04c5c72227d4217da3e9 Mon Sep 17 00:00:00 2001 From: Michael Hunger Date: Thu, 24 May 2012 09:47:44 +0200 Subject: [PATCH 3/5] fixed cypher syntax in documentation --- src/docbkx/reference/programming-model/node-entities.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/docbkx/reference/programming-model/node-entities.xml b/src/docbkx/reference/programming-model/node-entities.xml index d51453549..54f148aca 100644 --- a/src/docbkx/reference/programming-model/node-entities.xml +++ b/src/docbkx/reference/programming-model/node-entities.xml @@ -119,7 +119,7 @@ public class Movie { @Graph on a node entity field (friend) where r.type = {relType} return friend", + @Query(value = "start n=node({self}) match (n)-[r]->(friend) where r.type = {relType} return friend", params = {"relType", "FRIEND"}) private Iterable friends; } From 0ab715c3d745daa1a82c4c19d65ab6af9908b995 Mon Sep 17 00:00:00 2001 From: Michael Hunger Date: Thu, 24 May 2012 10:47:32 +0200 Subject: [PATCH 4/5] fixed mappinginfrastructure setup for NodeEntityInstantiator --- .../support/MappingInfrastructureFactoryBean.java | 3 +++ .../data/neo4j/template/Neo4jTemplateApiTest.java | 10 ++++++++++ 2 files changed, 13 insertions(+) diff --git a/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/support/MappingInfrastructureFactoryBean.java b/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/support/MappingInfrastructureFactoryBean.java index 7d8f33b78..6cfb62ef2 100644 --- a/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/support/MappingInfrastructureFactoryBean.java +++ b/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/support/MappingInfrastructureFactoryBean.java @@ -108,6 +108,9 @@ public class MappingInfrastructureFactoryBean implements FactoryBean Date: Thu, 24 May 2012 10:47:57 +0200 Subject: [PATCH 5/5] updated documentation on starting Neo4j server on top of embedded database --- src/docbkx/reference/setup.xml | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/docbkx/reference/setup.xml b/src/docbkx/reference/setup.xml index f37c3d0d7..1a8cc056f 100644 --- a/src/docbkx/reference/setup.xml +++ b/src/docbkx/reference/setup.xml @@ -258,7 +258,7 @@ repositories { ]]> - XML configuration with GraphDatabaseService bean + XML configuration with <ulink url="http://docs.neo4j.org/chunked/milestone/server-embedded.html">embedded Neo4j-Server</ulink> -]]> + + +// also add the static server-assets dependency to your pom.xml + + org.neo4j.app + neo4j-server + static-web + ${neo4j-version} + +]]>