diff --git a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repositories/domain/Movie.java b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/domain/sample/Movie.java similarity index 93% rename from spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repositories/domain/Movie.java rename to spring-data-neo4j/src/test/java/org/springframework/data/neo4j/domain/sample/Movie.java index eb55d281c..2f23a72b6 100644 --- a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repositories/domain/Movie.java +++ b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/domain/sample/Movie.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.data.neo4j.repositories.domain; +package org.springframework.data.neo4j.domain.sample; /** * @author Michal Bachman diff --git a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/domain/sample/User.java b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/domain/sample/User.java index 41a63869d..9270d98f8 100644 --- a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/domain/sample/User.java +++ b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/domain/sample/User.java @@ -15,9 +15,11 @@ */ package org.springframework.data.neo4j.domain.sample; +import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.HashSet; +import java.util.List; import java.util.Set; import org.neo4j.ogm.annotation.GeneratedValue; @@ -28,8 +30,9 @@ import org.neo4j.ogm.annotation.Version; import org.neo4j.ogm.annotation.typeconversion.DateString; /** - * Domain class representing a person emphasizing the use of {@code AbstractEntity}. No declaration of an id is - * required. The id is typed by the parameterizable superclass. + * @author Mark Angrish + * @author Gerrit Meier + * @author Michael Simons */ @NodeEntity public class User { @@ -64,6 +67,8 @@ public class User { @DateString private Date dateOfBirth; + private List friends = new ArrayList<>(); + /** * Creates a new empty instance of {@code User}. */ @@ -71,6 +76,10 @@ public class User { this(null, null, null); } + public User(String lastname) { + this(null, lastname, null); + } + /** * Creates a new instance of {@code User} with preinitialized values for firstname, lastname, email address and roles. * @@ -364,4 +373,8 @@ public class User { return "User: " + getId() + ", " + getFirstname() + " " + getLastname() + ", " + getEmailAddress(); } + + public List getFriends() { + return friends; + } } diff --git a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repositories/domain/User.java b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repositories/domain/User.java deleted file mode 100644 index 894fe5eec..000000000 --- a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repositories/domain/User.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright 2011-2020 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 - * - * https://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.repositories.domain; - -import java.util.ArrayList; -import java.util.List; - -/** - * @author Michal Bachman - * @author Vince Bickers - */ -public class User { - - private Long id; - private String name; - - private List friends = new ArrayList<>(); - - public User() {} - - public Long getId() { - return this.id; - } - - public User(String name) { - this.name = name; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public List getFriends() { - return friends; - } - - public void setFriends(List friends) { - this.friends = friends; - } - -} diff --git a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repositories/repo/UserRepository.java b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repositories/repo/UserRepository.java deleted file mode 100644 index 2830ff35f..000000000 --- a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repositories/repo/UserRepository.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright 2011-2020 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 - * - * https://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.repositories.repo; - -import java.util.List; - -import org.springframework.data.neo4j.repositories.domain.User; -import org.springframework.data.neo4j.repository.Neo4jRepository; -import org.springframework.stereotype.Repository; - -/** - * @author Michal Bachman - * @author Vince Bickers - */ -@Repository -public interface UserRepository extends Neo4jRepository { - - /* - * @see DATAGRAPH-813 - */ - Long deleteByName(String name); // return a count of deleted objects by name - - /* - * @see DATAGRAPH-813 - */ - List removeByName(String name); // remove users by name and return an iterable of the removed users' ids - - /* - * @see DATAGRAPH-813 - */ - Long countByName(String name); // return a count of objects with name - -} diff --git a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/relcentric/MinimalRelationshipEntityMappingTests.java b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/MinimalRelationshipEntityMappingTests.java similarity index 88% rename from spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/relcentric/MinimalRelationshipEntityMappingTests.java rename to spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/MinimalRelationshipEntityMappingTests.java index 7f932f776..aac34f776 100644 --- a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/relcentric/MinimalRelationshipEntityMappingTests.java +++ b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/MinimalRelationshipEntityMappingTests.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.data.neo4j.repository.relcentric; +package org.springframework.data.neo4j.repository; import static org.assertj.core.api.Assertions.assertThat; @@ -27,12 +27,12 @@ import org.junit.runner.RunWith; import org.neo4j.ogm.session.SessionFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; -import org.springframework.data.neo4j.repository.relcentric.app.Actor; -import org.springframework.data.neo4j.repository.relcentric.app.Country; -import org.springframework.data.neo4j.repository.relcentric.app.Genre; -import org.springframework.data.neo4j.repository.relcentric.app.Movie; -import org.springframework.data.neo4j.repository.relcentric.app.Role; -import org.springframework.data.neo4j.repository.relcentric.app.RoleRepository; +import org.springframework.data.neo4j.repository.sample.relcentric.Actor; +import org.springframework.data.neo4j.repository.sample.relcentric.Country; +import org.springframework.data.neo4j.repository.sample.relcentric.Genre; +import org.springframework.data.neo4j.repository.sample.relcentric.Movie; +import org.springframework.data.neo4j.repository.sample.relcentric.Role; +import org.springframework.data.neo4j.repository.sample.relcentric.RoleRepository; import org.springframework.data.neo4j.test.Neo4jIntegrationTest; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringRunner; @@ -118,7 +118,7 @@ public class MinimalRelationshipEntityMappingTests { } @Configuration - @Neo4jIntegrationTest(domainPackages = "org.springframework.data.neo4j.repository.relcentric.app") + @Neo4jIntegrationTest(domainPackages = "org.springframework.data.neo4j.repository.sample.relcentric") static class Config { } } diff --git a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/Neo4jRepositoryTests.java b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/Neo4jRepositoryTests.java index b7f081905..7c95bd308 100644 --- a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/Neo4jRepositoryTests.java +++ b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/Neo4jRepositoryTests.java @@ -93,13 +93,13 @@ public class Neo4jRepositoryTests { } @Configuration - @Neo4jIntegrationTest(domainPackages = "org.springframework.data.neo4j.domain.sample") + @Neo4jIntegrationTest(domainPackages = "org.springframework.data.neo4j.domain.sample", considerNestedRepositories = true) static class Config {} -} - -interface SampleEntityRepository extends Neo4jRepository {} - -interface NodeWithUUIDAsIdRepository extends Neo4jRepository { - - Optional findOneByMyNiceIdAndSomeProperty(UUID id, String someProperty); + + interface SampleEntityRepository extends Neo4jRepository {} + + interface NodeWithUUIDAsIdRepository extends Neo4jRepository { + + Optional findOneByMyNiceIdAndSomeProperty(UUID id, String someProperty); + } } diff --git a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repositories/ProgrammaticRepositoryTests.java b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/ProgrammaticRepositoryTests.java similarity index 90% rename from spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repositories/ProgrammaticRepositoryTests.java rename to spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/ProgrammaticRepositoryTests.java index c63b1e9ad..9bc7984ce 100644 --- a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repositories/ProgrammaticRepositoryTests.java +++ b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/ProgrammaticRepositoryTests.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.data.neo4j.repositories; +package org.springframework.data.neo4j.repository; import static org.assertj.core.api.Assertions.assertThat; import static org.springframework.data.neo4j.test.GraphDatabaseServiceAssert.assertThat; @@ -33,10 +33,10 @@ import org.neo4j.harness.TestServerBuilders; import org.neo4j.ogm.config.Configuration; import org.neo4j.ogm.session.Session; import org.neo4j.ogm.session.SessionFactory; -import org.springframework.data.neo4j.repositories.domain.Movie; -import org.springframework.data.neo4j.repositories.domain.User; -import org.springframework.data.neo4j.repositories.repo.MovieRepository; -import org.springframework.data.neo4j.repositories.repo.UserRepository; +import org.springframework.data.neo4j.domain.sample.User; +import org.springframework.data.neo4j.domain.sample.Movie; +import org.springframework.data.neo4j.repository.sample.repo.MovieRepository; +import org.springframework.data.neo4j.repository.sample.repo.UserRepository; import org.springframework.data.neo4j.repository.support.Neo4jRepositoryFactory; import org.springframework.data.neo4j.transaction.Neo4jTransactionManager; import org.springframework.data.repository.core.support.RepositoryFactorySupport; @@ -68,7 +68,7 @@ public class ProgrammaticRepositoryTests { Configuration configuration = new Configuration.Builder() // .uri(serverControls.boltURI().toString()) // .build(); - sessionFactory = new SessionFactory(configuration, "org.springframework.data.neo4j.repositories.domain"); + sessionFactory = new SessionFactory(configuration, "org.springframework.data.neo4j.domain.sample"); PlatformTransactionManager platformTransactionManager = new Neo4jTransactionManager(sessionFactory); transactionTemplate = new TransactionTemplate(platformTransactionManager); @@ -143,12 +143,11 @@ public class ProgrammaticRepositoryTests { UserRepository userRepository = factory.getRepository(UserRepository.class); User userA = new User("A"); - userA.setName("A"); userRepository.save(userA); assertThat(userRepository.count()).isEqualTo(1); - assertThat(userRepository.deleteByName("A")).isEqualTo(new Long(1)); + assertThat(userRepository.deleteByLastname("A")).isEqualTo(new Long(1)); assertThat(userRepository.count()).isEqualTo(0); } @@ -167,7 +166,7 @@ public class ProgrammaticRepositoryTests { assertThat(userRepository.count()).isEqualTo(2); - List deletedUserIds = userRepository.removeByName("A"); + List deletedUserIds = userRepository.removeByLastname("A"); assertThat(deletedUserIds.size()).isEqualTo(2); Assertions.assertThat(deletedUserIds).containsExactlyInAnyOrder(userA.getId(), userAClone.getId()); @@ -192,7 +191,7 @@ public class ProgrammaticRepositoryTests { assertThat(userRepository.count()).isEqualTo(2); - userRepository.deleteByName("A"); + userRepository.deleteByLastname("A"); assertThat(userRepository.count()).isEqualTo(1); } @@ -205,10 +204,9 @@ public class ProgrammaticRepositoryTests { UserRepository userRepository = factory.getRepository(UserRepository.class); User userA = new User("A"); - userA.setName("A"); userRepository.save(userA); - assertThat(userRepository.countByName("A")).isEqualTo(new Long(1)); + assertThat(userRepository.countByLastname("A")).isEqualTo(new Long(1)); } } diff --git a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repositories/RepoScanningTests.java b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/RepoScanningTests.java similarity index 86% rename from spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repositories/RepoScanningTests.java rename to spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/RepoScanningTests.java index afb280d64..99b921955 100644 --- a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repositories/RepoScanningTests.java +++ b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/RepoScanningTests.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.data.neo4j.repositories; +package org.springframework.data.neo4j.repository; import static org.springframework.data.neo4j.test.GraphDatabaseServiceAssert.*; @@ -26,8 +26,8 @@ import org.junit.runner.RunWith; import org.neo4j.graphdb.GraphDatabaseService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; -import org.springframework.data.neo4j.repositories.domain.User; -import org.springframework.data.neo4j.repositories.repo.UserRepository; +import org.springframework.data.neo4j.domain.sample.User; +import org.springframework.data.neo4j.repository.sample.repo.UserRepository; import org.springframework.data.neo4j.test.Neo4jIntegrationTest; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringRunner; @@ -57,15 +57,15 @@ public class RepoScanningTests { userRepository.save(user); Map params = new HashMap<>(); - params.put("name", user.getName()); + params.put("name", user.getLastname()); assertThat(graphDatabaseService) - .containsNode("MATCH (n:User {name: $name}) RETURN n", params) + .containsNode("MATCH (n:User {lastname: $name}) RETURN n", params) .withId(user.getId()); } @Configuration - @Neo4jIntegrationTest(domainPackages = "org.springframework.data.neo4j.repositories.domain") + @Neo4jIntegrationTest(domainPackages = "org.springframework.data.neo4j.domain.sample") static class PersistenceContextInTheSamePackage {} } diff --git a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repositories/RepositoryDefinitionTests.java b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/RepositoryDefinitionTests.java similarity index 90% rename from spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repositories/RepositoryDefinitionTests.java rename to spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/RepositoryDefinitionTests.java index 27b1c5b2d..2f09f1ad4 100644 --- a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repositories/RepositoryDefinitionTests.java +++ b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/RepositoryDefinitionTests.java @@ -13,10 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.data.neo4j.repositories; +package org.springframework.data.neo4j.repository; import static org.assertj.core.api.Assertions.assertThat; -import static org.springframework.data.neo4j.test.GraphDatabaseServiceAssert.*; import java.util.HashMap; import java.util.Map; @@ -28,8 +27,8 @@ import org.junit.runner.RunWith; import org.neo4j.graphdb.GraphDatabaseService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; -import org.springframework.data.neo4j.repositories.domain.Movie; -import org.springframework.data.neo4j.repositories.repo.MovieRepository; +import org.springframework.data.neo4j.domain.sample.Movie; +import org.springframework.data.neo4j.repository.sample.repo.MovieRepository; import org.springframework.data.neo4j.test.GraphDatabaseServiceAssert; import org.springframework.data.neo4j.test.Neo4jIntegrationTest; import org.springframework.test.context.ContextConfiguration; @@ -80,8 +79,8 @@ public class RepositoryDefinitionTests { } @Configuration - @Neo4jIntegrationTest(domainPackages = "org.springframework.data.neo4j.repositories.domain", - repositoryPackages = "org.springframework.data.neo4j.repositories.repo") + @Neo4jIntegrationTest(domainPackages = "org.springframework.data.neo4j.domain.sample", + repositoryPackages = "org.springframework.data.neo4j.repository.sample.repo") static class RepositoriesTestContext {} } diff --git a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/config/Neo4jRepositoriesRegistrarTests.java b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/config/Neo4jRepositoriesRegistrarTests.java index ef4e713a6..140ac41aa 100644 --- a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/config/Neo4jRepositoriesRegistrarTests.java +++ b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/config/Neo4jRepositoriesRegistrarTests.java @@ -21,11 +21,11 @@ import org.junit.Before; import org.junit.Test; import org.springframework.beans.factory.support.BeanDefinitionRegistry; import org.springframework.beans.factory.support.DefaultListableBeanFactory; +import org.springframework.context.annotation.ConfigurationClassPostProcessor; import org.springframework.core.env.StandardEnvironment; import org.springframework.core.io.DefaultResourceLoader; import org.springframework.core.type.AnnotationMetadata; -import org.springframework.core.type.StandardAnnotationMetadata; -import org.springframework.data.neo4j.repository.sample.UserRepository; +import org.springframework.data.neo4j.repository.sample.repo.UserRepository; import static org.assertj.core.api.Assertions.assertThat; @@ -42,7 +42,7 @@ public class Neo4jRepositoriesRegistrarTests { @Before public void setUp() { - metadata = new StandardAnnotationMetadata(Config.class, true); + metadata = AnnotationMetadata.introspect(Config.class); registry = new DefaultListableBeanFactory(); } @@ -52,7 +52,7 @@ public class Neo4jRepositoriesRegistrarTests { Neo4jRepositoriesRegistrar registrar = new Neo4jRepositoriesRegistrar(); registrar.setResourceLoader(new DefaultResourceLoader()); registrar.setEnvironment(new StandardEnvironment()); - registrar.registerBeanDefinitions(metadata, registry); + registrar.registerBeanDefinitions(metadata, registry, ConfigurationClassPostProcessor.IMPORT_BEAN_NAME_GENERATOR); Iterable names = Arrays.asList(registry.getBeanDefinitionNames()); assertThat(names).contains("userRepository"); diff --git a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/Contact.java b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/sample/domain/Contact.java similarity index 92% rename from spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/Contact.java rename to spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/sample/domain/Contact.java index 95e65fc43..ef11bc242 100644 --- a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/Contact.java +++ b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/sample/domain/Contact.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.data.neo4j.repository; +package org.springframework.data.neo4j.repository.sample.domain; import java.util.UUID; @@ -23,7 +23,7 @@ import org.neo4j.ogm.annotation.Index; import org.neo4j.ogm.annotation.NodeEntity; /** - * Created by markangrish on 24/03/2017. + * @author Mark Angrish */ @NodeEntity public abstract class Contact { diff --git a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/relcentric/app/Actor.java b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/sample/relcentric/Actor.java similarity index 94% rename from spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/relcentric/app/Actor.java rename to spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/sample/relcentric/Actor.java index 52f545987..b3e4b1e21 100644 --- a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/relcentric/app/Actor.java +++ b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/sample/relcentric/Actor.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.data.neo4j.repository.relcentric.app; +package org.springframework.data.neo4j.repository.sample.relcentric; import java.util.ArrayList; import java.util.List; diff --git a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/relcentric/app/Country.java b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/sample/relcentric/Country.java similarity index 92% rename from spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/relcentric/app/Country.java rename to spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/sample/relcentric/Country.java index cf34fce00..be75d9ccf 100644 --- a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/relcentric/app/Country.java +++ b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/sample/relcentric/Country.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.data.neo4j.repository.relcentric.app; +package org.springframework.data.neo4j.repository.sample.relcentric; /** * @author Michael J. Simons diff --git a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/relcentric/app/Genre.java b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/sample/relcentric/Genre.java similarity index 93% rename from spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/relcentric/app/Genre.java rename to spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/sample/relcentric/Genre.java index e19a2973f..4928a1f45 100644 --- a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/relcentric/app/Genre.java +++ b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/sample/relcentric/Genre.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.data.neo4j.repository.relcentric.app; +package org.springframework.data.neo4j.repository.sample.relcentric; /** * @author Michael J. Simons diff --git a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/relcentric/app/Movie.java b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/sample/relcentric/Movie.java similarity index 93% rename from spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/relcentric/app/Movie.java rename to spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/sample/relcentric/Movie.java index 388bcb919..06ff046bc 100644 --- a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/relcentric/app/Movie.java +++ b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/sample/relcentric/Movie.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.data.neo4j.repository.relcentric.app; +package org.springframework.data.neo4j.repository.sample.relcentric; import org.neo4j.ogm.annotation.Relationship; diff --git a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/relcentric/app/Role.java b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/sample/relcentric/Role.java similarity index 94% rename from spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/relcentric/app/Role.java rename to spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/sample/relcentric/Role.java index d19c02db9..d3c8ad0a2 100644 --- a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/relcentric/app/Role.java +++ b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/sample/relcentric/Role.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.data.neo4j.repository.relcentric.app; +package org.springframework.data.neo4j.repository.sample.relcentric; import org.neo4j.ogm.annotation.EndNode; import org.neo4j.ogm.annotation.RelationshipEntity; diff --git a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/relcentric/app/RoleRepository.java b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/sample/relcentric/RoleRepository.java similarity index 93% rename from spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/relcentric/app/RoleRepository.java rename to spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/sample/relcentric/RoleRepository.java index 3ea112348..60f17329b 100644 --- a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/relcentric/app/RoleRepository.java +++ b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/sample/relcentric/RoleRepository.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.data.neo4j.repository.relcentric.app; +package org.springframework.data.neo4j.repository.sample.relcentric; import java.util.List; diff --git a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/ContactRepository.java b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/sample/repo/ContactRepository.java similarity index 75% rename from spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/ContactRepository.java rename to spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/sample/repo/ContactRepository.java index 64ba383a1..89bd66caa 100644 --- a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/ContactRepository.java +++ b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/sample/repo/ContactRepository.java @@ -13,11 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.data.neo4j.repository; +package org.springframework.data.neo4j.repository.sample.repo; + +import org.springframework.data.neo4j.repository.Neo4jRepository; +import org.springframework.data.neo4j.repository.sample.domain.Contact; /** - * Created by markangrish on 24/03/2017. + * @author Mark Angrish */ public interface ContactRepository extends Neo4jRepository { - } diff --git a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repositories/repo/MovieRepository.java b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/sample/repo/MovieRepository.java similarity index 87% rename from spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repositories/repo/MovieRepository.java rename to spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/sample/repo/MovieRepository.java index 5423133ca..c93bafc2d 100644 --- a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repositories/repo/MovieRepository.java +++ b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/sample/repo/MovieRepository.java @@ -13,9 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.data.neo4j.repositories.repo; +package org.springframework.data.neo4j.repository.sample.repo; -import org.springframework.data.neo4j.repositories.domain.Movie; +import org.springframework.data.neo4j.domain.sample.Movie; import org.springframework.data.repository.RepositoryDefinition; /** diff --git a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/sample/UserRepository.java b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/sample/repo/UserRepository.java similarity index 74% rename from spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/sample/UserRepository.java rename to spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/sample/repo/UserRepository.java index bd9df923a..0678b6241 100644 --- a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/sample/UserRepository.java +++ b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/sample/repo/UserRepository.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.data.neo4j.repository.sample; +package org.springframework.data.neo4j.repository.sample.repo; import java.util.List; import java.util.Optional; @@ -23,17 +23,25 @@ import org.springframework.data.neo4j.domain.sample.User; import org.springframework.data.neo4j.repository.Neo4jRepository; import org.springframework.data.repository.CrudRepository; import org.springframework.data.repository.query.Param; +import org.springframework.stereotype.Repository; import org.springframework.transaction.annotation.Transactional; /** - * Repository interface for {@code User}s. - * - * @author Mark Angrish - * @author Mark Paluch - * @author Jens Schauder + * @author Michal Bachman + * @author Vince Bickers */ +@Repository public interface UserRepository extends Neo4jRepository { + // DATAGRAPH-813 + Long deleteByLastname(String name); // return a count of deleted objects by name + + // DATAGRAPH-813 + List removeByLastname(String name); // remove users by name and return an iterable of the removed users' ids + + // DATAGRAPH-813 + Long countByLastname(String name); // return a count of objects with name + /** * Retrieve users by their lastname. The finder {@literal User.findByLastname} is declared in * {@literal META-INF/orm.xml} . @@ -44,14 +52,14 @@ public interface UserRepository extends Neo4jRepository { List findByLastname(String lastname); /** - * Redeclaration of {@link CrudRepository#findOne(java.io.Serializable)} to change transaction configuration. + * Redeclaration of {@link CrudRepository#findById(Object)} (java.io.Serializable)} to change transaction configuration. */ @Override @Transactional Optional findById(Long primaryKey); /** - * Redeclaration of {@link CrudRepository#delete(java.io.Serializable)}. to make sure the transaction configuration of + * Redeclaration of {@link CrudRepository#deleteById(Object)} (java.io.Serializable)}. to make sure the transaction configuration of * the original method is considered if the redeclaration does not carry a {@link Transactional} annotation. */ @Override diff --git a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/support/DefaultTransactionDisablingIntegrationTests.java b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/support/DefaultTransactionDisablingIntegrationTests.java index 0657e791f..5ea352fc1 100644 --- a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/support/DefaultTransactionDisablingIntegrationTests.java +++ b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/support/DefaultTransactionDisablingIntegrationTests.java @@ -23,7 +23,7 @@ import org.springframework.context.annotation.Configuration; import org.springframework.dao.InvalidDataAccessApiUsageException; import org.springframework.data.domain.PageRequest; import org.springframework.data.neo4j.domain.sample.User; -import org.springframework.data.neo4j.repository.sample.UserRepository; +import org.springframework.data.neo4j.repository.sample.repo.UserRepository; import org.springframework.data.neo4j.test.Neo4jIntegrationTest; import org.springframework.data.neo4j.transaction.Neo4jTransactionManager; import org.springframework.test.context.ContextConfiguration; diff --git a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/support/Neo4jRepositoryFactoryBeanTests.java b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/support/Neo4jRepositoryFactoryBeanTests.java index 6aaa77401..dd7beaa4d 100644 --- a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/support/Neo4jRepositoryFactoryBeanTests.java +++ b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/support/Neo4jRepositoryFactoryBeanTests.java @@ -28,7 +28,7 @@ import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.ListableBeanFactory; import org.springframework.data.mapping.context.MappingContext; import org.springframework.data.neo4j.mapping.MetaDataProvider; -import org.springframework.data.neo4j.repository.ContactRepository; +import org.springframework.data.neo4j.repository.sample.repo.ContactRepository; /** * @author Mark Angrish @@ -58,11 +58,9 @@ public class Neo4jRepositoryFactoryBeanTests { /** * Assert that the instance created for the standard configuration is a valid {@code UserRepository}. - * - * @throws Exception */ @Test - public void setsUpBasicInstanceCorrectly() throws Exception { + public void setsUpBasicInstanceCorrectly() { factoryBean.setBeanFactory(beanFactory); factoryBean.afterPropertiesSet(); @@ -71,7 +69,7 @@ public class Neo4jRepositoryFactoryBeanTests { } @Test(expected = IllegalArgumentException.class) - public void requiresListableBeanFactory() throws Exception { + public void requiresListableBeanFactory() { factoryBean.setBeanFactory(mock(BeanFactory.class)); } diff --git a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repositories/support/GraphRepositoryFactoryTests.java b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/support/Neo4jRepositoryFactoryTests.java similarity index 96% rename from spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repositories/support/GraphRepositoryFactoryTests.java rename to spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/support/Neo4jRepositoryFactoryTests.java index 184aa3c2d..009c06a07 100644 --- a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repositories/support/GraphRepositoryFactoryTests.java +++ b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/support/Neo4jRepositoryFactoryTests.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.data.neo4j.repositories.support; +package org.springframework.data.neo4j.repository.support; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.*; @@ -42,7 +42,7 @@ import org.springframework.transaction.annotation.Transactional; * @author Jens Schauder * @author Michael J. Simons */ -public class GraphRepositoryFactoryTests { +public class Neo4jRepositoryFactoryTests { Neo4jRepositoryFactory factory; diff --git a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/support/TransactionalRepositoryTests.java b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/support/TransactionalRepositoryTests.java index 974aa3904..730c0db50 100644 --- a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/support/TransactionalRepositoryTests.java +++ b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/support/TransactionalRepositoryTests.java @@ -24,7 +24,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.neo4j.domain.sample.User; -import org.springframework.data.neo4j.repository.sample.UserRepository; +import org.springframework.data.neo4j.repository.sample.repo.UserRepository; import org.springframework.data.neo4j.test.Neo4jIntegrationTest; import org.springframework.data.neo4j.transaction.Neo4jTransactionManager; import org.springframework.test.context.ContextConfiguration; diff --git a/src/main/asciidoc/reference/projections.adoc b/src/main/asciidoc/reference/projections.adoc index e26d62d77..30e2496c0 100644 --- a/src/main/asciidoc/reference/projections.adoc +++ b/src/main/asciidoc/reference/projections.adoc @@ -20,7 +20,8 @@ public class Cinema { @Relationship(type = "BLOCKBUSTER", direction = Relationship.OUTGOING) private Movie blockbusterOfTheWeek; - … + + // … } ---- @@ -53,10 +54,10 @@ There are several ways to avoid that : ==== [source,java] ---- -public interface CinemaNameAndBlockbuster { <1> +public interface CinemaNameAndBlockbuster { // <1> - public String getName(); <2> - public Movie getBlockbusterOfTheWeek(); + String getName(); // <2> + Movie getBlockbusterOfTheWeek(); } ---- This projection has the following details: @@ -99,13 +100,13 @@ Look at the following projection interface: ==== [source,java] ---- -interface RenamedProperty { <1> +interface RenamedProperty { // <1> @Value("#{target.name}") - String getCinemaName(); <2> + String getCinemaName(); // <2> @Value("#{target.blockbusterOfTheWeek.name}") - String getBlockbusterOfTheWeekName(); <3> + String getBlockbusterOfTheWeekName(); // <3> } ---- This projection has the following details: