From 0ddb2ba0d6529f0554d498bb72bab5d01b33b6ac Mon Sep 17 00:00:00 2001 From: Oliver Gierke Date: Tue, 22 Apr 2014 14:48:00 +0200 Subject: [PATCH] Added showcase for JDK 8's Optional support on repository methods. Abbreviated JPA sample module folder names. Renamed the Java 8 auditing sample module to Java 8 module as it not only contains samples for auditing anymore. --- .../pom.xml | 6 +++++ .../jpa/auditing/AuditableUser.java | 0 .../jpa/auditing/AuditableUserRepository.java | 0 .../jpa/auditing/AuditingConfiguration.java | 0 .../jpa/auditing/AuditorAwareImpl.java | 0 .../springdata/jpa/auditing/package-info.java | 0 .../jpa/caching/CachingConfiguration.java | 0 .../jpa/caching/CachingUserRepository.java | 0 .../example/springdata/jpa/caching/User.java | 0 .../springdata/jpa/caching/package-info.java | 0 .../jpa/custom/CustomRepositoryConfig.java | 0 .../example/springdata/jpa/custom/User.java | 0 .../springdata/jpa/custom/UserRepository.java | 0 .../jpa/custom/UserRepositoryCustom.java | 0 .../jpa/custom/UserRepositoryImpl.java | 0 .../jpa/custom/UserRepositoryImplJdbc.java | 0 .../springdata/jpa/custom/package-info.java | 0 .../jpa/simple/SimpleConfiguration.java | 0 .../jpa/simple/SimpleUserRepository.java | 4 ++++ .../example/springdata/jpa/simple/User.java | 0 .../springdata/jpa/simple/package-info.java | 0 .../src/main/resources/META-INF/orm.xml | 0 .../jpa/auditing/AuditableUserSample.java | 0 .../jpa/basics/BasicFactorySetup.java | 0 .../springdata/jpa/basics/BasicSample.java | 0 .../springdata/jpa/basics/package-info.java | 0 .../jpa/caching/CachingRepositoryTests.java | 0 .../UserRepositoryCustomizationTests.java | 0 .../jpa/simple/SimpleUserRepositoryTests.java | 24 ++++++++++++------- .../test/resources/META-INF/persistence.xml | 0 .../src/test/resources/logback.xml | 0 .../pom.xml | 0 .../ApplicationConfiguration.java | 0 .../springdata/jpa/interceptors/Customer.java | 0 .../jpa/interceptors/CustomerRepository.java | 0 .../InterceptorIntegrationTest.java | 0 .../src/test/resources/logback.xml | 0 jpa/java8/README.md | 23 ++++++++++++++++++ .../pom.xml | 4 ++-- .../springdata/jpa/java8/AbstractEntity.java | 0 .../jpa/java8/AuditingConfiguration.java | 5 ++-- .../springdata/jpa/java8/Customer.java | 0 .../jpa/java8/CustomerRepository.java | 16 ++++++++++++- .../src/main/resources/META-INF/orm.xml | 0 .../jpa/java8/Java8IntegrationTests.java} | 15 +++++++++++- .../src/test/resources/logback.xml | 0 jpa/pom.xml | 17 +++++++++---- .../README.txt | 0 .../demo.txt | 0 .../pom.xml | 0 .../jpa/showcase/after/AccountRepository.java | 0 .../showcase/after/CustomerRepository.java | 0 .../jpa/showcase/before/AccountService.java | 0 .../showcase/before/AccountServiceImpl.java | 0 .../jpa/showcase/before/CustomerService.java | 0 .../showcase/before/CustomerServiceImpl.java | 0 .../springdata/jpa/showcase/core/Account.java | 0 .../jpa/showcase/core/Customer.java | 0 .../src/main/resources/data.sql | 0 .../showcase/snippets/AccountPredicates.java | 0 .../showcase/snippets/AccountRepository.java | 0 .../snippets/AccountRepositoryCustom.java | 0 .../snippets/AccountRepositoryImpl.java | 0 .../snippets/AccountRepositoryJdbcImpl.java | 0 .../snippets/CustomerSpecifications.java | 0 .../src/snippets/resources/jdbc.xml | 0 .../AccountRepositoryIntegrationTest.java | 0 .../CustomerRepositoryIntegrationTest.java | 0 .../jpa/showcase/AbstractShowcaseTest.java | 0 .../AccountRepositoryIntegrationTest.java | 0 .../CustomerRepositoryIntegrationTest.java | 0 .../before/AccountServiceIntegrationTest.java | 0 .../CustomerServiceIntegrationTest.java | 0 .../src/test/resources/logback.xml | 0 74 files changed, 95 insertions(+), 19 deletions(-) rename jpa/{spring-data-jpa-example => example}/pom.xml (88%) rename jpa/{spring-data-jpa-example => example}/src/main/java/example/springdata/jpa/auditing/AuditableUser.java (100%) rename jpa/{spring-data-jpa-example => example}/src/main/java/example/springdata/jpa/auditing/AuditableUserRepository.java (100%) rename jpa/{spring-data-jpa-example => example}/src/main/java/example/springdata/jpa/auditing/AuditingConfiguration.java (100%) rename jpa/{spring-data-jpa-example => example}/src/main/java/example/springdata/jpa/auditing/AuditorAwareImpl.java (100%) rename jpa/{spring-data-jpa-example => example}/src/main/java/example/springdata/jpa/auditing/package-info.java (100%) rename jpa/{spring-data-jpa-example => example}/src/main/java/example/springdata/jpa/caching/CachingConfiguration.java (100%) rename jpa/{spring-data-jpa-example => example}/src/main/java/example/springdata/jpa/caching/CachingUserRepository.java (100%) rename jpa/{spring-data-jpa-example => example}/src/main/java/example/springdata/jpa/caching/User.java (100%) rename jpa/{spring-data-jpa-example => example}/src/main/java/example/springdata/jpa/caching/package-info.java (100%) rename jpa/{spring-data-jpa-example => example}/src/main/java/example/springdata/jpa/custom/CustomRepositoryConfig.java (100%) rename jpa/{spring-data-jpa-example => example}/src/main/java/example/springdata/jpa/custom/User.java (100%) rename jpa/{spring-data-jpa-example => example}/src/main/java/example/springdata/jpa/custom/UserRepository.java (100%) rename jpa/{spring-data-jpa-example => example}/src/main/java/example/springdata/jpa/custom/UserRepositoryCustom.java (100%) rename jpa/{spring-data-jpa-example => example}/src/main/java/example/springdata/jpa/custom/UserRepositoryImpl.java (100%) rename jpa/{spring-data-jpa-example => example}/src/main/java/example/springdata/jpa/custom/UserRepositoryImplJdbc.java (100%) rename jpa/{spring-data-jpa-example => example}/src/main/java/example/springdata/jpa/custom/package-info.java (100%) rename jpa/{spring-data-jpa-example => example}/src/main/java/example/springdata/jpa/simple/SimpleConfiguration.java (100%) rename jpa/{spring-data-jpa-example => example}/src/main/java/example/springdata/jpa/simple/SimpleUserRepository.java (96%) rename jpa/{spring-data-jpa-example => example}/src/main/java/example/springdata/jpa/simple/User.java (100%) rename jpa/{spring-data-jpa-example => example}/src/main/java/example/springdata/jpa/simple/package-info.java (100%) rename jpa/{spring-data-jpa-example => example}/src/main/resources/META-INF/orm.xml (100%) rename jpa/{spring-data-jpa-example => example}/src/test/java/example/springdata/jpa/auditing/AuditableUserSample.java (100%) rename jpa/{spring-data-jpa-example => example}/src/test/java/example/springdata/jpa/basics/BasicFactorySetup.java (100%) rename jpa/{spring-data-jpa-example => example}/src/test/java/example/springdata/jpa/basics/BasicSample.java (100%) rename jpa/{spring-data-jpa-example => example}/src/test/java/example/springdata/jpa/basics/package-info.java (100%) rename jpa/{spring-data-jpa-example => example}/src/test/java/example/springdata/jpa/caching/CachingRepositoryTests.java (100%) rename jpa/{spring-data-jpa-example => example}/src/test/java/example/springdata/jpa/custom/UserRepositoryCustomizationTests.java (100%) rename jpa/{spring-data-jpa-example => example}/src/test/java/example/springdata/jpa/simple/SimpleUserRepositoryTests.java (81%) rename jpa/{spring-data-jpa-example => example}/src/test/resources/META-INF/persistence.xml (100%) rename jpa/{spring-data-jpa-example => example}/src/test/resources/logback.xml (100%) rename jpa/{spring-data-jpa-interceptors => interceptors}/pom.xml (100%) rename jpa/{spring-data-jpa-interceptors => interceptors}/src/main/java/example/springdata/jpa/interceptors/ApplicationConfiguration.java (100%) rename jpa/{spring-data-jpa-interceptors => interceptors}/src/main/java/example/springdata/jpa/interceptors/Customer.java (100%) rename jpa/{spring-data-jpa-interceptors => interceptors}/src/main/java/example/springdata/jpa/interceptors/CustomerRepository.java (100%) rename jpa/{spring-data-jpa-interceptors => interceptors}/src/test/java/example/springdata/jpa/interceptors/InterceptorIntegrationTest.java (100%) rename jpa/{spring-data-jpa-interceptors => interceptors}/src/test/resources/logback.xml (100%) create mode 100644 jpa/java8/README.md rename jpa/{spring-data-jpa-java8-auditing => java8}/pom.xml (84%) rename jpa/{spring-data-jpa-java8-auditing => java8}/src/main/java/example/springdata/jpa/java8/AbstractEntity.java (100%) rename jpa/{spring-data-jpa-java8-auditing => java8}/src/main/java/example/springdata/jpa/java8/AuditingConfiguration.java (94%) rename jpa/{spring-data-jpa-java8-auditing => java8}/src/main/java/example/springdata/jpa/java8/Customer.java (100%) rename jpa/{spring-data-jpa-java8-auditing => java8}/src/main/java/example/springdata/jpa/java8/CustomerRepository.java (62%) rename jpa/{spring-data-jpa-java8-auditing => java8}/src/main/resources/META-INF/orm.xml (100%) rename jpa/{spring-data-jpa-java8-auditing/src/test/java/example/springdata/jpa/java8/Java8AuditingIntegrationTests.java => java8/src/test/java/example/springdata/jpa/java8/Java8IntegrationTests.java} (78%) rename jpa/{spring-data-jpa-java8-auditing => java8}/src/test/resources/logback.xml (100%) rename jpa/{spring-data-jpa-showcase => showcase}/README.txt (100%) rename jpa/{spring-data-jpa-showcase => showcase}/demo.txt (100%) rename jpa/{spring-data-jpa-showcase => showcase}/pom.xml (100%) rename jpa/{spring-data-jpa-showcase => showcase}/src/main/java/example/springdata/jpa/showcase/after/AccountRepository.java (100%) rename jpa/{spring-data-jpa-showcase => showcase}/src/main/java/example/springdata/jpa/showcase/after/CustomerRepository.java (100%) rename jpa/{spring-data-jpa-showcase => showcase}/src/main/java/example/springdata/jpa/showcase/before/AccountService.java (100%) rename jpa/{spring-data-jpa-showcase => showcase}/src/main/java/example/springdata/jpa/showcase/before/AccountServiceImpl.java (100%) rename jpa/{spring-data-jpa-showcase => showcase}/src/main/java/example/springdata/jpa/showcase/before/CustomerService.java (100%) rename jpa/{spring-data-jpa-showcase => showcase}/src/main/java/example/springdata/jpa/showcase/before/CustomerServiceImpl.java (100%) rename jpa/{spring-data-jpa-showcase => showcase}/src/main/java/example/springdata/jpa/showcase/core/Account.java (100%) rename jpa/{spring-data-jpa-showcase => showcase}/src/main/java/example/springdata/jpa/showcase/core/Customer.java (100%) rename jpa/{spring-data-jpa-showcase => showcase}/src/main/resources/data.sql (100%) rename jpa/{spring-data-jpa-showcase => showcase}/src/snippets/java/example/springdata/jpa/showcase/snippets/AccountPredicates.java (100%) rename jpa/{spring-data-jpa-showcase => showcase}/src/snippets/java/example/springdata/jpa/showcase/snippets/AccountRepository.java (100%) rename jpa/{spring-data-jpa-showcase => showcase}/src/snippets/java/example/springdata/jpa/showcase/snippets/AccountRepositoryCustom.java (100%) rename jpa/{spring-data-jpa-showcase => showcase}/src/snippets/java/example/springdata/jpa/showcase/snippets/AccountRepositoryImpl.java (100%) rename jpa/{spring-data-jpa-showcase => showcase}/src/snippets/java/example/springdata/jpa/showcase/snippets/AccountRepositoryJdbcImpl.java (100%) rename jpa/{spring-data-jpa-showcase => showcase}/src/snippets/java/example/springdata/jpa/showcase/snippets/CustomerSpecifications.java (100%) rename jpa/{spring-data-jpa-showcase => showcase}/src/snippets/resources/jdbc.xml (100%) rename jpa/{spring-data-jpa-showcase => showcase}/src/test-snippets/java/example/springdata/jpa/showcase/snippets/test/AccountRepositoryIntegrationTest.java (100%) rename jpa/{spring-data-jpa-showcase => showcase}/src/test-snippets/java/example/springdata/jpa/showcase/snippets/test/CustomerRepositoryIntegrationTest.java (100%) rename jpa/{spring-data-jpa-showcase => showcase}/src/test/java/example/springdata/jpa/showcase/AbstractShowcaseTest.java (100%) rename jpa/{spring-data-jpa-showcase => showcase}/src/test/java/example/springdata/jpa/showcase/after/AccountRepositoryIntegrationTest.java (100%) rename jpa/{spring-data-jpa-showcase => showcase}/src/test/java/example/springdata/jpa/showcase/after/CustomerRepositoryIntegrationTest.java (100%) rename jpa/{spring-data-jpa-showcase => showcase}/src/test/java/example/springdata/jpa/showcase/before/AccountServiceIntegrationTest.java (100%) rename jpa/{spring-data-jpa-showcase => showcase}/src/test/java/example/springdata/jpa/showcase/before/CustomerServiceIntegrationTest.java (100%) rename jpa/{spring-data-jpa-showcase => showcase}/src/test/resources/logback.xml (100%) diff --git a/jpa/spring-data-jpa-example/pom.xml b/jpa/example/pom.xml similarity index 88% rename from jpa/spring-data-jpa-example/pom.xml rename to jpa/example/pom.xml index 9115e231..05e7144a 100644 --- a/jpa/spring-data-jpa-example/pom.xml +++ b/jpa/example/pom.xml @@ -20,6 +20,12 @@ org.springframework spring-aspects + + + com.google.guava + guava + 16.0.1 + diff --git a/jpa/spring-data-jpa-example/src/main/java/example/springdata/jpa/auditing/AuditableUser.java b/jpa/example/src/main/java/example/springdata/jpa/auditing/AuditableUser.java similarity index 100% rename from jpa/spring-data-jpa-example/src/main/java/example/springdata/jpa/auditing/AuditableUser.java rename to jpa/example/src/main/java/example/springdata/jpa/auditing/AuditableUser.java diff --git a/jpa/spring-data-jpa-example/src/main/java/example/springdata/jpa/auditing/AuditableUserRepository.java b/jpa/example/src/main/java/example/springdata/jpa/auditing/AuditableUserRepository.java similarity index 100% rename from jpa/spring-data-jpa-example/src/main/java/example/springdata/jpa/auditing/AuditableUserRepository.java rename to jpa/example/src/main/java/example/springdata/jpa/auditing/AuditableUserRepository.java diff --git a/jpa/spring-data-jpa-example/src/main/java/example/springdata/jpa/auditing/AuditingConfiguration.java b/jpa/example/src/main/java/example/springdata/jpa/auditing/AuditingConfiguration.java similarity index 100% rename from jpa/spring-data-jpa-example/src/main/java/example/springdata/jpa/auditing/AuditingConfiguration.java rename to jpa/example/src/main/java/example/springdata/jpa/auditing/AuditingConfiguration.java diff --git a/jpa/spring-data-jpa-example/src/main/java/example/springdata/jpa/auditing/AuditorAwareImpl.java b/jpa/example/src/main/java/example/springdata/jpa/auditing/AuditorAwareImpl.java similarity index 100% rename from jpa/spring-data-jpa-example/src/main/java/example/springdata/jpa/auditing/AuditorAwareImpl.java rename to jpa/example/src/main/java/example/springdata/jpa/auditing/AuditorAwareImpl.java diff --git a/jpa/spring-data-jpa-example/src/main/java/example/springdata/jpa/auditing/package-info.java b/jpa/example/src/main/java/example/springdata/jpa/auditing/package-info.java similarity index 100% rename from jpa/spring-data-jpa-example/src/main/java/example/springdata/jpa/auditing/package-info.java rename to jpa/example/src/main/java/example/springdata/jpa/auditing/package-info.java diff --git a/jpa/spring-data-jpa-example/src/main/java/example/springdata/jpa/caching/CachingConfiguration.java b/jpa/example/src/main/java/example/springdata/jpa/caching/CachingConfiguration.java similarity index 100% rename from jpa/spring-data-jpa-example/src/main/java/example/springdata/jpa/caching/CachingConfiguration.java rename to jpa/example/src/main/java/example/springdata/jpa/caching/CachingConfiguration.java diff --git a/jpa/spring-data-jpa-example/src/main/java/example/springdata/jpa/caching/CachingUserRepository.java b/jpa/example/src/main/java/example/springdata/jpa/caching/CachingUserRepository.java similarity index 100% rename from jpa/spring-data-jpa-example/src/main/java/example/springdata/jpa/caching/CachingUserRepository.java rename to jpa/example/src/main/java/example/springdata/jpa/caching/CachingUserRepository.java diff --git a/jpa/spring-data-jpa-example/src/main/java/example/springdata/jpa/caching/User.java b/jpa/example/src/main/java/example/springdata/jpa/caching/User.java similarity index 100% rename from jpa/spring-data-jpa-example/src/main/java/example/springdata/jpa/caching/User.java rename to jpa/example/src/main/java/example/springdata/jpa/caching/User.java diff --git a/jpa/spring-data-jpa-example/src/main/java/example/springdata/jpa/caching/package-info.java b/jpa/example/src/main/java/example/springdata/jpa/caching/package-info.java similarity index 100% rename from jpa/spring-data-jpa-example/src/main/java/example/springdata/jpa/caching/package-info.java rename to jpa/example/src/main/java/example/springdata/jpa/caching/package-info.java diff --git a/jpa/spring-data-jpa-example/src/main/java/example/springdata/jpa/custom/CustomRepositoryConfig.java b/jpa/example/src/main/java/example/springdata/jpa/custom/CustomRepositoryConfig.java similarity index 100% rename from jpa/spring-data-jpa-example/src/main/java/example/springdata/jpa/custom/CustomRepositoryConfig.java rename to jpa/example/src/main/java/example/springdata/jpa/custom/CustomRepositoryConfig.java diff --git a/jpa/spring-data-jpa-example/src/main/java/example/springdata/jpa/custom/User.java b/jpa/example/src/main/java/example/springdata/jpa/custom/User.java similarity index 100% rename from jpa/spring-data-jpa-example/src/main/java/example/springdata/jpa/custom/User.java rename to jpa/example/src/main/java/example/springdata/jpa/custom/User.java diff --git a/jpa/spring-data-jpa-example/src/main/java/example/springdata/jpa/custom/UserRepository.java b/jpa/example/src/main/java/example/springdata/jpa/custom/UserRepository.java similarity index 100% rename from jpa/spring-data-jpa-example/src/main/java/example/springdata/jpa/custom/UserRepository.java rename to jpa/example/src/main/java/example/springdata/jpa/custom/UserRepository.java diff --git a/jpa/spring-data-jpa-example/src/main/java/example/springdata/jpa/custom/UserRepositoryCustom.java b/jpa/example/src/main/java/example/springdata/jpa/custom/UserRepositoryCustom.java similarity index 100% rename from jpa/spring-data-jpa-example/src/main/java/example/springdata/jpa/custom/UserRepositoryCustom.java rename to jpa/example/src/main/java/example/springdata/jpa/custom/UserRepositoryCustom.java diff --git a/jpa/spring-data-jpa-example/src/main/java/example/springdata/jpa/custom/UserRepositoryImpl.java b/jpa/example/src/main/java/example/springdata/jpa/custom/UserRepositoryImpl.java similarity index 100% rename from jpa/spring-data-jpa-example/src/main/java/example/springdata/jpa/custom/UserRepositoryImpl.java rename to jpa/example/src/main/java/example/springdata/jpa/custom/UserRepositoryImpl.java diff --git a/jpa/spring-data-jpa-example/src/main/java/example/springdata/jpa/custom/UserRepositoryImplJdbc.java b/jpa/example/src/main/java/example/springdata/jpa/custom/UserRepositoryImplJdbc.java similarity index 100% rename from jpa/spring-data-jpa-example/src/main/java/example/springdata/jpa/custom/UserRepositoryImplJdbc.java rename to jpa/example/src/main/java/example/springdata/jpa/custom/UserRepositoryImplJdbc.java diff --git a/jpa/spring-data-jpa-example/src/main/java/example/springdata/jpa/custom/package-info.java b/jpa/example/src/main/java/example/springdata/jpa/custom/package-info.java similarity index 100% rename from jpa/spring-data-jpa-example/src/main/java/example/springdata/jpa/custom/package-info.java rename to jpa/example/src/main/java/example/springdata/jpa/custom/package-info.java diff --git a/jpa/spring-data-jpa-example/src/main/java/example/springdata/jpa/simple/SimpleConfiguration.java b/jpa/example/src/main/java/example/springdata/jpa/simple/SimpleConfiguration.java similarity index 100% rename from jpa/spring-data-jpa-example/src/main/java/example/springdata/jpa/simple/SimpleConfiguration.java rename to jpa/example/src/main/java/example/springdata/jpa/simple/SimpleConfiguration.java diff --git a/jpa/spring-data-jpa-example/src/main/java/example/springdata/jpa/simple/SimpleUserRepository.java b/jpa/example/src/main/java/example/springdata/jpa/simple/SimpleUserRepository.java similarity index 96% rename from jpa/spring-data-jpa-example/src/main/java/example/springdata/jpa/simple/SimpleUserRepository.java rename to jpa/example/src/main/java/example/springdata/jpa/simple/SimpleUserRepository.java index 952286eb..8a984dcd 100644 --- a/jpa/spring-data-jpa-example/src/main/java/example/springdata/jpa/simple/SimpleUserRepository.java +++ b/jpa/example/src/main/java/example/springdata/jpa/simple/SimpleUserRepository.java @@ -21,6 +21,8 @@ import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.CrudRepository; import org.springframework.data.repository.query.Param; +import com.google.common.base.Optional; + /** * Simple repository interface for {@link User} instances. The interface is used to declare so called query methods, * methods to retrieve single entities or collections of them. @@ -39,6 +41,8 @@ public interface SimpleUserRepository extends CrudRepository { */ User findByTheUsersName(String username); + Optional findByUsername(String username); + /** * Find all users with the given lastname. This method will be translated into a query by constructing it directly * from the method name as there is no other query declared. diff --git a/jpa/spring-data-jpa-example/src/main/java/example/springdata/jpa/simple/User.java b/jpa/example/src/main/java/example/springdata/jpa/simple/User.java similarity index 100% rename from jpa/spring-data-jpa-example/src/main/java/example/springdata/jpa/simple/User.java rename to jpa/example/src/main/java/example/springdata/jpa/simple/User.java diff --git a/jpa/spring-data-jpa-example/src/main/java/example/springdata/jpa/simple/package-info.java b/jpa/example/src/main/java/example/springdata/jpa/simple/package-info.java similarity index 100% rename from jpa/spring-data-jpa-example/src/main/java/example/springdata/jpa/simple/package-info.java rename to jpa/example/src/main/java/example/springdata/jpa/simple/package-info.java diff --git a/jpa/spring-data-jpa-example/src/main/resources/META-INF/orm.xml b/jpa/example/src/main/resources/META-INF/orm.xml similarity index 100% rename from jpa/spring-data-jpa-example/src/main/resources/META-INF/orm.xml rename to jpa/example/src/main/resources/META-INF/orm.xml diff --git a/jpa/spring-data-jpa-example/src/test/java/example/springdata/jpa/auditing/AuditableUserSample.java b/jpa/example/src/test/java/example/springdata/jpa/auditing/AuditableUserSample.java similarity index 100% rename from jpa/spring-data-jpa-example/src/test/java/example/springdata/jpa/auditing/AuditableUserSample.java rename to jpa/example/src/test/java/example/springdata/jpa/auditing/AuditableUserSample.java diff --git a/jpa/spring-data-jpa-example/src/test/java/example/springdata/jpa/basics/BasicFactorySetup.java b/jpa/example/src/test/java/example/springdata/jpa/basics/BasicFactorySetup.java similarity index 100% rename from jpa/spring-data-jpa-example/src/test/java/example/springdata/jpa/basics/BasicFactorySetup.java rename to jpa/example/src/test/java/example/springdata/jpa/basics/BasicFactorySetup.java diff --git a/jpa/spring-data-jpa-example/src/test/java/example/springdata/jpa/basics/BasicSample.java b/jpa/example/src/test/java/example/springdata/jpa/basics/BasicSample.java similarity index 100% rename from jpa/spring-data-jpa-example/src/test/java/example/springdata/jpa/basics/BasicSample.java rename to jpa/example/src/test/java/example/springdata/jpa/basics/BasicSample.java diff --git a/jpa/spring-data-jpa-example/src/test/java/example/springdata/jpa/basics/package-info.java b/jpa/example/src/test/java/example/springdata/jpa/basics/package-info.java similarity index 100% rename from jpa/spring-data-jpa-example/src/test/java/example/springdata/jpa/basics/package-info.java rename to jpa/example/src/test/java/example/springdata/jpa/basics/package-info.java diff --git a/jpa/spring-data-jpa-example/src/test/java/example/springdata/jpa/caching/CachingRepositoryTests.java b/jpa/example/src/test/java/example/springdata/jpa/caching/CachingRepositoryTests.java similarity index 100% rename from jpa/spring-data-jpa-example/src/test/java/example/springdata/jpa/caching/CachingRepositoryTests.java rename to jpa/example/src/test/java/example/springdata/jpa/caching/CachingRepositoryTests.java diff --git a/jpa/spring-data-jpa-example/src/test/java/example/springdata/jpa/custom/UserRepositoryCustomizationTests.java b/jpa/example/src/test/java/example/springdata/jpa/custom/UserRepositoryCustomizationTests.java similarity index 100% rename from jpa/spring-data-jpa-example/src/test/java/example/springdata/jpa/custom/UserRepositoryCustomizationTests.java rename to jpa/example/src/test/java/example/springdata/jpa/custom/UserRepositoryCustomizationTests.java diff --git a/jpa/spring-data-jpa-example/src/test/java/example/springdata/jpa/simple/SimpleUserRepositoryTests.java b/jpa/example/src/test/java/example/springdata/jpa/simple/SimpleUserRepositoryTests.java similarity index 81% rename from jpa/spring-data-jpa-example/src/test/java/example/springdata/jpa/simple/SimpleUserRepositoryTests.java rename to jpa/example/src/test/java/example/springdata/jpa/simple/SimpleUserRepositoryTests.java index c012b209..fb19ad3d 100644 --- a/jpa/spring-data-jpa-example/src/test/java/example/springdata/jpa/simple/SimpleUserRepositoryTests.java +++ b/jpa/example/src/test/java/example/springdata/jpa/simple/SimpleUserRepositoryTests.java @@ -15,6 +15,7 @@ */ package example.springdata.jpa.simple; +import static org.hamcrest.CoreMatchers.*; import static org.junit.Assert.*; import java.util.List; @@ -27,10 +28,6 @@ import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.transaction.annotation.Transactional; -import example.springdata.jpa.simple.SimpleConfiguration; -import example.springdata.jpa.simple.SimpleUserRepository; -import example.springdata.jpa.simple.User; - /** * Intergration test showing the basic usage of {@link SimpleUserRepository}. * @@ -47,6 +44,7 @@ public class SimpleUserRepositoryTests { @Before public void setUp() { + user = new User(); user.setUsername("foobar"); user.setFirstname("firstname"); @@ -58,7 +56,7 @@ public class SimpleUserRepositoryTests { user = repository.save(user); - assertEquals(user, repository.findOne(user.getId())); + assertThat(repository.findOne(user.getId()), is(user)); } @Test @@ -68,8 +66,8 @@ public class SimpleUserRepositoryTests { List users = repository.findByLastname("lastname"); - assertNotNull(users); - assertTrue(users.contains(user)); + assertThat(users, is(notNullValue())); + assertThat(users.contains(user), is(true)); } @Test @@ -79,6 +77,16 @@ public class SimpleUserRepositoryTests { List users = repository.findByFirstnameOrLastname("lastname"); - assertTrue(users.contains(user)); + assertThat(users.contains(user), is(true)); + } + + @Test + public void useGuavaOptionalInsteadOfNulls() { + + assertThat(repository.findByUsername("foobar").isPresent(), is(false)); + + repository.save(user); + + assertThat(repository.findByUsername("foobar").isPresent(), is(true)); } } diff --git a/jpa/spring-data-jpa-example/src/test/resources/META-INF/persistence.xml b/jpa/example/src/test/resources/META-INF/persistence.xml similarity index 100% rename from jpa/spring-data-jpa-example/src/test/resources/META-INF/persistence.xml rename to jpa/example/src/test/resources/META-INF/persistence.xml diff --git a/jpa/spring-data-jpa-example/src/test/resources/logback.xml b/jpa/example/src/test/resources/logback.xml similarity index 100% rename from jpa/spring-data-jpa-example/src/test/resources/logback.xml rename to jpa/example/src/test/resources/logback.xml diff --git a/jpa/spring-data-jpa-interceptors/pom.xml b/jpa/interceptors/pom.xml similarity index 100% rename from jpa/spring-data-jpa-interceptors/pom.xml rename to jpa/interceptors/pom.xml diff --git a/jpa/spring-data-jpa-interceptors/src/main/java/example/springdata/jpa/interceptors/ApplicationConfiguration.java b/jpa/interceptors/src/main/java/example/springdata/jpa/interceptors/ApplicationConfiguration.java similarity index 100% rename from jpa/spring-data-jpa-interceptors/src/main/java/example/springdata/jpa/interceptors/ApplicationConfiguration.java rename to jpa/interceptors/src/main/java/example/springdata/jpa/interceptors/ApplicationConfiguration.java diff --git a/jpa/spring-data-jpa-interceptors/src/main/java/example/springdata/jpa/interceptors/Customer.java b/jpa/interceptors/src/main/java/example/springdata/jpa/interceptors/Customer.java similarity index 100% rename from jpa/spring-data-jpa-interceptors/src/main/java/example/springdata/jpa/interceptors/Customer.java rename to jpa/interceptors/src/main/java/example/springdata/jpa/interceptors/Customer.java diff --git a/jpa/spring-data-jpa-interceptors/src/main/java/example/springdata/jpa/interceptors/CustomerRepository.java b/jpa/interceptors/src/main/java/example/springdata/jpa/interceptors/CustomerRepository.java similarity index 100% rename from jpa/spring-data-jpa-interceptors/src/main/java/example/springdata/jpa/interceptors/CustomerRepository.java rename to jpa/interceptors/src/main/java/example/springdata/jpa/interceptors/CustomerRepository.java diff --git a/jpa/spring-data-jpa-interceptors/src/test/java/example/springdata/jpa/interceptors/InterceptorIntegrationTest.java b/jpa/interceptors/src/test/java/example/springdata/jpa/interceptors/InterceptorIntegrationTest.java similarity index 100% rename from jpa/spring-data-jpa-interceptors/src/test/java/example/springdata/jpa/interceptors/InterceptorIntegrationTest.java rename to jpa/interceptors/src/test/java/example/springdata/jpa/interceptors/InterceptorIntegrationTest.java diff --git a/jpa/spring-data-jpa-interceptors/src/test/resources/logback.xml b/jpa/interceptors/src/test/resources/logback.xml similarity index 100% rename from jpa/spring-data-jpa-interceptors/src/test/resources/logback.xml rename to jpa/interceptors/src/test/resources/logback.xml diff --git a/jpa/java8/README.md b/jpa/java8/README.md new file mode 100644 index 00000000..4d762d6f --- /dev/null +++ b/jpa/java8/README.md @@ -0,0 +1,23 @@ +# Spring Data - Java 8 examples + +This project contains samples of Java 8 specific features of Spring Data (JPA). + +## Support for JDK 8's `Optional` for repository methods + +```java +interface CustomerRepository extends Repository { + + // CRUD method using Optional + Optional findOne(Long id); + + // Query method using Optional + Optional findByLastname(String lastname); +} +``` + +* `CustomerRepository.findOne(Long)` effectively "overrides" the default `CrudRepository.findOne(…)` to return `Optional.empty()` instead of `null` in case no uniqe element satisfying the query can be found. +* `CustomerRepository.findByLastname(…)` does the same for a normal query method. + +## Support for JDK 8's date/time types in the auditing sub-system + +* `Customer` extends `AbstractEntity` which contains fields of JDK 8's new date/time API and those can be populated the same way legacy types like `Date` and `Calendar` can. \ No newline at end of file diff --git a/jpa/spring-data-jpa-java8-auditing/pom.xml b/jpa/java8/pom.xml similarity index 84% rename from jpa/spring-data-jpa-java8-auditing/pom.xml rename to jpa/java8/pom.xml index 23a2291d..5d2561fa 100644 --- a/jpa/spring-data-jpa-java8-auditing/pom.xml +++ b/jpa/java8/pom.xml @@ -8,8 +8,8 @@ 1.0.0.BUILD-SNAPSHOT - spring-data-jpa-java8-auditing - Spring Data JPA - Auditing on Java 8 + spring-data-jpa-java8 + Spring Data JPA - Java 8 specific features diff --git a/jpa/spring-data-jpa-java8-auditing/src/main/java/example/springdata/jpa/java8/AbstractEntity.java b/jpa/java8/src/main/java/example/springdata/jpa/java8/AbstractEntity.java similarity index 100% rename from jpa/spring-data-jpa-java8-auditing/src/main/java/example/springdata/jpa/java8/AbstractEntity.java rename to jpa/java8/src/main/java/example/springdata/jpa/java8/AbstractEntity.java diff --git a/jpa/spring-data-jpa-java8-auditing/src/main/java/example/springdata/jpa/java8/AuditingConfiguration.java b/jpa/java8/src/main/java/example/springdata/jpa/java8/AuditingConfiguration.java similarity index 94% rename from jpa/spring-data-jpa-java8-auditing/src/main/java/example/springdata/jpa/java8/AuditingConfiguration.java rename to jpa/java8/src/main/java/example/springdata/jpa/java8/AuditingConfiguration.java index ee296a7f..882c3f9d 100644 --- a/jpa/spring-data-jpa-java8-auditing/src/main/java/example/springdata/jpa/java8/AuditingConfiguration.java +++ b/jpa/java8/src/main/java/example/springdata/jpa/java8/AuditingConfiguration.java @@ -21,6 +21,7 @@ import org.springframework.data.jpa.repository.config.EnableJpaAuditing; @Configuration @EnableAutoConfiguration -@EnableJpaAuditing class AuditingConfiguration { +@EnableJpaAuditing +class AuditingConfiguration { -} \ No newline at end of file +} diff --git a/jpa/spring-data-jpa-java8-auditing/src/main/java/example/springdata/jpa/java8/Customer.java b/jpa/java8/src/main/java/example/springdata/jpa/java8/Customer.java similarity index 100% rename from jpa/spring-data-jpa-java8-auditing/src/main/java/example/springdata/jpa/java8/Customer.java rename to jpa/java8/src/main/java/example/springdata/jpa/java8/Customer.java diff --git a/jpa/spring-data-jpa-java8-auditing/src/main/java/example/springdata/jpa/java8/CustomerRepository.java b/jpa/java8/src/main/java/example/springdata/jpa/java8/CustomerRepository.java similarity index 62% rename from jpa/spring-data-jpa-java8-auditing/src/main/java/example/springdata/jpa/java8/CustomerRepository.java rename to jpa/java8/src/main/java/example/springdata/jpa/java8/CustomerRepository.java index 5ca47de4..d4113f42 100644 --- a/jpa/spring-data-jpa-java8-auditing/src/main/java/example/springdata/jpa/java8/CustomerRepository.java +++ b/jpa/java8/src/main/java/example/springdata/jpa/java8/CustomerRepository.java @@ -15,11 +15,25 @@ */ package example.springdata.jpa.java8; +import java.util.Optional; + import org.springframework.data.repository.CrudRepository; +import org.springframework.data.repository.Repository; /** + * Repository to manage {@link Customer} instances. + * * @author Oliver Gierke */ -public interface CustomerRepository extends CrudRepository { +public interface CustomerRepository extends Repository { + /** + * Special customization of {@link CrudRepository#findOne(java.io.Serializable)} to return a JDK 8 {@link Optional}. + * + * @param id + * @return + */ + Optional findOne(Long id); + + S save(S customer); } diff --git a/jpa/spring-data-jpa-java8-auditing/src/main/resources/META-INF/orm.xml b/jpa/java8/src/main/resources/META-INF/orm.xml similarity index 100% rename from jpa/spring-data-jpa-java8-auditing/src/main/resources/META-INF/orm.xml rename to jpa/java8/src/main/resources/META-INF/orm.xml diff --git a/jpa/spring-data-jpa-java8-auditing/src/test/java/example/springdata/jpa/java8/Java8AuditingIntegrationTests.java b/jpa/java8/src/test/java/example/springdata/jpa/java8/Java8IntegrationTests.java similarity index 78% rename from jpa/spring-data-jpa-java8-auditing/src/test/java/example/springdata/jpa/java8/Java8AuditingIntegrationTests.java rename to jpa/java8/src/test/java/example/springdata/jpa/java8/Java8IntegrationTests.java index 8d55cafe..7a8d8f76 100644 --- a/jpa/spring-data-jpa-java8-auditing/src/test/java/example/springdata/jpa/java8/Java8AuditingIntegrationTests.java +++ b/jpa/java8/src/test/java/example/springdata/jpa/java8/Java8IntegrationTests.java @@ -18,11 +18,14 @@ package example.springdata.jpa.java8; import static org.hamcrest.CoreMatchers.*; import static org.junit.Assert.*; +import java.util.Optional; + import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.transaction.annotation.Transactional; /** * Integration test to show the usage of Java 8 date time APIs with Spring Data JPA auditing. @@ -31,10 +34,20 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; */ @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = AuditingConfiguration.class) -public class Java8AuditingIntegrationTests { +@Transactional +public class Java8IntegrationTests { @Autowired CustomerRepository repository; + @Test + public void providesFindOneWithOptional() { + + Customer carter = repository.save(new Customer("Carter", "Beauford")); + + assertThat(repository.findOne(carter.id).isPresent(), is(true)); + assertThat(repository.findOne(carter.id + 1), is(Optional. empty())); + } + @Test public void auditingSetsJdk8DateTimeTypes() { diff --git a/jpa/spring-data-jpa-java8-auditing/src/test/resources/logback.xml b/jpa/java8/src/test/resources/logback.xml similarity index 100% rename from jpa/spring-data-jpa-java8-auditing/src/test/resources/logback.xml rename to jpa/java8/src/test/resources/logback.xml diff --git a/jpa/pom.xml b/jpa/pom.xml index 3dcc38e1..5b738ff8 100644 --- a/jpa/pom.xml +++ b/jpa/pom.xml @@ -17,14 +17,14 @@ 2011 - spring-data-jpa-example - spring-data-jpa-showcase - spring-data-jpa-interceptors - spring-data-jpa-java8-auditing + example + showcase + interceptors + java8 - 1.5.1.RELEASE + 1.6.0.BUILD-SNAPSHOT 4.3.4.Final @@ -47,4 +47,11 @@ + + + spring-libs-snapshot + http:/repo.spring.io/libs-snapshot + + + \ No newline at end of file diff --git a/jpa/spring-data-jpa-showcase/README.txt b/jpa/showcase/README.txt similarity index 100% rename from jpa/spring-data-jpa-showcase/README.txt rename to jpa/showcase/README.txt diff --git a/jpa/spring-data-jpa-showcase/demo.txt b/jpa/showcase/demo.txt similarity index 100% rename from jpa/spring-data-jpa-showcase/demo.txt rename to jpa/showcase/demo.txt diff --git a/jpa/spring-data-jpa-showcase/pom.xml b/jpa/showcase/pom.xml similarity index 100% rename from jpa/spring-data-jpa-showcase/pom.xml rename to jpa/showcase/pom.xml diff --git a/jpa/spring-data-jpa-showcase/src/main/java/example/springdata/jpa/showcase/after/AccountRepository.java b/jpa/showcase/src/main/java/example/springdata/jpa/showcase/after/AccountRepository.java similarity index 100% rename from jpa/spring-data-jpa-showcase/src/main/java/example/springdata/jpa/showcase/after/AccountRepository.java rename to jpa/showcase/src/main/java/example/springdata/jpa/showcase/after/AccountRepository.java diff --git a/jpa/spring-data-jpa-showcase/src/main/java/example/springdata/jpa/showcase/after/CustomerRepository.java b/jpa/showcase/src/main/java/example/springdata/jpa/showcase/after/CustomerRepository.java similarity index 100% rename from jpa/spring-data-jpa-showcase/src/main/java/example/springdata/jpa/showcase/after/CustomerRepository.java rename to jpa/showcase/src/main/java/example/springdata/jpa/showcase/after/CustomerRepository.java diff --git a/jpa/spring-data-jpa-showcase/src/main/java/example/springdata/jpa/showcase/before/AccountService.java b/jpa/showcase/src/main/java/example/springdata/jpa/showcase/before/AccountService.java similarity index 100% rename from jpa/spring-data-jpa-showcase/src/main/java/example/springdata/jpa/showcase/before/AccountService.java rename to jpa/showcase/src/main/java/example/springdata/jpa/showcase/before/AccountService.java diff --git a/jpa/spring-data-jpa-showcase/src/main/java/example/springdata/jpa/showcase/before/AccountServiceImpl.java b/jpa/showcase/src/main/java/example/springdata/jpa/showcase/before/AccountServiceImpl.java similarity index 100% rename from jpa/spring-data-jpa-showcase/src/main/java/example/springdata/jpa/showcase/before/AccountServiceImpl.java rename to jpa/showcase/src/main/java/example/springdata/jpa/showcase/before/AccountServiceImpl.java diff --git a/jpa/spring-data-jpa-showcase/src/main/java/example/springdata/jpa/showcase/before/CustomerService.java b/jpa/showcase/src/main/java/example/springdata/jpa/showcase/before/CustomerService.java similarity index 100% rename from jpa/spring-data-jpa-showcase/src/main/java/example/springdata/jpa/showcase/before/CustomerService.java rename to jpa/showcase/src/main/java/example/springdata/jpa/showcase/before/CustomerService.java diff --git a/jpa/spring-data-jpa-showcase/src/main/java/example/springdata/jpa/showcase/before/CustomerServiceImpl.java b/jpa/showcase/src/main/java/example/springdata/jpa/showcase/before/CustomerServiceImpl.java similarity index 100% rename from jpa/spring-data-jpa-showcase/src/main/java/example/springdata/jpa/showcase/before/CustomerServiceImpl.java rename to jpa/showcase/src/main/java/example/springdata/jpa/showcase/before/CustomerServiceImpl.java diff --git a/jpa/spring-data-jpa-showcase/src/main/java/example/springdata/jpa/showcase/core/Account.java b/jpa/showcase/src/main/java/example/springdata/jpa/showcase/core/Account.java similarity index 100% rename from jpa/spring-data-jpa-showcase/src/main/java/example/springdata/jpa/showcase/core/Account.java rename to jpa/showcase/src/main/java/example/springdata/jpa/showcase/core/Account.java diff --git a/jpa/spring-data-jpa-showcase/src/main/java/example/springdata/jpa/showcase/core/Customer.java b/jpa/showcase/src/main/java/example/springdata/jpa/showcase/core/Customer.java similarity index 100% rename from jpa/spring-data-jpa-showcase/src/main/java/example/springdata/jpa/showcase/core/Customer.java rename to jpa/showcase/src/main/java/example/springdata/jpa/showcase/core/Customer.java diff --git a/jpa/spring-data-jpa-showcase/src/main/resources/data.sql b/jpa/showcase/src/main/resources/data.sql similarity index 100% rename from jpa/spring-data-jpa-showcase/src/main/resources/data.sql rename to jpa/showcase/src/main/resources/data.sql diff --git a/jpa/spring-data-jpa-showcase/src/snippets/java/example/springdata/jpa/showcase/snippets/AccountPredicates.java b/jpa/showcase/src/snippets/java/example/springdata/jpa/showcase/snippets/AccountPredicates.java similarity index 100% rename from jpa/spring-data-jpa-showcase/src/snippets/java/example/springdata/jpa/showcase/snippets/AccountPredicates.java rename to jpa/showcase/src/snippets/java/example/springdata/jpa/showcase/snippets/AccountPredicates.java diff --git a/jpa/spring-data-jpa-showcase/src/snippets/java/example/springdata/jpa/showcase/snippets/AccountRepository.java b/jpa/showcase/src/snippets/java/example/springdata/jpa/showcase/snippets/AccountRepository.java similarity index 100% rename from jpa/spring-data-jpa-showcase/src/snippets/java/example/springdata/jpa/showcase/snippets/AccountRepository.java rename to jpa/showcase/src/snippets/java/example/springdata/jpa/showcase/snippets/AccountRepository.java diff --git a/jpa/spring-data-jpa-showcase/src/snippets/java/example/springdata/jpa/showcase/snippets/AccountRepositoryCustom.java b/jpa/showcase/src/snippets/java/example/springdata/jpa/showcase/snippets/AccountRepositoryCustom.java similarity index 100% rename from jpa/spring-data-jpa-showcase/src/snippets/java/example/springdata/jpa/showcase/snippets/AccountRepositoryCustom.java rename to jpa/showcase/src/snippets/java/example/springdata/jpa/showcase/snippets/AccountRepositoryCustom.java diff --git a/jpa/spring-data-jpa-showcase/src/snippets/java/example/springdata/jpa/showcase/snippets/AccountRepositoryImpl.java b/jpa/showcase/src/snippets/java/example/springdata/jpa/showcase/snippets/AccountRepositoryImpl.java similarity index 100% rename from jpa/spring-data-jpa-showcase/src/snippets/java/example/springdata/jpa/showcase/snippets/AccountRepositoryImpl.java rename to jpa/showcase/src/snippets/java/example/springdata/jpa/showcase/snippets/AccountRepositoryImpl.java diff --git a/jpa/spring-data-jpa-showcase/src/snippets/java/example/springdata/jpa/showcase/snippets/AccountRepositoryJdbcImpl.java b/jpa/showcase/src/snippets/java/example/springdata/jpa/showcase/snippets/AccountRepositoryJdbcImpl.java similarity index 100% rename from jpa/spring-data-jpa-showcase/src/snippets/java/example/springdata/jpa/showcase/snippets/AccountRepositoryJdbcImpl.java rename to jpa/showcase/src/snippets/java/example/springdata/jpa/showcase/snippets/AccountRepositoryJdbcImpl.java diff --git a/jpa/spring-data-jpa-showcase/src/snippets/java/example/springdata/jpa/showcase/snippets/CustomerSpecifications.java b/jpa/showcase/src/snippets/java/example/springdata/jpa/showcase/snippets/CustomerSpecifications.java similarity index 100% rename from jpa/spring-data-jpa-showcase/src/snippets/java/example/springdata/jpa/showcase/snippets/CustomerSpecifications.java rename to jpa/showcase/src/snippets/java/example/springdata/jpa/showcase/snippets/CustomerSpecifications.java diff --git a/jpa/spring-data-jpa-showcase/src/snippets/resources/jdbc.xml b/jpa/showcase/src/snippets/resources/jdbc.xml similarity index 100% rename from jpa/spring-data-jpa-showcase/src/snippets/resources/jdbc.xml rename to jpa/showcase/src/snippets/resources/jdbc.xml diff --git a/jpa/spring-data-jpa-showcase/src/test-snippets/java/example/springdata/jpa/showcase/snippets/test/AccountRepositoryIntegrationTest.java b/jpa/showcase/src/test-snippets/java/example/springdata/jpa/showcase/snippets/test/AccountRepositoryIntegrationTest.java similarity index 100% rename from jpa/spring-data-jpa-showcase/src/test-snippets/java/example/springdata/jpa/showcase/snippets/test/AccountRepositoryIntegrationTest.java rename to jpa/showcase/src/test-snippets/java/example/springdata/jpa/showcase/snippets/test/AccountRepositoryIntegrationTest.java diff --git a/jpa/spring-data-jpa-showcase/src/test-snippets/java/example/springdata/jpa/showcase/snippets/test/CustomerRepositoryIntegrationTest.java b/jpa/showcase/src/test-snippets/java/example/springdata/jpa/showcase/snippets/test/CustomerRepositoryIntegrationTest.java similarity index 100% rename from jpa/spring-data-jpa-showcase/src/test-snippets/java/example/springdata/jpa/showcase/snippets/test/CustomerRepositoryIntegrationTest.java rename to jpa/showcase/src/test-snippets/java/example/springdata/jpa/showcase/snippets/test/CustomerRepositoryIntegrationTest.java diff --git a/jpa/spring-data-jpa-showcase/src/test/java/example/springdata/jpa/showcase/AbstractShowcaseTest.java b/jpa/showcase/src/test/java/example/springdata/jpa/showcase/AbstractShowcaseTest.java similarity index 100% rename from jpa/spring-data-jpa-showcase/src/test/java/example/springdata/jpa/showcase/AbstractShowcaseTest.java rename to jpa/showcase/src/test/java/example/springdata/jpa/showcase/AbstractShowcaseTest.java diff --git a/jpa/spring-data-jpa-showcase/src/test/java/example/springdata/jpa/showcase/after/AccountRepositoryIntegrationTest.java b/jpa/showcase/src/test/java/example/springdata/jpa/showcase/after/AccountRepositoryIntegrationTest.java similarity index 100% rename from jpa/spring-data-jpa-showcase/src/test/java/example/springdata/jpa/showcase/after/AccountRepositoryIntegrationTest.java rename to jpa/showcase/src/test/java/example/springdata/jpa/showcase/after/AccountRepositoryIntegrationTest.java diff --git a/jpa/spring-data-jpa-showcase/src/test/java/example/springdata/jpa/showcase/after/CustomerRepositoryIntegrationTest.java b/jpa/showcase/src/test/java/example/springdata/jpa/showcase/after/CustomerRepositoryIntegrationTest.java similarity index 100% rename from jpa/spring-data-jpa-showcase/src/test/java/example/springdata/jpa/showcase/after/CustomerRepositoryIntegrationTest.java rename to jpa/showcase/src/test/java/example/springdata/jpa/showcase/after/CustomerRepositoryIntegrationTest.java diff --git a/jpa/spring-data-jpa-showcase/src/test/java/example/springdata/jpa/showcase/before/AccountServiceIntegrationTest.java b/jpa/showcase/src/test/java/example/springdata/jpa/showcase/before/AccountServiceIntegrationTest.java similarity index 100% rename from jpa/spring-data-jpa-showcase/src/test/java/example/springdata/jpa/showcase/before/AccountServiceIntegrationTest.java rename to jpa/showcase/src/test/java/example/springdata/jpa/showcase/before/AccountServiceIntegrationTest.java diff --git a/jpa/spring-data-jpa-showcase/src/test/java/example/springdata/jpa/showcase/before/CustomerServiceIntegrationTest.java b/jpa/showcase/src/test/java/example/springdata/jpa/showcase/before/CustomerServiceIntegrationTest.java similarity index 100% rename from jpa/spring-data-jpa-showcase/src/test/java/example/springdata/jpa/showcase/before/CustomerServiceIntegrationTest.java rename to jpa/showcase/src/test/java/example/springdata/jpa/showcase/before/CustomerServiceIntegrationTest.java diff --git a/jpa/spring-data-jpa-showcase/src/test/resources/logback.xml b/jpa/showcase/src/test/resources/logback.xml similarity index 100% rename from jpa/spring-data-jpa-showcase/src/test/resources/logback.xml rename to jpa/showcase/src/test/resources/logback.xml