From 0ae3d435023ffbf4cea2a9de13fd77114fb97c53 Mon Sep 17 00:00:00 2001 From: Jens Schauder Date: Mon, 27 Sep 2021 10:51:09 +0200 Subject: [PATCH] Merge the Envers repo. Spring Data JPA is now a multimodule project. The artifacts build are still separate, except for the documentation which is now a single one. Closes # 2316 --- pom.xml | 401 +---------------- .../etc/eclipse-formatter.xml | 0 spring-data-envers/pom.xml | 87 ++++ .../config/EnableEnversRepositories.java | 199 +++++++++ .../repository/config/package-info.java | 5 + .../DefaultRevisionEntityInformation.java | 51 +++ .../support/DefaultRevisionMetadata.java | 123 ++++++ .../support/EnversRevisionRepository.java | 37 ++ .../EnversRevisionRepositoryFactoryBean.java | 113 +++++ .../support/EnversRevisionRepositoryImpl.java | 230 ++++++++++ .../ReflectionRevisionEntityInformation.java | 68 +++ .../repository/support/package-info.java | 5 + .../src/main/resources/changelog.txt | 260 +++++++++++ .../src/main/resources/license.txt | 279 ++++++++++++ .../src/main/resources/notice.txt | 33 ++ .../springframework/data/envers/Config.java | 76 ++++ .../DefaultRevisionMetadataUnitTests.java | 50 +++ ...EnversRevisionRepositoryImplUnitTests.java | 60 +++ .../QueryDslRepositoryIntegrationTests.java | 97 +++++ .../support/RepositoryIntegrationTests.java | 251 +++++++++++ .../data/envers/sample/AbstractEntity.java | 29 ++ .../data/envers/sample/Country.java | 36 ++ .../sample/CountryQueryDslRepository.java | 31 ++ .../data/envers/sample/CountryRepository.java | 28 ++ .../data/envers/sample/License.java | 41 ++ .../data/envers/sample/LicenseRepository.java | 28 ++ .../data/envers/sample/QCountry.java | 63 +++ .../src/test/resources/logback.xml | 16 + spring-data-jpa-distribution/pom.xml | 39 ++ .../Spring Data JPA.sonargraph | 0 aop.xml => spring-data-jpa/aop.xml | 0 spring-data-jpa/formatting.xml | 291 +++++++++++++ spring-data-jpa/pom.xml | 402 ++++++++++++++++++ .../QueryByExamplePredicateBuilder.java | 0 .../data/jpa/convert/package-info.java | 0 .../convert/threeten/Jsr310JpaConverters.java | 0 .../jpa/convert/threeten/package-info.java | 0 .../data/jpa/domain/AbstractAuditable.java | 0 .../data/jpa/domain/AbstractPersistable.java | 0 .../data/jpa/domain/JpaSort.java | 0 .../data/jpa/domain/Specification.java | 0 .../jpa/domain/SpecificationComposition.java | 0 .../data/jpa/domain/package-info.java | 0 .../AuditingBeanFactoryPostProcessor.java | 0 .../support/AuditingEntityListener.java | 0 .../data/jpa/domain/support/package-info.java | 0 .../mapping/JpaMetamodelMappingContext.java | 0 .../data/jpa/mapping/JpaPersistentEntity.java | 0 .../jpa/mapping/JpaPersistentEntityImpl.java | 0 .../jpa/mapping/JpaPersistentProperty.java | 0 .../mapping/JpaPersistentPropertyImpl.java | 0 .../data/jpa/mapping/package-info.java | 0 .../CollectionAwareProjectionFactory.java | 0 .../data/jpa/provider/HibernateUtils.java | 0 .../data/jpa/provider/JpaClassUtils.java | 0 .../jpa/provider/PersistenceProvider.java | 0 .../data/jpa/provider/ProxyIdAccessor.java | 0 .../data/jpa/provider/QueryExtractor.java | 0 .../data/jpa/provider/package-info.java | 0 .../data/jpa/repository/EntityGraph.java | 0 .../data/jpa/repository/JpaContext.java | 0 .../data/jpa/repository/JpaRepository.java | 0 .../repository/JpaSpecificationExecutor.java | 0 .../data/jpa/repository/Lock.java | 0 .../data/jpa/repository/Modifying.java | 0 .../data/jpa/repository/Query.java | 0 .../data/jpa/repository/QueryHints.java | 0 .../data/jpa/repository/Temporal.java | 0 .../jpa/repository/cdi/JpaRepositoryBean.java | 0 .../cdi/JpaRepositoryExtension.java | 0 .../data/jpa/repository/cdi/package-info.java | 0 .../config/AuditingBeanDefinitionParser.java | 0 .../config/BeanDefinitionNames.java | 0 .../repository/config/EnableJpaAuditing.java | 0 .../config/EnableJpaRepositories.java | 0 .../config/InspectionClassLoader.java | 0 .../config/JpaAuditingRegistrar.java | 0 ...JpaMetamodelMappingContextFactoryBean.java | 0 .../config/JpaRepositoriesRegistrar.java | 0 .../config/JpaRepositoryConfigExtension.java | 0 .../config/JpaRepositoryNameSpaceHandler.java | 0 .../jpa/repository/config/package-info.java | 0 .../data/jpa/repository/package-info.java | 0 .../repository/query/AbstractJpaQuery.java | 0 .../query/AbstractStringBasedJpaQuery.java | 0 .../jpa/repository/query/DeclaredQuery.java | 0 .../query/DefaultJpaEntityMetadata.java | 0 .../query/DefaultJpaQueryMethodFactory.java | 0 .../repository/query/EmptyDeclaredQuery.java | 0 .../jpa/repository/query/EscapeCharacter.java | 0 .../query/ExpressionBasedStringQuery.java | 0 .../query/InvalidJpaQueryMethodException.java | 0 .../data/jpa/repository/query/Jpa21Utils.java | 0 .../query/JpaCountQueryCreator.java | 0 .../jpa/repository/query/JpaEntityGraph.java | 0 .../repository/query/JpaEntityMetadata.java | 0 .../jpa/repository/query/JpaParameters.java | 0 .../query/JpaParametersParameterAccessor.java | 0 .../jpa/repository/query/JpaQueryCreator.java | 0 .../repository/query/JpaQueryExecution.java | 0 .../jpa/repository/query/JpaQueryFactory.java | 0 .../query/JpaQueryLookupStrategy.java | 0 .../jpa/repository/query/JpaQueryMethod.java | 0 .../query/JpaQueryMethodFactory.java | 0 .../repository/query/JpaResultConverters.java | 0 .../data/jpa/repository/query/NamedQuery.java | 0 .../jpa/repository/query/NativeJpaQuery.java | 0 .../jpa/repository/query/ParameterBinder.java | 0 .../query/ParameterBinderFactory.java | 0 .../query/ParameterMetadataProvider.java | 0 .../repository/query/PartTreeJpaQuery.java | 0 .../data/jpa/repository/query/Procedure.java | 0 .../repository/query/ProcedureParameter.java | 0 .../query/QueryParameterSetter.java | 0 .../query/QueryParameterSetterFactory.java | 0 .../data/jpa/repository/query/QueryUtils.java | 0 .../jpa/repository/query/SimpleJpaQuery.java | 0 .../query/StoredProcedureAttributeSource.java | 0 .../query/StoredProcedureAttributes.java | 0 .../query/StoredProcedureJpaQuery.java | 0 .../jpa/repository/query/StringQuery.java | 0 .../jpa/repository/query/package-info.java | 0 .../support/CrudMethodMetadata.java | 0 .../CrudMethodMetadataPostProcessor.java | 0 .../repository/support/DefaultJpaContext.java | 0 .../repository/support/DefaultQueryHints.java | 0 ...rBeanDefinitionRegistrarPostProcessor.java | 0 .../FetchableFluentQueryByExample.java | 0 .../FetchableFluentQueryByPredicate.java | 0 .../support/FluentQuerySupport.java | 0 .../support/JpaEntityInformation.java | 0 .../support/JpaEntityInformationSupport.java | 0 .../JpaEvaluationContextExtension.java | 0 .../JpaMetamodelEntityInformation.java | 0 .../JpaPersistableEntityInformation.java | 0 .../support/JpaRepositoryFactory.java | 0 .../support/JpaRepositoryFactoryBean.java | 0 .../support/JpaRepositoryImplementation.java | 0 .../repository/support/MutableQueryHints.java | 0 .../repository/support/QueryHintValue.java | 0 .../jpa/repository/support/QueryHints.java | 0 .../data/jpa/repository/support/Querydsl.java | 0 .../support/QuerydslJpaPredicateExecutor.java | 0 .../support/QuerydslJpaRepository.java | 0 .../support/QuerydslRepositorySupport.java | 0 .../support/SimpleJpaRepository.java | 0 .../jpa/repository/support/package-info.java | 0 ...hScanningPersistenceUnitPostProcessor.java | 0 .../MergingPersistenceUnitManager.java | 0 .../data/jpa/support/package-info.java | 0 .../data/jpa/util/BeanDefinitionUtils.java | 0 .../data/jpa/util/HibernateProxyDetector.java | 0 .../data/jpa/util/JpaMetamodel.java | 0 .../jpa/util/JpaMetamodelCacheCleanup.java | 0 .../data/jpa/util/package-info.java | 0 .../jakarta.enterprise.inject.spi.Extension | 0 .../main/resources/META-INF/spring.factories | 0 .../main/resources/META-INF/spring.handlers | 0 .../main/resources/META-INF/spring.schemas | 0 .../main/resources/META-INF/spring.tooling | 0 .../src}/main/resources/license.txt | 0 .../src}/main/resources/notice.txt | 0 .../jpa/repository/config/spring-jpa-1.0.xsd | 0 .../jpa/repository/config/spring-jpa-1.1.xsd | 0 .../jpa/repository/config/spring-jpa-1.11.xsd | 0 .../jpa/repository/config/spring-jpa-1.2.xsd | 0 .../jpa/repository/config/spring-jpa-1.3.xsd | 0 .../jpa/repository/config/spring-jpa-1.8.xsd | 0 .../src}/main/resources/readme.txt | 0 ...eryByExamplePredicateBuilderUnitTests.java | 0 .../jpa/convert/threeten/DateTimeSample.java | 0 .../Jsr310JpaConvertersIntegrationTests.java | 0 .../Jsr310JpaConvertersUnitTests.java | 0 .../data/jpa/domain/JpaSortTests.java | 0 .../jpa/domain/SpecificationUnitTests.java | 0 .../sample/AbstractAnnotatedAuditable.java | 0 .../jpa/domain/sample/AbstractMappedType.java | 0 .../data/jpa/domain/sample/Account.java | 0 .../data/jpa/domain/sample/Address.java | 0 .../domain/sample/AnnotatedAuditableUser.java | 0 .../data/jpa/domain/sample/AuditableRole.java | 0 .../data/jpa/domain/sample/AuditableUser.java | 0 .../jpa/domain/sample/AuditorAwareStub.java | 0 .../data/jpa/domain/sample/Category.java | 0 .../data/jpa/domain/sample/Child.java | 0 .../data/jpa/domain/sample/ConcreteType1.java | 0 .../data/jpa/domain/sample/ConcreteType2.java | 0 .../sample/CustomAbstractPersistable.java | 0 .../data/jpa/domain/sample/Customer.java | 0 .../data/jpa/domain/sample/Dummy.java | 0 .../sample/EmbeddedIdExampleDepartment.java | 0 .../sample/EmbeddedIdExampleEmployee.java | 0 .../sample/EmbeddedIdExampleEmployeePK.java | 0 .../domain/sample/EntityWithAssignedId.java | 0 .../sample/IdClassExampleDepartment.java | 0 .../domain/sample/IdClassExampleEmployee.java | 0 .../sample/IdClassExampleEmployeePK.java | 0 .../data/jpa/domain/sample/Invoice.java | 0 .../data/jpa/domain/sample/InvoiceItem.java | 0 .../data/jpa/domain/sample/Item.java | 0 .../data/jpa/domain/sample/ItemId.java | 0 .../data/jpa/domain/sample/ItemSite.java | 0 .../data/jpa/domain/sample/ItemSiteId.java | 0 .../data/jpa/domain/sample/MailMessage.java | 0 .../data/jpa/domain/sample/MailSender.java | 0 .../data/jpa/domain/sample/MailUser.java | 0 .../data/jpa/domain/sample/Order.java | 0 .../data/jpa/domain/sample/OrmXmlEntity.java | 0 .../data/jpa/domain/sample/Parent.java | 0 .../domain/sample/PersistableWithIdClass.java | 0 .../sample/PersistableWithIdClassPK.java | 0 .../sample/PersistableWithSingleIdClass.java | 0 .../PersistableWithSingleIdClassPK.java | 0 .../sample/PrimitiveVersionProperty.java | 0 .../data/jpa/domain/sample/Product.java | 0 .../data/jpa/domain/sample/Role.java | 0 .../data/jpa/domain/sample/SampleEntity.java | 0 .../jpa/domain/sample/SampleEntityPK.java | 0 .../jpa/domain/sample/SampleWithIdClass.java | 0 .../SampleWithIdClassIncludingEntity.java | 0 .../domain/sample/SampleWithPrimitiveId.java | 0 .../sample/SampleWithTimestampVersion.java | 0 .../data/jpa/domain/sample/Site.java | 0 .../data/jpa/domain/sample/SpecialUser.java | 0 .../data/jpa/domain/sample/User.java | 0 .../jpa/domain/sample/UserSpecifications.java | 0 .../data/jpa/domain/sample/VersionedUser.java | 0 ...actAttributeConverterIntegrationTests.java | 0 ...tingBeanFactoryPostProcessorUnitTests.java | 0 ...tingBeanFactoryPostProcessorUnitTests.java | 0 .../support/AuditingEntityListenerTests.java | 0 .../support/AuditingNamespaceUnitTests.java | 0 .../EclipseLinkMetamodelIntegrationTests.java | 0 .../HibernateMetamodelIntegrationTests.java | 0 .../infrastructure/HibernateTestUtils.java | 0 .../MetamodelIntegrationTests.java | 0 .../OpenJpaMetamodelIntegrationTests.java | 0 ...tamodelMappingContextIntegrationTests.java | 0 .../JpaMetamodelMappingContextUnitTests.java | 0 .../JpaPersistentPropertyImplUnitTests.java | 0 .../PersistenceProviderIntegrationTests.java | 0 .../PersistenceProviderUnitTests.java | 0 .../AbstractPersistableIntegrationTests.java | 0 .../CrudMethodMetadataUnitTests.java | 0 ...omAbstractPersistableIntegrationTests.java | 0 .../CustomEclipseLinkJpaVendorAdapter.java | 0 .../CustomHsqlHibernateJpaVendorAdaptor.java | 0 ...raphRepositoryMethodsIntegrationTests.java | 0 ...lipseLinkNamespaceUserRepositoryTests.java | 0 ...eLinkParentRepositoryIntegrationTests.java | 0 ...itoryWithCompositeKeyIntegrationTests.java | 0 ...seLinkStoredProcedureIntegrationTests.java | 0 .../EclipseLinkUserRepositoryFinderTests.java | 0 ...raphRepositoryMethodsIntegrationTests.java | 0 .../EntityWithAssignedIdIntegrationTests.java | 0 .../JavaConfigUserRepositoryTests.java | 0 .../MappedTypeRepositoryIntegrationTests.java | 0 .../NamespaceUserRepositoryTests.java | 0 .../repository/ORMInfrastructureTests.java | 0 ...raphRepositoryMethodsIntegrationTests.java | 0 .../OpenJpaNamespaceUserRepositoryTests.java | 0 ...enJpaParentRepositoryIntegrationTests.java | 0 ...itoryWithCompositeKeyIntegrationTests.java | 0 ...penJpaStoredProcedureIntegrationTests.java | 0 .../OpenJpaUserRepositoryFinderTests.java | 0 .../ParentRepositoryIntegrationTests.java | 0 .../RedeclaringRepositoryMethodsTests.java | 0 .../RepositoryWithCompositeKeyTests.java | 0 .../RepositoryWithIdClassKeyTests.java | 0 .../RoleRepositoryIntegrationTests.java | 0 .../data/jpa/repository/SPR8954Tests.java | 0 .../SimpleJpaParameterBindingTests.java | 0 .../StoredProcedureIntegrationTests.java | 0 .../repository/UserRepositoryFinderTests.java | 0 ...sitoryStoredProcedureIntegrationTests.java | 0 .../jpa/repository/UserRepositoryTests.java | 0 .../cdi/CdiExtensionIntegrationTests.java | 0 .../cdi/EntityManagerFactoryProducer.java | 0 .../cdi/JpaRepositoryExtensionUnitTests.java | 0 .../data/jpa/repository/cdi/Person.java | 0 .../data/jpa/repository/cdi/PersonDB.java | 0 .../jpa/repository/cdi/PersonRepository.java | 0 .../QualifiedCustomizedCdiConfiguration.java | 0 .../QualifiedCustomizedUserRepository.java | 0 ...QualifiedCustomizedUserRepositoryBean.java | 0 ...alifiedCustomizedUserRepositoryCustom.java | 0 .../cdi/QualifiedEntityManagerProducer.java | 0 .../jpa/repository/cdi/QualifiedFragment.java | 0 .../repository/cdi/QualifiedFragmentBean.java | 0 .../cdi/QualifiedPersonRepository.java | 0 .../repository/cdi/RepositoryConsumer.java | 0 .../cdi/SamplePersonRepository.java | 0 .../cdi/SamplePersonRepositoryCustom.java | 0 .../cdi/SamplePersonRepositoryImpl.java | 0 .../jpa/repository/cdi/Transactional.java | 0 .../cdi/TransactionalInterceptor.java | 0 .../cdi/UnqualifiedEntityManagerProducer.java | 0 .../cdi/UnqualifiedPersonRepository.java | 0 .../data/jpa/repository/cdi/UserDB.java | 0 ...uditingViaJavaConfigRepositoriesTests.java | 0 .../config/AbstractRepositoryConfigTests.java | 0 ...stedRepositoriesRepositoryConfigTests.java | 0 .../AuditingBeanDefinitionParserTests.java | 0 .../CustomRepositoryFactoryConfigTests.java | 0 ...uditingViaJavaConfigRepositoriesTests.java | 0 ...uditingViaJavaConfigRepositoriesTests.java | 0 .../config/InfrastructureConfig.java | 0 .../InspectionClassLoaderUnitTests.java | 0 .../config/JpaAuditingRegistrarUnitTests.java | 0 ...RepositoriesRegistrarIntegrationTests.java | 0 .../JpaRepositoriesRegistrarUnitTests.java | 0 ...RepositoryConfigDefinitionParserTests.java | 0 ...JpaRepositoryConfigExtensionUnitTests.java | 0 .../NestedRepositoriesJavaConfigTests.java | 0 .../config/QueryLookupStrategyTests.java | 0 .../config/RepositoriesJavaConfigTests.java | 0 .../config/RepositoryAutoConfigTests.java | 0 .../config/RepositoryConfigTests.java | 0 .../config/TypeFilterConfigTests.java | 0 .../data/jpa/repository/config/package.html | 0 .../custom/CustomGenericJpaRepository.java | 0 .../CustomGenericJpaRepositoryFactory.java | 0 ...CustomGenericJpaRepositoryFactoryBean.java | 0 .../custom/CustomGenericRepository.java | 0 .../custom/UserCustomExtendedRepository.java | 0 .../jpa/repository/custom/package-info.java | 0 .../MySqlStoredProcedureIntegrationTests.java | 0 ...stgresStoredProcedureIntegrationTests.java | 0 .../ProjectionJoinIntegrationTests.java | 0 .../ProjectionsIntegrationTests.java | 0 .../query/AbstractJpaQueryTests.java | 0 ...ctStringBasedJpaQueryIntegrationTests.java | 0 ...BindableJpaParametersIntegrationTests.java | 0 .../query/EclipseLinkJpa21UtilsTests.java | 0 ...meterMetadataProviderIntegrationTests.java | 0 ...EclipseLinkQueryUtilsIntegrationTests.java | 0 .../query/EscapeCharacterUnitTests.java | 0 .../ExpressionBasedStringQueryUnitTests.java | 0 .../jpa/repository/query/Jpa21UtilsTests.java | 0 .../repository/query/Jpa21UtilsUnitTests.java | 0 .../JpaCountQueryCreatorIntegrationTests.java | 0 .../query/JpaParametersUnitTests.java | 0 .../query/JpaQueryExecutionUnitTests.java | 0 .../JpaQueryLookupStrategyUnitTests.java | 0 .../query/JpaQueryMethodUnitTests.java | 0 .../query/LikeBindingUnitTests.java | 0 ...rIndexedQueryParameterSetterUnitTests.java | 0 .../repository/query/NamedQueryUnitTests.java | 0 .../query/OpenJpaJpa21UtilsTests.java | 0 ...meterMetadataProviderIntegrationTests.java | 0 .../OpenJpaQueryUtilsIntegrationTests.java | 0 .../query/ParameterBinderUnitTests.java | 0 .../ParameterBindingParserUnitTests.java | 0 .../ParameterExpressionProviderTests.java | 0 ...meterMetadataProviderIntegrationTests.java | 0 .../ParameterMetadataProviderUnitTests.java | 0 .../PartTreeJpaQueryIntegrationTests.java | 0 .../QueryParameterSetterFactoryUnitTests.java | 0 .../query/QueryUtilsIntegrationTests.java | 0 .../repository/query/QueryUtilsUnitTests.java | 0 .../query/SimpleJpaQueryUnitTests.java | 0 ...oredProcedureAttributeSourceUnitTests.java | 0 .../StoredProcedureAttributesUnitTests.java | 0 .../query/StringQueryUnitTests.java | 0 .../query/TupleConverterUnitTests.java | 0 .../AnnotatedAuditableUserRepository.java | 0 .../sample/AuditableUserRepository.java | 0 .../repository/sample/CategoryRepository.java | 0 .../sample/ClassWithNestedRepository.java | 0 .../sample/ConcreteRepository1.java | 0 .../sample/ConcreteRepository2.java | 0 .../CustomAbstractPersistableRepository.java | 0 .../repository/sample/DummyRepository.java | 0 .../EmployeeRepositoryWithEmbeddedId.java | 0 .../sample/EmployeeRepositoryWithIdClass.java | 0 .../EntityWithAssignedIdRepository.java | 0 .../jpa/repository/sample/ItemRepository.java | 0 .../repository/sample/ItemSiteRepository.java | 0 .../sample/MailMessageRepository.java | 0 .../sample/MappedTypeRepository.java | 0 .../jpa/repository/sample/NameOnlyDto.java | 0 .../repository/sample/ParentRepository.java | 0 .../repository/sample/ProductRepository.java | 0 ...edeclaringRepositoryMethodsRepository.java | 0 ...ethodsWithEntityGraphConfigRepository.java | 0 .../jpa/repository/sample/RoleRepository.java | 0 .../jpa/repository/sample/SampleConfig.java | 0 .../SampleEvaluationContextExtension.java | 0 .../jpa/repository/sample/SiteRepository.java | 0 .../jpa/repository/sample/UserRepository.java | 0 .../sample/UserRepositoryCustom.java | 0 .../repository/sample/UserRepositoryImpl.java | 0 ...aPopulatingMethodInterceptorUnitTests.java | 0 .../DefaultJpaContextIntegrationTests.java | 0 .../support/DefaultJpaContextUnitTests.java | 0 .../DefaultJpaEntityMetadataUnitTest.java | 0 .../support/DefaultQueryHintsTest.java | 0 ...tTransactionDisablingIntegrationTests.java | 0 ...odelEntityInformationIntegrationTests.java | 0 .../EclipseLinkJpaRepositoryTests.java | 0 .../EclipseLinkProxyIdAccessorTests.java | 0 ...egistrarPostProcessorIntegrationTests.java | 0 ...nitionRegistrarPostProcessorUnitTests.java | 0 .../support/EntityManagerFactoryRefTests.java | 0 .../EntityManagerFactoryRefUnitTests.java | 0 ...tTransactionDisablingIntegrationTests.java | 0 .../JpaEntityInformationSupportUnitTests.java | 0 ...odelEntityInformationIntegrationTests.java | 0 ...paMetamodelEntityInformationUnitTests.java | 0 ...PersistableEntityInformationUnitTests.java | 0 ...eanEntityPathResolverIntegrationTests.java | 0 .../JpaRepositoryFactoryBeanUnitTests.java | 0 .../JpaRepositoryFactoryUnitTests.java | 0 .../support/JpaRepositoryTests.java | 0 ...MailMessageRepositoryIntegrationTests.java | 0 .../support/MutableQueryHintsUnitTests.java | 0 .../support/OpenJpaJpaRepositoryTests.java | 0 ...odelEntityInformationIntegrationTests.java | 0 .../support/OpenJpaProxyIdAccessorTests.java | 0 ...pleEntityPathResolverUnitTests_Sample.java | 0 .../support/QuerydslIntegrationTests.java | 0 ...QuerydslJpaPredicateExecutorUnitTests.java | 0 .../support/QuerydslJpaRepositoryTests.java | 0 ...ydslRepositorySupportIntegrationTests.java | 0 .../QuerydslRepositorySupportTests.java | 0 .../support/SimpleJpaRepositoryUnitTests.java | 0 .../support/TransactionalRepositoryTests.java | 0 ...tTransactionDisablingIntegrationTests.java | 0 .../data/jpa/repository/support/package.html | 0 ...PersistenceUnitPostProcessorUnitTests.java | 0 .../jpa/support/EntityManagerTestUtils.java | 0 ...ergingPersistenceUnitManagerUnitTests.java | 0 .../data/jpa/util/FixedDate.java | 0 ...MetamodelCacheCleanupIntegrationTests.java | 0 .../data/jpa/util/JpaMetamodelUnitTests.java | 0 .../META-INF/jpa-named-queries.properties | 0 .../src}/test/resources/META-INF/orm.xml | 0 .../test/resources/META-INF/persistence.xml | 0 .../test/resources/META-INF/persistence2.xml | 0 .../test/resources/application-context.xml | 0 .../auditing/auditing-bfpp-context.xml | 0 .../auditing/auditing-entity-listener.xml | 0 .../auditing/auditing-namespace-context.xml | 0 .../auditing/auditing-namespace-context2.xml | 0 .../auditing/auditing-namespace-context3.xml | 0 .../config/jpa-context-with-jndi.xml | 0 .../config/lookup-strategies-context.xml | 0 .../config/namespace-application-context.xml | 0 .../config/namespace-autoconfig-context.xml | 0 ...amespace-autoconfig-typefilter-context.xml | 0 .../namespace-customfactory-context.xml | 0 ...ested-repositories-application-context.xml | 0 .../src}/test/resources/eclipselink.xml | 0 .../src}/test/resources/hibernate.xml | 0 .../src}/test/resources/infrastructure.xml | 0 .../src}/test/resources/logback.xml | 0 .../multiple-entity-manager-context.xml | 0 ...ple-entity-manager-integration-context.xml | 0 .../src}/test/resources/openjpa.xml | 0 .../support/disable-default-transactions.xml | 0 .../data/jpa/support/mapping.xml | 0 .../data/jpa/support/module1/module1-orm.xml | 0 .../data/jpa/support/module2/module2-orm.xml | 0 .../data/jpa/support/persistence.xml | 0 .../data/jpa/support/persistence2.xml | 0 .../test/resources/scripts/hsqldb-init.sql | 0 .../scripts/mysql-stored-procedures.sql | 0 .../scripts/postgres-stored-procedures.sql | 0 .../scripts/schema-stored-procedures.sql | 0 .../simple-persistence/simple-persistence.xml | 0 .../src}/test/resources/tx-manager.xml | 0 src/main/asciidoc/envers.adoc | 204 +++++++++ src/main/asciidoc/index.adoc | 2 + template.mf | 28 -- 474 files changed, 3249 insertions(+), 414 deletions(-) rename formatting.xml => spring-data-envers/etc/eclipse-formatter.xml (100%) create mode 100755 spring-data-envers/pom.xml create mode 100644 spring-data-envers/src/main/java/org/springframework/data/envers/repository/config/EnableEnversRepositories.java create mode 100644 spring-data-envers/src/main/java/org/springframework/data/envers/repository/config/package-info.java create mode 100644 spring-data-envers/src/main/java/org/springframework/data/envers/repository/support/DefaultRevisionEntityInformation.java create mode 100755 spring-data-envers/src/main/java/org/springframework/data/envers/repository/support/DefaultRevisionMetadata.java create mode 100644 spring-data-envers/src/main/java/org/springframework/data/envers/repository/support/EnversRevisionRepository.java create mode 100755 spring-data-envers/src/main/java/org/springframework/data/envers/repository/support/EnversRevisionRepositoryFactoryBean.java create mode 100755 spring-data-envers/src/main/java/org/springframework/data/envers/repository/support/EnversRevisionRepositoryImpl.java create mode 100644 spring-data-envers/src/main/java/org/springframework/data/envers/repository/support/ReflectionRevisionEntityInformation.java create mode 100644 spring-data-envers/src/main/java/org/springframework/data/envers/repository/support/package-info.java create mode 100644 spring-data-envers/src/main/resources/changelog.txt create mode 100644 spring-data-envers/src/main/resources/license.txt create mode 100644 spring-data-envers/src/main/resources/notice.txt create mode 100755 spring-data-envers/src/test/java/org/springframework/data/envers/Config.java create mode 100644 spring-data-envers/src/test/java/org/springframework/data/envers/repository/support/DefaultRevisionMetadataUnitTests.java create mode 100644 spring-data-envers/src/test/java/org/springframework/data/envers/repository/support/EnversRevisionRepositoryImplUnitTests.java create mode 100755 spring-data-envers/src/test/java/org/springframework/data/envers/repository/support/QueryDslRepositoryIntegrationTests.java create mode 100755 spring-data-envers/src/test/java/org/springframework/data/envers/repository/support/RepositoryIntegrationTests.java create mode 100644 spring-data-envers/src/test/java/org/springframework/data/envers/sample/AbstractEntity.java create mode 100755 spring-data-envers/src/test/java/org/springframework/data/envers/sample/Country.java create mode 100755 spring-data-envers/src/test/java/org/springframework/data/envers/sample/CountryQueryDslRepository.java create mode 100755 spring-data-envers/src/test/java/org/springframework/data/envers/sample/CountryRepository.java create mode 100755 spring-data-envers/src/test/java/org/springframework/data/envers/sample/License.java create mode 100755 spring-data-envers/src/test/java/org/springframework/data/envers/sample/LicenseRepository.java create mode 100755 spring-data-envers/src/test/java/org/springframework/data/envers/sample/QCountry.java create mode 100644 spring-data-envers/src/test/resources/logback.xml create mode 100644 spring-data-jpa-distribution/pom.xml rename Spring Data JPA.sonargraph => spring-data-jpa/Spring Data JPA.sonargraph (100%) rename aop.xml => spring-data-jpa/aop.xml (100%) create mode 100644 spring-data-jpa/formatting.xml create mode 100644 spring-data-jpa/pom.xml rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/convert/QueryByExamplePredicateBuilder.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/convert/package-info.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/convert/threeten/Jsr310JpaConverters.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/convert/threeten/package-info.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/domain/AbstractAuditable.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/domain/AbstractPersistable.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/domain/JpaSort.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/domain/Specification.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/domain/SpecificationComposition.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/domain/package-info.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/domain/support/AuditingBeanFactoryPostProcessor.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/domain/support/AuditingEntityListener.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/domain/support/package-info.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/mapping/JpaMetamodelMappingContext.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/mapping/JpaPersistentEntity.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/mapping/JpaPersistentEntityImpl.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/mapping/JpaPersistentProperty.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/mapping/JpaPersistentPropertyImpl.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/mapping/package-info.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/projection/CollectionAwareProjectionFactory.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/provider/HibernateUtils.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/provider/JpaClassUtils.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/provider/PersistenceProvider.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/provider/ProxyIdAccessor.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/provider/QueryExtractor.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/provider/package-info.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/EntityGraph.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/JpaContext.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/JpaRepository.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/JpaSpecificationExecutor.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/Lock.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/Modifying.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/Query.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/QueryHints.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/Temporal.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/cdi/JpaRepositoryBean.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/cdi/JpaRepositoryExtension.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/cdi/package-info.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/config/AuditingBeanDefinitionParser.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/config/BeanDefinitionNames.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/config/EnableJpaAuditing.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/config/EnableJpaRepositories.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/config/InspectionClassLoader.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/config/JpaAuditingRegistrar.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/config/JpaMetamodelMappingContextFactoryBean.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/config/JpaRepositoriesRegistrar.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/config/JpaRepositoryConfigExtension.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/config/JpaRepositoryNameSpaceHandler.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/config/package-info.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/package-info.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/query/AbstractJpaQuery.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/query/AbstractStringBasedJpaQuery.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/query/DeclaredQuery.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/query/DefaultJpaEntityMetadata.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/query/DefaultJpaQueryMethodFactory.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/query/EmptyDeclaredQuery.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/query/EscapeCharacter.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/query/ExpressionBasedStringQuery.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/query/InvalidJpaQueryMethodException.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/query/Jpa21Utils.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/query/JpaCountQueryCreator.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/query/JpaEntityGraph.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/query/JpaEntityMetadata.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/query/JpaParameters.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/query/JpaParametersParameterAccessor.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/query/JpaQueryCreator.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/query/JpaQueryExecution.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/query/JpaQueryFactory.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/query/JpaQueryLookupStrategy.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/query/JpaQueryMethod.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/query/JpaQueryMethodFactory.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/query/JpaResultConverters.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/query/NamedQuery.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/query/NativeJpaQuery.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/query/ParameterBinder.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/query/ParameterBinderFactory.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/query/ParameterMetadataProvider.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/query/PartTreeJpaQuery.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/query/Procedure.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/query/ProcedureParameter.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/query/QueryParameterSetter.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/query/QueryParameterSetterFactory.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/query/QueryUtils.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/query/SimpleJpaQuery.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/query/StoredProcedureAttributeSource.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/query/StoredProcedureAttributes.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/query/StoredProcedureJpaQuery.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/query/StringQuery.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/query/package-info.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/support/CrudMethodMetadata.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/support/CrudMethodMetadataPostProcessor.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/support/DefaultJpaContext.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/support/DefaultQueryHints.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/support/EntityManagerBeanDefinitionRegistrarPostProcessor.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/support/FetchableFluentQueryByExample.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/support/FetchableFluentQueryByPredicate.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/support/FluentQuerySupport.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/support/JpaEntityInformation.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/support/JpaEntityInformationSupport.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/support/JpaEvaluationContextExtension.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/support/JpaMetamodelEntityInformation.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/support/JpaPersistableEntityInformation.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/support/JpaRepositoryFactory.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/support/JpaRepositoryFactoryBean.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/support/JpaRepositoryImplementation.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/support/MutableQueryHints.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/support/QueryHintValue.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/support/QueryHints.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/support/Querydsl.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/support/QuerydslJpaPredicateExecutor.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/support/QuerydslJpaRepository.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/support/QuerydslRepositorySupport.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/support/SimpleJpaRepository.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/repository/support/package-info.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/support/ClasspathScanningPersistenceUnitPostProcessor.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/support/MergingPersistenceUnitManager.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/support/package-info.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/util/BeanDefinitionUtils.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/util/HibernateProxyDetector.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/util/JpaMetamodel.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/util/JpaMetamodelCacheCleanup.java (100%) rename {src => spring-data-jpa/src}/main/java/org/springframework/data/jpa/util/package-info.java (100%) rename {src => spring-data-jpa/src}/main/resources/META-INF/services/jakarta.enterprise.inject.spi.Extension (100%) rename {src => spring-data-jpa/src}/main/resources/META-INF/spring.factories (100%) rename {src => spring-data-jpa/src}/main/resources/META-INF/spring.handlers (100%) rename {src => spring-data-jpa/src}/main/resources/META-INF/spring.schemas (100%) rename {src => spring-data-jpa/src}/main/resources/META-INF/spring.tooling (100%) rename {src => spring-data-jpa/src}/main/resources/license.txt (100%) rename {src => spring-data-jpa/src}/main/resources/notice.txt (100%) rename {src => spring-data-jpa/src}/main/resources/org/springframework/data/jpa/repository/config/spring-jpa-1.0.xsd (100%) rename {src => spring-data-jpa/src}/main/resources/org/springframework/data/jpa/repository/config/spring-jpa-1.1.xsd (100%) rename {src => spring-data-jpa/src}/main/resources/org/springframework/data/jpa/repository/config/spring-jpa-1.11.xsd (100%) rename {src => spring-data-jpa/src}/main/resources/org/springframework/data/jpa/repository/config/spring-jpa-1.2.xsd (100%) rename {src => spring-data-jpa/src}/main/resources/org/springframework/data/jpa/repository/config/spring-jpa-1.3.xsd (100%) rename {src => spring-data-jpa/src}/main/resources/org/springframework/data/jpa/repository/config/spring-jpa-1.8.xsd (100%) rename {src => spring-data-jpa/src}/main/resources/readme.txt (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/convert/QueryByExamplePredicateBuilderUnitTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/convert/threeten/DateTimeSample.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/convert/threeten/Jsr310JpaConvertersIntegrationTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/convert/threeten/Jsr310JpaConvertersUnitTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/JpaSortTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/SpecificationUnitTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/sample/AbstractAnnotatedAuditable.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/sample/AbstractMappedType.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/sample/Account.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/sample/Address.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/sample/AnnotatedAuditableUser.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/sample/AuditableRole.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/sample/AuditableUser.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/sample/AuditorAwareStub.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/sample/Category.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/sample/Child.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/sample/ConcreteType1.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/sample/ConcreteType2.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/sample/CustomAbstractPersistable.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/sample/Customer.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/sample/Dummy.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/sample/EmbeddedIdExampleDepartment.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/sample/EmbeddedIdExampleEmployee.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/sample/EmbeddedIdExampleEmployeePK.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/sample/EntityWithAssignedId.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/sample/IdClassExampleDepartment.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/sample/IdClassExampleEmployee.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/sample/IdClassExampleEmployeePK.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/sample/Invoice.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/sample/InvoiceItem.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/sample/Item.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/sample/ItemId.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/sample/ItemSite.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/sample/ItemSiteId.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/sample/MailMessage.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/sample/MailSender.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/sample/MailUser.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/sample/Order.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/sample/OrmXmlEntity.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/sample/Parent.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/sample/PersistableWithIdClass.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/sample/PersistableWithIdClassPK.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/sample/PersistableWithSingleIdClass.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/sample/PersistableWithSingleIdClassPK.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/sample/PrimitiveVersionProperty.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/sample/Product.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/sample/Role.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/sample/SampleEntity.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/sample/SampleEntityPK.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/sample/SampleWithIdClass.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/sample/SampleWithIdClassIncludingEntity.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/sample/SampleWithPrimitiveId.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/sample/SampleWithTimestampVersion.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/sample/Site.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/sample/SpecialUser.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/sample/User.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/sample/UserSpecifications.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/sample/VersionedUser.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/support/AbstractAttributeConverterIntegrationTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/support/AnnotationAuditingBeanFactoryPostProcessorUnitTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/support/AuditingBeanFactoryPostProcessorUnitTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/support/AuditingEntityListenerTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/domain/support/AuditingNamespaceUnitTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/infrastructure/EclipseLinkMetamodelIntegrationTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/infrastructure/HibernateMetamodelIntegrationTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/infrastructure/HibernateTestUtils.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/infrastructure/MetamodelIntegrationTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/infrastructure/OpenJpaMetamodelIntegrationTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/mapping/JpaMetamodelMappingContextIntegrationTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/mapping/JpaMetamodelMappingContextUnitTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/mapping/JpaPersistentPropertyImplUnitTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/provider/PersistenceProviderIntegrationTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/provider/PersistenceProviderUnitTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/AbstractPersistableIntegrationTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/CrudMethodMetadataUnitTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/CustomAbstractPersistableIntegrationTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/CustomEclipseLinkJpaVendorAdapter.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/CustomHsqlHibernateJpaVendorAdaptor.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/EclipseLinkEntityGraphRepositoryMethodsIntegrationTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/EclipseLinkNamespaceUserRepositoryTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/EclipseLinkParentRepositoryIntegrationTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/EclipseLinkRepositoryWithCompositeKeyIntegrationTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/EclipseLinkStoredProcedureIntegrationTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/EclipseLinkUserRepositoryFinderTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/EntityGraphRepositoryMethodsIntegrationTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/EntityWithAssignedIdIntegrationTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/JavaConfigUserRepositoryTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/MappedTypeRepositoryIntegrationTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/NamespaceUserRepositoryTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/ORMInfrastructureTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/OpenJpaEntityGraphRepositoryMethodsIntegrationTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/OpenJpaNamespaceUserRepositoryTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/OpenJpaParentRepositoryIntegrationTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/OpenJpaRepositoryWithCompositeKeyIntegrationTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/OpenJpaStoredProcedureIntegrationTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/OpenJpaUserRepositoryFinderTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/ParentRepositoryIntegrationTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/RedeclaringRepositoryMethodsTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/RepositoryWithCompositeKeyTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/RepositoryWithIdClassKeyTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/RoleRepositoryIntegrationTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/SPR8954Tests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/SimpleJpaParameterBindingTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/StoredProcedureIntegrationTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/UserRepositoryFinderTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/UserRepositoryStoredProcedureIntegrationTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/UserRepositoryTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/cdi/CdiExtensionIntegrationTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/cdi/EntityManagerFactoryProducer.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/cdi/JpaRepositoryExtensionUnitTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/cdi/Person.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/cdi/PersonDB.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/cdi/PersonRepository.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/cdi/QualifiedCustomizedCdiConfiguration.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/cdi/QualifiedCustomizedUserRepository.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/cdi/QualifiedCustomizedUserRepositoryBean.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/cdi/QualifiedCustomizedUserRepositoryCustom.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/cdi/QualifiedEntityManagerProducer.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/cdi/QualifiedFragment.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/cdi/QualifiedFragmentBean.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/cdi/QualifiedPersonRepository.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/cdi/RepositoryConsumer.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/cdi/SamplePersonRepository.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/cdi/SamplePersonRepositoryCustom.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/cdi/SamplePersonRepositoryImpl.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/cdi/Transactional.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/cdi/TransactionalInterceptor.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/cdi/UnqualifiedEntityManagerProducer.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/cdi/UnqualifiedPersonRepository.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/cdi/UserDB.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/config/AbstractAuditingViaJavaConfigRepositoriesTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/config/AbstractRepositoryConfigTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/config/AllowNestedRepositoriesRepositoryConfigTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/config/AuditingBeanDefinitionParserTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/config/CustomRepositoryFactoryConfigTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/config/DefaultAuditingViaJavaConfigRepositoriesTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/config/ExplicitAuditingViaJavaConfigRepositoriesTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/config/InfrastructureConfig.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/config/InspectionClassLoaderUnitTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/config/JpaAuditingRegistrarUnitTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/config/JpaRepositoriesRegistrarIntegrationTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/config/JpaRepositoriesRegistrarUnitTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/config/JpaRepositoryConfigDefinitionParserTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/config/JpaRepositoryConfigExtensionUnitTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/config/NestedRepositoriesJavaConfigTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/config/QueryLookupStrategyTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/config/RepositoriesJavaConfigTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/config/RepositoryAutoConfigTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/config/RepositoryConfigTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/config/TypeFilterConfigTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/config/package.html (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/custom/CustomGenericJpaRepository.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/custom/CustomGenericJpaRepositoryFactory.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/custom/CustomGenericJpaRepositoryFactoryBean.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/custom/CustomGenericRepository.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/custom/UserCustomExtendedRepository.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/custom/package-info.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/procedures/MySqlStoredProcedureIntegrationTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/procedures/PostgresStoredProcedureIntegrationTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/projections/ProjectionJoinIntegrationTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/projections/ProjectionsIntegrationTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/query/AbstractJpaQueryTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/query/AbstractStringBasedJpaQueryIntegrationTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/query/CustomNonBindableJpaParametersIntegrationTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/query/EclipseLinkJpa21UtilsTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/query/EclipseLinkParameterMetadataProviderIntegrationTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/query/EclipseLinkQueryUtilsIntegrationTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/query/EscapeCharacterUnitTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/query/ExpressionBasedStringQueryUnitTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/query/Jpa21UtilsTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/query/Jpa21UtilsUnitTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/query/JpaCountQueryCreatorIntegrationTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/query/JpaParametersUnitTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/query/JpaQueryExecutionUnitTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/query/JpaQueryLookupStrategyUnitTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/query/JpaQueryMethodUnitTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/query/LikeBindingUnitTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/query/NamedOrIndexedQueryParameterSetterUnitTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/query/NamedQueryUnitTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/query/OpenJpaJpa21UtilsTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/query/OpenJpaParameterMetadataProviderIntegrationTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/query/OpenJpaQueryUtilsIntegrationTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/query/ParameterBinderUnitTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/query/ParameterBindingParserUnitTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/query/ParameterExpressionProviderTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/query/ParameterMetadataProviderIntegrationTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/query/ParameterMetadataProviderUnitTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/query/PartTreeJpaQueryIntegrationTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/query/QueryParameterSetterFactoryUnitTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/query/QueryUtilsIntegrationTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/query/QueryUtilsUnitTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/query/SimpleJpaQueryUnitTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/query/StoredProcedureAttributeSourceUnitTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/query/StoredProcedureAttributesUnitTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/query/StringQueryUnitTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/query/TupleConverterUnitTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/sample/AnnotatedAuditableUserRepository.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/sample/AuditableUserRepository.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/sample/CategoryRepository.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/sample/ClassWithNestedRepository.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/sample/ConcreteRepository1.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/sample/ConcreteRepository2.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/sample/CustomAbstractPersistableRepository.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/sample/DummyRepository.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/sample/EmployeeRepositoryWithEmbeddedId.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/sample/EmployeeRepositoryWithIdClass.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/sample/EntityWithAssignedIdRepository.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/sample/ItemRepository.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/sample/ItemSiteRepository.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/sample/MailMessageRepository.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/sample/MappedTypeRepository.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/sample/NameOnlyDto.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/sample/ParentRepository.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/sample/ProductRepository.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/sample/RedeclaringRepositoryMethodsRepository.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/sample/RepositoryMethodsWithEntityGraphConfigRepository.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/sample/RoleRepository.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/sample/SampleConfig.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/sample/SampleEvaluationContextExtension.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/sample/SiteRepository.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/sample/UserRepository.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/sample/UserRepositoryCustom.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/sample/UserRepositoryImpl.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/support/CrudMethodMetadataPopulatingMethodInterceptorUnitTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/support/DefaultJpaContextIntegrationTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/support/DefaultJpaContextUnitTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/support/DefaultJpaEntityMetadataUnitTest.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/support/DefaultQueryHintsTest.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/support/DefaultTransactionDisablingIntegrationTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/support/EclipseLinkJpaMetamodelEntityInformationIntegrationTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/support/EclipseLinkJpaRepositoryTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/support/EclipseLinkProxyIdAccessorTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/support/EntityManagerBeanDefinitionRegistrarPostProcessorIntegrationTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/support/EntityManagerBeanDefinitionRegistrarPostProcessorUnitTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/support/EntityManagerFactoryRefTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/support/EntityManagerFactoryRefUnitTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/support/JavaConfigDefaultTransactionDisablingIntegrationTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/support/JpaEntityInformationSupportUnitTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/support/JpaMetamodelEntityInformationIntegrationTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/support/JpaMetamodelEntityInformationUnitTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/support/JpaPersistableEntityInformationUnitTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/support/JpaRepositoryFactoryBeanEntityPathResolverIntegrationTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/support/JpaRepositoryFactoryBeanUnitTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/support/JpaRepositoryFactoryUnitTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/support/JpaRepositoryTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/support/MailMessageRepositoryIntegrationTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/support/MutableQueryHintsUnitTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/support/OpenJpaJpaRepositoryTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/support/OpenJpaMetamodelEntityInformationIntegrationTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/support/OpenJpaProxyIdAccessorTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/support/QSimpleEntityPathResolverUnitTests_Sample.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/support/QuerydslIntegrationTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/support/QuerydslJpaPredicateExecutorUnitTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/support/QuerydslJpaRepositoryTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/support/QuerydslRepositorySupportIntegrationTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/support/QuerydslRepositorySupportTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/support/SimpleJpaRepositoryUnitTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/support/TransactionalRepositoryTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/support/XmlConfigDefaultTransactionDisablingIntegrationTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/repository/support/package.html (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/support/ClasspathScanningPersistenceUnitPostProcessorUnitTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/support/EntityManagerTestUtils.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/support/MergingPersistenceUnitManagerUnitTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/util/FixedDate.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/util/JpaMetamodelCacheCleanupIntegrationTests.java (100%) rename {src => spring-data-jpa/src}/test/java/org/springframework/data/jpa/util/JpaMetamodelUnitTests.java (100%) rename {src => spring-data-jpa/src}/test/resources/META-INF/jpa-named-queries.properties (100%) rename {src => spring-data-jpa/src}/test/resources/META-INF/orm.xml (100%) rename {src => spring-data-jpa/src}/test/resources/META-INF/persistence.xml (100%) rename {src => spring-data-jpa/src}/test/resources/META-INF/persistence2.xml (100%) rename {src => spring-data-jpa/src}/test/resources/application-context.xml (100%) rename {src => spring-data-jpa/src}/test/resources/auditing/auditing-bfpp-context.xml (100%) rename {src => spring-data-jpa/src}/test/resources/auditing/auditing-entity-listener.xml (100%) rename {src => spring-data-jpa/src}/test/resources/auditing/auditing-namespace-context.xml (100%) rename {src => spring-data-jpa/src}/test/resources/auditing/auditing-namespace-context2.xml (100%) rename {src => spring-data-jpa/src}/test/resources/auditing/auditing-namespace-context3.xml (100%) rename {src => spring-data-jpa/src}/test/resources/config/jpa-context-with-jndi.xml (100%) rename {src => spring-data-jpa/src}/test/resources/config/lookup-strategies-context.xml (100%) rename {src => spring-data-jpa/src}/test/resources/config/namespace-application-context.xml (100%) rename {src => spring-data-jpa/src}/test/resources/config/namespace-autoconfig-context.xml (100%) rename {src => spring-data-jpa/src}/test/resources/config/namespace-autoconfig-typefilter-context.xml (100%) rename {src => spring-data-jpa/src}/test/resources/config/namespace-customfactory-context.xml (100%) rename {src => spring-data-jpa/src}/test/resources/config/namespace-nested-repositories-application-context.xml (100%) rename {src => spring-data-jpa/src}/test/resources/eclipselink.xml (100%) rename {src => spring-data-jpa/src}/test/resources/hibernate.xml (100%) rename {src => spring-data-jpa/src}/test/resources/infrastructure.xml (100%) rename {src => spring-data-jpa/src}/test/resources/logback.xml (100%) rename {src => spring-data-jpa/src}/test/resources/multiple-entity-manager-context.xml (100%) rename {src => spring-data-jpa/src}/test/resources/multiple-entity-manager-integration-context.xml (100%) rename {src => spring-data-jpa/src}/test/resources/openjpa.xml (100%) rename {src => spring-data-jpa/src}/test/resources/org/springframework/data/jpa/repository/support/disable-default-transactions.xml (100%) rename {src => spring-data-jpa/src}/test/resources/org/springframework/data/jpa/support/mapping.xml (100%) rename {src => spring-data-jpa/src}/test/resources/org/springframework/data/jpa/support/module1/module1-orm.xml (100%) rename {src => spring-data-jpa/src}/test/resources/org/springframework/data/jpa/support/module2/module2-orm.xml (100%) rename {src => spring-data-jpa/src}/test/resources/org/springframework/data/jpa/support/persistence.xml (100%) rename {src => spring-data-jpa/src}/test/resources/org/springframework/data/jpa/support/persistence2.xml (100%) rename {src => spring-data-jpa/src}/test/resources/scripts/hsqldb-init.sql (100%) rename {src => spring-data-jpa/src}/test/resources/scripts/mysql-stored-procedures.sql (100%) rename {src => spring-data-jpa/src}/test/resources/scripts/postgres-stored-procedures.sql (100%) rename {src => spring-data-jpa/src}/test/resources/scripts/schema-stored-procedures.sql (100%) rename {src => spring-data-jpa/src}/test/resources/simple-persistence/simple-persistence.xml (100%) rename {src => spring-data-jpa/src}/test/resources/tx-manager.xml (100%) create mode 100644 src/main/asciidoc/envers.adoc delete mode 100644 template.mf diff --git a/pom.xml b/pom.xml index 4ff3ce005..3edbc5d5f 100644 --- a/pom.xml +++ b/pom.xml @@ -5,11 +5,12 @@ 4.0.0 org.springframework.data - spring-data-jpa + spring-data-jpa-parent 3.0.0-SNAPSHOT + pom - Spring Data JPA - Spring Data module for JPA repositories. + Spring Data JPA Parent + Parent module for Spring Data JPA repositories. https://projects.spring.io/spring-data-jpa @@ -21,8 +22,6 @@ 16 - DATAJPA - 3.0.2 5.6.0.Final 8.0.23 @@ -32,12 +31,17 @@ org.hibernate - spring.data.jpa - reuseReports + + spring-data-envers + spring-data-jpa + spring-data-jpa-distribution + + + all-dbs @@ -89,73 +93,6 @@ - - docs - - - - - maven-antrun-plugin - 1.8 - - - copy-schemas - prepare-package - - run - - - - - - - - - - - package-and-attach-docs-zip - package - - run - - - - - - - - - - - - - - org.codehaus.mojo - build-helper-maven-plugin - 1.10 - - - attach-zip - - attach-artifact - - package - - - - - ${project.build.directory}/${project.artifactId}-${project.version}.zip - - zip - - - - - - - - - @@ -170,263 +107,10 @@ - - - - ${project.groupId} - spring-data-commons - ${springdata.commons} - - - - org.springframework - spring-orm - - - - org.springframework - spring-context - - - - org.springframework - spring-aop - - - - org.springframework - spring-tx - - - - org.springframework - spring-beans - - - - org.springframework - spring-instrument - provided - - - - org.springframework - spring-core - - - commons-logging - commons-logging - - - - - - org.aspectj - aspectjweaver - ${aspectj} - test - - - - org.springframework - spring-aspects - compile - true - - - - org.hsqldb - hsqldb - 2.5.1 - test - - - - - mysql - mysql-connector-java - ${mysql-connector-java} - test - - - - org.testcontainers - mysql - test - - - org.slf4j - jcl-over-slf4j - - - - - - - org.postgresql - postgresql - ${postgresql} - test - - - - org.testcontainers - postgresql - test - - - - io.vavr - vavr - ${vavr} - test - - - - - - org.eclipse.persistence - org.eclipse.persistence.jpa - ${eclipselink} - true - - - - ${hibernate.groupId} - hibernate-core-jakarta - ${hibernate} - true - - - - ${hibernate.groupId} - hibernate-jpamodelgen-jakarta - ${hibernate} - provided - - - - jakarta.annotation - jakarta.annotation-api - ${jakarta-annotation-api} - - - - - com.querydsl - querydsl-apt - ${querydsl} - jakarta - provided - - - - com.querydsl - querydsl-jpa - jakarta - ${querydsl} - true - - - - - org.jmolecules.integrations - jmolecules-spring - ${jmolecules-integration} - test - - - - - - org.apache.geronimo.specs - geronimo-jcdi_2.0_spec - 1.0.1 - optional - - - - jakarta.interceptor - jakarta.interceptor-api - 2.0.0 - test - - - - jakarta.enterprise - jakarta.enterprise.cdi-api - ${cdi} - provided - true - - - - - org.apache.openwebbeans - openwebbeans-se - ${webbeans} - jakarta - test - - - org.apache.openwebbeans - openwebbeans-impl - - - org.apache.openwebbeans - openwebbeans-spi - - - - - org.apache.openwebbeans - openwebbeans-impl - ${webbeans} - jakarta - test - - - org.apache.openwebbeans - openwebbeans-spi - ${webbeans} - jakarta - test - - - - - - org.jacoco - jacoco-maven-plugin - ${jacoco} - - ${jacoco.destfile} - - - - jacoco-initialize - - prepare-agent - - - - - org.apache.maven.plugins maven-surefire-plugin @@ -520,65 +204,6 @@ - - io.starter - aspectj-maven-plugin - 1.12.9 - - - org.aspectj - aspectjrt - ${aspectj} - - - org.aspectj - aspectjtools - ${aspectj} - - - - - - compile - - process-classes - - - - true - - true - - - org.springframework - spring-aspects - - - - **/domain/support/AuditingEntityListener.java - - ${source.level} - ${source.level} - ${source.level} - aop.xml - - - - - org.apache.maven.plugins - maven-assembly-plugin - - - org.asciidoctor - asciidoctor-maven-plugin - @@ -598,6 +223,10 @@ spring-libs-milestone https://repo.spring.io/libs-milestone + + spring-libs-snapshot + https://repo.spring.io/libs-snapshot + diff --git a/formatting.xml b/spring-data-envers/etc/eclipse-formatter.xml similarity index 100% rename from formatting.xml rename to spring-data-envers/etc/eclipse-formatter.xml diff --git a/spring-data-envers/pom.xml b/spring-data-envers/pom.xml new file mode 100755 index 000000000..5e82ca77c --- /dev/null +++ b/spring-data-envers/pom.xml @@ -0,0 +1,87 @@ + + + 4.0.0 + + org.springframework.data + spring-data-envers + 3.0.0-SNAPSHOT + + + org.springframework.data + spring-data-jpa-parent + 3.0.0-SNAPSHOT + ../pom.xml + + + Spring Data Envers + Spring Data extension to work with Hibernate Envers + + + + Oliver Gierke + ogierke@pivotal.io + Pivotal Software, Inc. + www.spring.io + + + Philip Huegelmeyer + philip.huegelmeyer@ble.de + BLE + www.ble.de + + + Michael Igler + michael.igler@forward-tech.de + Freelancer + + + Jens Schauder + jschauder@vmware.com + VMware, Inc. + www.spring.io + + + + + https://github.com/SpringSource/spring-data-envers + + + + 5.5.7.Final + spring.data.envers + + + + + + org.springframework.data + spring-data-jpa + ${project.version} + + + + + org.hibernate + hibernate-envers-jakarta + ${hibernate.envers} + + + + com.querydsl + querydsl-jpa + ${querydsl} + jakarta + true + + + + + com.h2database + h2 + 1.4.200 + test + + + + diff --git a/spring-data-envers/src/main/java/org/springframework/data/envers/repository/config/EnableEnversRepositories.java b/spring-data-envers/src/main/java/org/springframework/data/envers/repository/config/EnableEnversRepositories.java new file mode 100644 index 000000000..ba7582d34 --- /dev/null +++ b/spring-data-envers/src/main/java/org/springframework/data/envers/repository/config/EnableEnversRepositories.java @@ -0,0 +1,199 @@ +/* + * Copyright 2021 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.envers.repository.config; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Inherited; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +import jakarta.persistence.EntityManagerFactory; + +import org.springframework.beans.factory.FactoryBean; +import org.springframework.context.annotation.ComponentScan.Filter; +import org.springframework.context.annotation.Lazy; +import org.springframework.core.annotation.AliasFor; +import org.springframework.data.envers.repository.support.EnversRevisionRepositoryFactoryBean; +import org.springframework.data.jpa.repository.config.EnableJpaRepositories; +import org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean; +import org.springframework.data.repository.config.BootstrapMode; +import org.springframework.data.repository.config.DefaultRepositoryBaseClass; +import org.springframework.data.repository.query.QueryLookupStrategy; +import org.springframework.data.repository.query.QueryLookupStrategy.Key; +import org.springframework.transaction.PlatformTransactionManager; + +/** + * Annotation to enable Envers repositories. Will scan the package of the annotated configuration class for Spring Data + * repositories by default. + *

+ * This annotation is a meta-annotation for {@link EnableJpaRepositories @EnableJpaRepositories} overriding the default + * {@link #repositoryFactoryBeanClass} to {@link EnversRevisionRepositoryFactoryBean}. + * + * @author Mark Paluch + * @since 2.5 + * @see EnableJpaRepositories + * @see AliasFor + */ +@Target(ElementType.TYPE) +@Retention(RetentionPolicy.RUNTIME) +@Documented +@Inherited +@EnableJpaRepositories +public @interface EnableEnversRepositories { + + /** + * Alias for the {@link #basePackages()} attribute. Allows for more concise annotation declarations e.g.: + * {@code @EnableJpaRepositories("org.my.pkg")} instead of + * {@code @EnableEnversRepositories(basePackages="org.my.pkg")}. + */ + @AliasFor(annotation = EnableJpaRepositories.class) + String[] value() default {}; + + /** + * Base packages to scan for annotated components. {@link #value()} is an alias for (and mutually exclusive with) this + * attribute. Use {@link #basePackageClasses()} for a type-safe alternative to String-based package names. + */ + @AliasFor(annotation = EnableJpaRepositories.class) + String[] basePackages() default {}; + + /** + * Type-safe alternative to {@link #basePackages()} for specifying the packages to scan for annotated components. The + * package of each class specified will be scanned. Consider creating a special no-op marker class or interface in + * each package that serves no purpose other than being referenced by this attribute. + */ + @AliasFor(annotation = EnableJpaRepositories.class) + Class[] basePackageClasses() default {}; + + /** + * Specifies which types are eligible for component scanning. Further narrows the set of candidate components from + * everything in {@link #basePackages()} to everything in the base packages that matches the given filter or filters. + */ + @AliasFor(annotation = EnableJpaRepositories.class) + Filter[] includeFilters() default {}; + + /** + * Specifies which types are not eligible for component scanning. + */ + @AliasFor(annotation = EnableJpaRepositories.class) + Filter[] excludeFilters() default {}; + + /** + * Returns the postfix to be used when looking up custom repository implementations. Defaults to {@literal Impl}. So + * for a repository named {@code PersonRepository} the corresponding implementation class will be looked up scanning + * for {@code PersonRepositoryImpl}. + * + * @return + */ + @AliasFor(annotation = EnableJpaRepositories.class) + String repositoryImplementationPostfix() default "Impl"; + + /** + * Configures the location of where to find the Spring Data named queries properties file. Will default to + * {@code META-INF/jpa-named-queries.properties}. + * + * @return + */ + @AliasFor(annotation = EnableJpaRepositories.class) + String namedQueriesLocation() default ""; + + /** + * Returns the key of the {@link QueryLookupStrategy} to be used for lookup queries for query methods. Defaults to + * {@link Key#CREATE_IF_NOT_FOUND}. + * + * @return + */ + @AliasFor(annotation = EnableJpaRepositories.class) + Key queryLookupStrategy() default Key.CREATE_IF_NOT_FOUND; + + /** + * Returns the {@link FactoryBean} class to be used for each repository instance. Defaults to + * {@link JpaRepositoryFactoryBean}. + * + * @return + */ + @AliasFor(annotation = EnableJpaRepositories.class) + Class repositoryFactoryBeanClass() default EnversRevisionRepositoryFactoryBean.class; + + /** + * Configure the repository base class to be used to create repository proxies for this particular configuration. + * + * @return + */ + @AliasFor(annotation = EnableJpaRepositories.class) + Class repositoryBaseClass() default DefaultRepositoryBaseClass.class; + + // JPA specific configuration + + /** + * Configures the name of the {@link EntityManagerFactory} bean definition to be used to create repositories + * discovered through this annotation. Defaults to {@code entityManagerFactory}. + * + * @return + */ + @AliasFor(annotation = EnableJpaRepositories.class) + String entityManagerFactoryRef() default "entityManagerFactory"; + + /** + * Configures the name of the {@link PlatformTransactionManager} bean definition to be used to create repositories + * discovered through this annotation. Defaults to {@code transactionManager}. + * + * @return + */ + @AliasFor(annotation = EnableJpaRepositories.class) + String transactionManagerRef() default "transactionManager"; + + /** + * Configures whether nested repository-interfaces (e.g. defined as inner classes) should be discovered by the + * repositories infrastructure. + */ + @AliasFor(annotation = EnableJpaRepositories.class) + boolean considerNestedRepositories() default false; + + /** + * Configures whether to enable default transactions for Spring Data JPA repositories. Defaults to {@literal true}. If + * disabled, repositories must be used behind a facade that's configuring transactions (e.g. using Spring's annotation + * driven transaction facilities) or repository methods have to be used to demarcate transactions. + * + * @return whether to enable default transactions, defaults to {@literal true}. + */ + @AliasFor(annotation = EnableJpaRepositories.class) + boolean enableDefaultTransactions() default true; + + /** + * Configures when the repositories are initialized in the bootstrap lifecycle. {@link BootstrapMode#DEFAULT} + * (default) means eager initialization except all repository interfaces annotated with {@link Lazy}, + * {@link BootstrapMode#LAZY} means lazy by default including injection of lazy-initialization proxies into client + * beans so that those can be instantiated but will only trigger the initialization upon first repository usage (i.e a + * method invocation on it). This means repositories can still be uninitialized when the application context has + * completed its bootstrap. {@link BootstrapMode#DEFERRED} is fundamentally the same as {@link BootstrapMode#LAZY}, + * but triggers repository initialization when the application context finishes its bootstrap. + * + * @return + */ + @AliasFor(annotation = EnableJpaRepositories.class) + BootstrapMode bootstrapMode() default BootstrapMode.DEFAULT; + + /** + * Configures what character is used to escape the wildcards {@literal _} and {@literal %} in derived queries with + * {@literal contains}, {@literal startsWith} or {@literal endsWith} clauses. + * + * @return a single character used for escaping. + */ + @AliasFor(annotation = EnableJpaRepositories.class) + char escapeCharacter() default '\\'; +} diff --git a/spring-data-envers/src/main/java/org/springframework/data/envers/repository/config/package-info.java b/spring-data-envers/src/main/java/org/springframework/data/envers/repository/config/package-info.java new file mode 100644 index 000000000..2e79b25c0 --- /dev/null +++ b/spring-data-envers/src/main/java/org/springframework/data/envers/repository/config/package-info.java @@ -0,0 +1,5 @@ +/** + * Classes for Envers Repositories configuration support. + */ +@org.springframework.lang.NonNullApi +package org.springframework.data.envers.repository.config; diff --git a/spring-data-envers/src/main/java/org/springframework/data/envers/repository/support/DefaultRevisionEntityInformation.java b/spring-data-envers/src/main/java/org/springframework/data/envers/repository/support/DefaultRevisionEntityInformation.java new file mode 100644 index 000000000..b01edde01 --- /dev/null +++ b/spring-data-envers/src/main/java/org/springframework/data/envers/repository/support/DefaultRevisionEntityInformation.java @@ -0,0 +1,51 @@ +/* + * Copyright 2012-2021 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.envers.repository.support; + +import org.hibernate.envers.DefaultRevisionEntity; +import org.springframework.data.repository.history.support.RevisionEntityInformation; + +/** + * {@link RevisionEntityInformation} for {@link DefaultRevisionEntity}. + * + * @author Oliver Gierke + */ +class DefaultRevisionEntityInformation implements RevisionEntityInformation { + + /* + * (non-Javadoc) + * @see org.springframework.data.repository.history.support.RevisionEntityInformation#getRevisionNumberType() + */ + public Class getRevisionNumberType() { + return Integer.class; + } + + /* + * (non-Javadoc) + * @see org.springframework.data.repository.history.support.RevisionEntityInformation#isDefaultRevisionEntity() + */ + public boolean isDefaultRevisionEntity() { + return true; + } + + /* + * (non-Javadoc) + * @see org.springframework.data.repository.history.support.RevisionEntityInformation#getRevisionEntityClass() + */ + public Class getRevisionEntityClass() { + return DefaultRevisionEntity.class; + } +} diff --git a/spring-data-envers/src/main/java/org/springframework/data/envers/repository/support/DefaultRevisionMetadata.java b/spring-data-envers/src/main/java/org/springframework/data/envers/repository/support/DefaultRevisionMetadata.java new file mode 100755 index 000000000..912d10cf5 --- /dev/null +++ b/spring-data-envers/src/main/java/org/springframework/data/envers/repository/support/DefaultRevisionMetadata.java @@ -0,0 +1,123 @@ +/* + * Copyright 2012-2021 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.envers.repository.support; + +import java.time.Instant; +import java.time.LocalDateTime; +import java.time.ZoneOffset; +import java.util.Optional; + +import org.hibernate.envers.DefaultRevisionEntity; + +import org.springframework.data.history.RevisionMetadata; +import org.springframework.util.Assert; + +/** + * {@link RevisionMetadata} working with a {@link DefaultRevisionEntity}. The entity/delegate itself gets ignored for + * {@link #equals(Object)} and {@link #hashCode()} since they depend on the way they were obtained. + * + * @author Oliver Gierke + * @author Philip Huegelmeyer + * @author Jens Schauder + */ +public final class DefaultRevisionMetadata implements RevisionMetadata { + + private final DefaultRevisionEntity entity; + private final RevisionType revisionType; + + public DefaultRevisionMetadata(DefaultRevisionEntity entity) { + this(entity, RevisionType.UNKNOWN); + } + + public DefaultRevisionMetadata(DefaultRevisionEntity entity, RevisionType revisionType) { + + Assert.notNull(entity, "DefaultRevisionEntity must not be null"); + + this.entity = entity; + this.revisionType = revisionType; + } + + /* + * (non-Javadoc) + * @see org.springframework.data.history.RevisionMetadata#getRevisionNumber() + */ + public Optional getRevisionNumber() { + return Optional.of(entity.getId()); + } + + /* + * (non-Javadoc) + * @see org.springframework.data.history.RevisionMetadata#getRevisionDate() + */ + @Deprecated + public Optional getRevisionDate() { + return getRevisionInstant().map(instant -> LocalDateTime.ofInstant(instant, ZoneOffset.systemDefault())); + } + + /* + * (non-Javadoc) + * @see org.springframework.data.history.RevisionMetadata#getRevisionInstant() + */ + @Override + public Optional getRevisionInstant() { + return Optional.of(Instant.ofEpochMilli(entity.getTimestamp())); + } + + /* + * (non-Javadoc) + * @see org.springframework.data.history.RevisionMetadata#getDelegate() + */ + @SuppressWarnings("unchecked") + public T getDelegate() { + return (T) entity; + } + + /* + * (non-Javadoc) + * @see org.springframework.data.history.RevisionMetadata#getRevisionType() + */ + @Override + public RevisionType getRevisionType() { + return revisionType; + } + + /* + * (non-Javadoc) + * @see java.lang.Object#equals(java.lang.Object) + */ + @Override + public boolean equals(Object o) { + + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DefaultRevisionMetadata that = (DefaultRevisionMetadata) o; + return getRevisionNumber().equals(that.getRevisionNumber()) + && getRevisionInstant().equals(that.getRevisionInstant()) && revisionType.equals(that.getRevisionType()); + } + + /* + * (non-Javadoc) + * @see java.lang.Object#toString() + */ + @Override + public String toString() { + return "DefaultRevisionMetadata{" + "entity=" + entity + ", revisionType=" + revisionType + '}'; + } +} diff --git a/spring-data-envers/src/main/java/org/springframework/data/envers/repository/support/EnversRevisionRepository.java b/spring-data-envers/src/main/java/org/springframework/data/envers/repository/support/EnversRevisionRepository.java new file mode 100644 index 000000000..79beff3d6 --- /dev/null +++ b/spring-data-envers/src/main/java/org/springframework/data/envers/repository/support/EnversRevisionRepository.java @@ -0,0 +1,37 @@ +/* + * Copyright 2012-2021 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.envers.repository.support; + +import java.io.Serializable; + +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.repository.NoRepositoryBean; +import org.springframework.data.repository.history.RevisionRepository; + +/** + * Convenience interface to allow pulling in {@link JpaRepository} and {@link RevisionRepository} functionality in one + * go. + * + * @author Oliver Gierke + * @author Michael Igler + * @deprecated since 1.1, in favor of simply extending {@link RevisionRepository}. + */ +@Deprecated +@NoRepositoryBean +public interface EnversRevisionRepository> + extends RevisionRepository, JpaRepository { + +} diff --git a/spring-data-envers/src/main/java/org/springframework/data/envers/repository/support/EnversRevisionRepositoryFactoryBean.java b/spring-data-envers/src/main/java/org/springframework/data/envers/repository/support/EnversRevisionRepositoryFactoryBean.java new file mode 100755 index 000000000..12819f261 --- /dev/null +++ b/spring-data-envers/src/main/java/org/springframework/data/envers/repository/support/EnversRevisionRepositoryFactoryBean.java @@ -0,0 +1,113 @@ +/* + * Copyright 2012-2021 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.envers.repository.support; + +import java.util.Optional; + +import jakarta.persistence.EntityManager; + +import org.hibernate.envers.DefaultRevisionEntity; +import org.springframework.beans.factory.FactoryBean; +import org.springframework.data.jpa.repository.support.JpaRepositoryFactory; +import org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean; +import org.springframework.data.repository.core.RepositoryMetadata; +import org.springframework.data.repository.core.support.RepositoryComposition.RepositoryFragments; +import org.springframework.data.repository.core.support.RepositoryFactorySupport; +import org.springframework.data.repository.history.RevisionRepository; +import org.springframework.data.repository.history.support.RevisionEntityInformation; + +/** + * {@link FactoryBean} creating {@link RevisionRepository} instances. + * + * @author Oliver Gierke + * @author Michael Igler + */ +public class EnversRevisionRepositoryFactoryBean, S, ID, N extends Number & Comparable> + extends JpaRepositoryFactoryBean { + + private Class revisionEntityClass; + + /** + * Creates a new {@link EnversRevisionRepositoryFactoryBean} for the given repository interface. + * + * @param repositoryInterface must not be {@literal null}. + */ + public EnversRevisionRepositoryFactoryBean(Class repositoryInterface) { + super(repositoryInterface); + } + + /** + * Configures the revision entity class. Will default to {@link DefaultRevisionEntity}. + * + * @param revisionEntityClass + */ + public void setRevisionEntityClass(Class revisionEntityClass) { + this.revisionEntityClass = revisionEntityClass; + } + + /* + * (non-Javadoc) + * @see org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean#createRepositoryFactory(jakarta.persistence.EntityManager) + */ + @Override + protected RepositoryFactorySupport createRepositoryFactory(EntityManager entityManager) { + return new RevisionRepositoryFactory(entityManager, revisionEntityClass); + } + + /** + * Repository factory creating {@link RevisionRepository} instances. + * + * @author Oliver Gierke + * @author Jens Schauder + */ + private static class RevisionRepositoryFactory> extends JpaRepositoryFactory { + + private final RevisionEntityInformation revisionEntityInformation; + private final EntityManager entityManager; + + /** + * Creates a new {@link RevisionRepositoryFactory} using the given {@link EntityManager} and revision entity class. + * + * @param entityManager must not be {@literal null}. + * @param revisionEntityClass can be {@literal null}, will default to {@link DefaultRevisionEntity}. + */ + public RevisionRepositoryFactory(EntityManager entityManager, Class revisionEntityClass) { + + super(entityManager); + + this.entityManager = entityManager; + this.revisionEntityInformation = Optional.ofNullable(revisionEntityClass) // + .filter(it -> !it.equals(DefaultRevisionEntity.class))// + . map(ReflectionRevisionEntityInformation::new) // + .orElseGet(DefaultRevisionEntityInformation::new); + } + + @Override + protected RepositoryFragments getRepositoryFragments(RepositoryMetadata metadata) { + + Object fragmentImplementation = getTargetRepositoryViaReflection( // + EnversRevisionRepositoryImpl.class, // + getEntityInformation(metadata.getDomainType()), // + revisionEntityInformation, // + entityManager // + ); + + return RepositoryFragments // + .just(fragmentImplementation) // + .append(super.getRepositoryFragments(metadata)); + } + } +} diff --git a/spring-data-envers/src/main/java/org/springframework/data/envers/repository/support/EnversRevisionRepositoryImpl.java b/spring-data-envers/src/main/java/org/springframework/data/envers/repository/support/EnversRevisionRepositoryImpl.java new file mode 100755 index 000000000..dae06837f --- /dev/null +++ b/spring-data-envers/src/main/java/org/springframework/data/envers/repository/support/EnversRevisionRepositoryImpl.java @@ -0,0 +1,230 @@ +/* + * Copyright 2012-2021 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.envers.repository.support; + +import static org.springframework.data.history.RevisionMetadata.RevisionType.*; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + +import jakarta.persistence.EntityManager; + +import org.hibernate.envers.AuditReader; +import org.hibernate.envers.AuditReaderFactory; +import org.hibernate.envers.DefaultRevisionEntity; +import org.hibernate.envers.RevisionNumber; +import org.hibernate.envers.RevisionTimestamp; +import org.hibernate.envers.RevisionType; +import org.hibernate.envers.query.AuditEntity; +import org.hibernate.envers.query.AuditQuery; +import org.hibernate.envers.query.order.AuditOrder; + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.Pageable; +import org.springframework.data.history.AnnotationRevisionMetadata; +import org.springframework.data.history.Revision; +import org.springframework.data.history.RevisionMetadata; +import org.springframework.data.history.RevisionSort; +import org.springframework.data.history.Revisions; +import org.springframework.data.jpa.repository.support.JpaEntityInformation; +import org.springframework.data.repository.core.EntityInformation; +import org.springframework.data.repository.history.RevisionRepository; +import org.springframework.data.repository.history.support.RevisionEntityInformation; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.Assert; + +/** + * Repository implementation using Hibernate Envers to implement revision specific query methods. + * + * @author Oliver Gierke + * @author Philipp Huegelmeyer + * @author Michael Igler + * @author Jens Schauder + * @author Julien Millau + * @author Mark Paluch + * @author Sander Bylemans + */ +@Transactional(readOnly = true) +public class EnversRevisionRepositoryImpl> + implements RevisionRepository { + + private final EntityInformation entityInformation; + private final EntityManager entityManager; + + /** + * Creates a new {@link EnversRevisionRepositoryImpl} using the given {@link JpaEntityInformation}, + * {@link RevisionEntityInformation} and {@link EntityManager}. + * + * @param entityInformation must not be {@literal null}. + * @param revisionEntityInformation must not be {@literal null}. + * @param entityManager must not be {@literal null}. + */ + public EnversRevisionRepositoryImpl(JpaEntityInformation entityInformation, + RevisionEntityInformation revisionEntityInformation, EntityManager entityManager) { + + Assert.notNull(revisionEntityInformation, "RevisionEntityInformation must not be null!"); + + this.entityInformation = entityInformation; + this.entityManager = entityManager; + } + + /* + * (non-Javadoc) + * @see org.springframework.data.repository.history.RevisionRepository#findLastChangeRevision(java.io.Serializable) + */ + @SuppressWarnings("unchecked") + public Optional> findLastChangeRevision(ID id) { + + List singleResult = createBaseQuery(id) // + .addOrder(AuditEntity.revisionProperty("timestamp").desc()) // + .setMaxResults(1) // + .getResultList(); + + Assert.state(singleResult.size() <= 1, "We expect at most one result."); + + if (singleResult.isEmpty()) { + return Optional.empty(); + } + + return Optional.of(createRevision(new QueryResult<>(singleResult.get(0)))); + } + + /* + * (non-Javadoc) + * @see org.springframework.data.envers.repository.support.EnversRevisionRepository#findRevision(java.io.Serializable, java.lang.Number) + */ + @Override + @SuppressWarnings("unchecked") + public Optional> findRevision(ID id, N revisionNumber) { + + Assert.notNull(id, "Identifier must not be null!"); + Assert.notNull(revisionNumber, "Revision number must not be null!"); + + List singleResult = (List) createBaseQuery(id) // + .add(AuditEntity.revisionNumber().eq(revisionNumber)) // + .getResultList(); + + Assert.state(singleResult.size() <= 1, "We expect at most one result."); + + if (singleResult.isEmpty()) { + return Optional.empty(); + } + + return Optional.of(createRevision(new QueryResult<>(singleResult.get(0)))); + } + + @SuppressWarnings("unchecked") + public Revisions findRevisions(ID id) { + + List resultList = createBaseQuery(id).getResultList(); + List> revisionList = new ArrayList<>(resultList.size()); + + for (Object[] objects : resultList) { + revisionList.add(createRevision(new QueryResult<>(objects))); + } + + return Revisions.of(revisionList); + } + + @SuppressWarnings("unchecked") + public Page> findRevisions(ID id, Pageable pageable) { + + AuditOrder sorting = RevisionSort.getRevisionDirection(pageable.getSort()).isDescending() // + ? AuditEntity.revisionNumber().desc() // + : AuditEntity.revisionNumber().asc(); + + List resultList = createBaseQuery(id) // + .addOrder(sorting) // + .setFirstResult((int) pageable.getOffset()) // + .setMaxResults(pageable.getPageSize()) // + .getResultList(); + + Long count = (Long) createBaseQuery(id) // + .addProjection(AuditEntity.revisionNumber().count()).getSingleResult(); + + List> revisions = new ArrayList<>(); + + for (Object[] singleResult : resultList) { + revisions.add(createRevision(new QueryResult<>(singleResult))); + } + + return new PageImpl<>(revisions, pageable, count); + } + + private AuditQuery createBaseQuery(ID id) { + + Class type = entityInformation.getJavaType(); + AuditReader reader = AuditReaderFactory.get(entityManager); + + return reader.createQuery() // + .forRevisionsOfEntity(type, false, true) // + .add(AuditEntity.id().eq(id)); + } + + @SuppressWarnings("unchecked") + private Revision createRevision(QueryResult queryResult) { + return Revision.of((RevisionMetadata) queryResult.createRevisionMetadata(), queryResult.entity); + } + + @SuppressWarnings("unchecked") + static class QueryResult { + + private final T entity; + private final Object metadata; + private final RevisionMetadata.RevisionType revisionType; + + QueryResult(Object[] data) { + + Assert.notNull(data, "Data must not be null"); + Assert.isTrue( // + data.length == 3, // + () -> String.format("Data must have length three, but has length %d.", data.length)); + Assert.isTrue( // + data[2] instanceof RevisionType, // + () -> String.format("The third array element must be of type Revision type, but is of type %s", + data[2].getClass())); + + entity = (T) data[0]; + metadata = data[1]; + revisionType = convertRevisionType((RevisionType) data[2]); + } + + RevisionMetadata createRevisionMetadata() { + + return metadata instanceof DefaultRevisionEntity // + ? new DefaultRevisionMetadata((DefaultRevisionEntity) metadata, revisionType) // + : new AnnotationRevisionMetadata<>(metadata, RevisionNumber.class, RevisionTimestamp.class, revisionType); + } + + private static RevisionMetadata.RevisionType convertRevisionType(RevisionType datum) { + + switch (datum) { + + case ADD: + return INSERT; + case MOD: + return UPDATE; + case DEL: + return DELETE; + default: + return UNKNOWN; + } + } + } + +} diff --git a/spring-data-envers/src/main/java/org/springframework/data/envers/repository/support/ReflectionRevisionEntityInformation.java b/spring-data-envers/src/main/java/org/springframework/data/envers/repository/support/ReflectionRevisionEntityInformation.java new file mode 100644 index 000000000..6edd4e9ad --- /dev/null +++ b/spring-data-envers/src/main/java/org/springframework/data/envers/repository/support/ReflectionRevisionEntityInformation.java @@ -0,0 +1,68 @@ +/* + * Copyright 2012-2021 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.envers.repository.support; + +import org.hibernate.envers.RevisionNumber; + +import org.springframework.data.repository.history.support.RevisionEntityInformation; +import org.springframework.data.util.AnnotationDetectionFieldCallback; +import org.springframework.util.Assert; +import org.springframework.util.ReflectionUtils; + +/** + * {@link RevisionEntityInformation} that uses reflection to inspect a property annotated with {@link RevisionNumber} to + * find out about the revision number type. + * + * @author Oliver Gierke + */ +public class ReflectionRevisionEntityInformation implements RevisionEntityInformation { + + private final Class revisionEntityClass; + private final Class revisionNumberType; + + /** + * Creates a new {@link ReflectionRevisionEntityInformation} inspecting the given revision entity class. + * + * @param revisionEntityClass must not be {@literal null}. + */ + public ReflectionRevisionEntityInformation(Class revisionEntityClass) { + + Assert.notNull(revisionEntityClass, "Revision entity type must not be null!"); + + AnnotationDetectionFieldCallback fieldCallback = new AnnotationDetectionFieldCallback(RevisionNumber.class); + ReflectionUtils.doWithFields(revisionEntityClass, fieldCallback); + + this.revisionNumberType = fieldCallback.getRequiredType(); + this.revisionEntityClass = revisionEntityClass; + + } + + /* + * (non-Javadoc) + * @see org.springframework.data.repository.history.support.RevisionEntityInformation#isDefaultRevisionEntity() + */ + public boolean isDefaultRevisionEntity() { + return false; + } + + public Class getRevisionEntityClass() { + return this.revisionEntityClass; + } + + public Class getRevisionNumberType() { + return this.revisionNumberType; + } +} diff --git a/spring-data-envers/src/main/java/org/springframework/data/envers/repository/support/package-info.java b/spring-data-envers/src/main/java/org/springframework/data/envers/repository/support/package-info.java new file mode 100644 index 000000000..dd135fdac --- /dev/null +++ b/spring-data-envers/src/main/java/org/springframework/data/envers/repository/support/package-info.java @@ -0,0 +1,5 @@ +/** + * Spring Data JPA specific converter infrastructure. + */ +@org.springframework.lang.NonNullApi +package org.springframework.data.envers.repository.support; diff --git a/spring-data-envers/src/main/resources/changelog.txt b/spring-data-envers/src/main/resources/changelog.txt new file mode 100644 index 000000000..01822a191 --- /dev/null +++ b/spring-data-envers/src/main/resources/changelog.txt @@ -0,0 +1,260 @@ +Spring Data Envers Changelog +========================== + +Changes in version 2.6.0-M1 (2021-07-16) +---------------------------------------- +* #305 - Upgrade to Envers 5.5.3.Final. +* #288 - Update CI to Java 16. + + +Changes in version 2.4.11 (2021-07-16) +-------------------------------------- + + +Changes in version 2.5.2 (2021-06-22) +------------------------------------- + + +Changes in version 2.4.10 (2021-06-22) +-------------------------------------- + + +Changes in version 2.5.1 (2021-05-14) +------------------------------------- + + +Changes in version 2.4.9 (2021-05-14) +------------------------------------- + + +Changes in version 2.5.0 (2021-04-14) +------------------------------------- + + +Changes in version 2.4.8 (2021-04-14) +------------------------------------- + + +Changes in version 2.3.9.RELEASE (2021-04-14) +--------------------------------------------- + + +Changes in version 2.4.7 (2021-03-31) +------------------------------------- + + +Changes in version 2.5.0-RC1 (2021-03-31) +----------------------------------------- +* #289 - Investigate `@EnableEnversRepositories` meta-annotation. + + +Changes in version 2.5.0-M5 (2021-03-17) +---------------------------------------- +* #283 - Editing pass. +* #282 - Add Java config example, fix StackOverflow tag URL. +* #61 - Spring Data Envers Documentation Only Contains General Spring Data Information. + + +Changes in version 2.4.6 (2021-03-17) +------------------------------------- +* #283 - Editing pass. +* #282 - Add Java config example, fix StackOverflow tag URL. +* #61 - Spring Data Envers Documentation Only Contains General Spring Data Information. + + +Changes in version 2.3.8.RELEASE (2021-03-17) +--------------------------------------------- +* #283 - Editing pass. +* #282 - Add Java config example, fix StackOverflow tag URL. +* #61 - Spring Data Envers Documentation Only Contains General Spring Data Information. + + +Changes in version 2.5.0-M4 (2021-02-18) +---------------------------------------- + + +Changes in version 2.4.5 (2021-02-18) +------------------------------------- + + +Changes in version 2.5.0-M3 (2021-02-17) +---------------------------------------- +* #265 - Enable Project automation through GitHub Actions. + + +Changes in version 2.4.4 (2021-02-17) +------------------------------------- + + +Changes in version 2.3.7.RELEASE (2021-02-17) +--------------------------------------------- +* #271 - Update copyright year to 2021. +* #266 - Update CI jobs with Docker Login. + + +Changes in version 2.5.0-M2 (2021-01-13) +---------------------------------------- +* #271 - Update copyright year to 2021. +* #266 - Update CI jobs with Docker Login. + + +Changes in version 2.4.3 (2021-01-13) +------------------------------------- +* #271 - Update copyright year to 2021. +* #266 - Update CI jobs with Docker Login. + + +Changes in version 2.4.2 (2020-12-09) +------------------------------------- +* #263 - Release 2.4.2 (2020.0.2). + + +Changes in version 2.5.0-M1 (2020-12-09) +---------------------------------------- +* #265 - Enable Project automation through GitHub Actions. +* #262 - Release 2.5 M1 (2021.0.0). + + +Changes in version 2.3.6.RELEASE (2020-12-09) +--------------------------------------------- +* #260 - Release 2.3.6 (Neumann SR6). + + +Changes in version 2.4.1 (2020-11-11) +------------------------------------- +* #261 - Release 2.4.1 (2020.0.1). + + +Changes in version 2.4.0 (2020-10-28) +------------------------------------- +* #257 - Release 2.4 GA (2020.0.0). + + +Changes in version 2.3.5.RELEASE (2020-10-28) +--------------------------------------------- +* #254 - Release 2.3.5 (Neumann SR5). + + +Changes in version 2.4.0-RC2 (2020-10-14) +----------------------------------------- +* #256 - Update CI jobs for Java 15. +* #255 - Release 2.4 RC2 (2020.0.0). + + +Changes in version 2.4.0-RC1 (2020-09-16) +----------------------------------------- +* #251 - Release 2.4 RC1 (2020.0.0). + + +Changes in version 2.3.4.RELEASE (2020-09-16) +--------------------------------------------- +* #252 - Release 2.3.4 (Neumann SR4). + + +Changes in version 2.3.3.RELEASE (2020-08-12) +--------------------------------------------- +* #247 - Release 2.3.3 (Neumann SR3). + + +Changes in version 2.4.0-M2 (2020-08-12) +---------------------------------------- +* #244 - Release 2.4 M2 (2020.0.0). + + +Changes in version 2.3.2.RELEASE (2020-07-22) +--------------------------------------------- +* #242 - Release 2.3.2 (Neumann SR2). + + +Changes in version 2.4.0-M1 (2020-06-25) +---------------------------------------- +* #239 - Use standard Spring code of conduct. +* #238 - Delombok source files. +* #237 - Release 2.4 M1 (2020.0.0). + + +Changes in version 2.3.1.RELEASE (2020-06-10) +--------------------------------------------- +* #236 - Release 2.3.1 (Neumann SR1). + + +Changes in version 2.3.0.RELEASE (2020-05-12) +--------------------------------------------- +* #234 - Release 2.3 GA (Neumann). + + +Changes in version 2.3.0.RC2 (2020-04-28) +----------------------------------------- +* #230 - Use JDK 14 for Java.NEXT CI testing. +* #229 - Release 2.3 RC2 (Neumann). +* #215 - RevisionType always Unknown in RevisionMetadata. + + +Changes in version 2.3.0.RC1 (2020-03-31) +----------------------------------------- +* #224 - Release 2.3 RC1 (Neumann). + + +Changes in version 2.3.0.M4 (2020-03-11) +---------------------------------------- +* #221 - Release 2.3 M4 (Neumann). + + +Changes in version 2.3.0.M3 (2020-02-12) +---------------------------------------- +* #220 - Release 2.3 M3 (Neumann). + + +Changes in version 2.3.0.M2 (2020-01-17) +---------------------------------------- +* #219 - Release 2.3 M2 (Neumann). + + +Changes in version 2.3.0.M1 (2020-01-16) +---------------------------------------- +* #210 - Upgrade to Envers 5.4.8. +* #205 - Release 2.3 M1 (Neumann). + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/spring-data-envers/src/main/resources/license.txt b/spring-data-envers/src/main/resources/license.txt new file mode 100644 index 000000000..421157707 --- /dev/null +++ b/spring-data-envers/src/main/resources/license.txt @@ -0,0 +1,279 @@ + Apache License + Version 2.0, January 2004 + https://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. + +======================================================================= + +SPRING FRAMEWORK ${version} SUBCOMPONENTS: + +Spring Framework ${version} includes a number of subcomponents +with separate copyright notices and license terms. The product that +includes this file does not necessarily use all the open source +subcomponents referred to below. Your use of the source +code for these subcomponents is subject to the terms and +conditions of the following licenses. + + +>>> ASM 4.0 (org.ow2.asm:asm:4.0, org.ow2.asm:asm-commons:4.0): + +Copyright (c) 2000-2011 INRIA, France Telecom +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +3. Neither the name of the copyright holders nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF +THE POSSIBILITY OF SUCH DAMAGE. + +Copyright (c) 1999-2009, OW2 Consortium + + +>>> CGLIB 3.0 (cglib:cglib:3.0): + +Per the LICENSE file in the CGLIB JAR distribution downloaded from +https://sourceforge.net/projects/cglib/files/cglib3/3.0/cglib-3.0.jar/download, +CGLIB 3.0 is licensed under the Apache License, version 2.0, the text of which +is included above. + + +======================================================================= + +To the extent any open source subcomponents are licensed under the EPL and/or +other similar licenses that require the source code and/or modifications to +source code to be made available (as would be noted above), you may obtain a +copy of the source code corresponding to the binaries for such open source +components and modifications thereto, if any, (the "Source Files"), by +downloading the Source Files from https://www.springsource.org/download, or by +sending a request, with your name and address to: + + VMware, Inc., 3401 Hillview Avenue + Palo Alto, CA 94304 + United States of America + +or email info@vmware.com. All such requests should clearly specify: + + OPEN SOURCE FILES REQUEST + Attention General Counsel + +VMware shall mail a copy of the Source Files to you on a CD or equivalent +physical medium. This offer to obtain a copy of the Source Files is valid for +three years from the date you acquired this Software product. \ No newline at end of file diff --git a/spring-data-envers/src/main/resources/notice.txt b/spring-data-envers/src/main/resources/notice.txt new file mode 100644 index 000000000..2eadbe8f3 --- /dev/null +++ b/spring-data-envers/src/main/resources/notice.txt @@ -0,0 +1,33 @@ +Spring Data Envers 2.6 M3 (2021.1.0) +Copyright (c) 2015-2019 Pivotal Software, Inc. + +This product is licensed to you under the Apache License, Version 2.0 +(the "License"). You may not use this product except in compliance with +the License. + +This product may include a number of subcomponents with separate +copyright notices and license terms. Your use of the source code for +these subcomponents is subject to the terms and conditions of the +subcomponent's license, as noted in the license.txt file. + + + + + + + + + + + + + + + + + + + + + + diff --git a/spring-data-envers/src/test/java/org/springframework/data/envers/Config.java b/spring-data-envers/src/test/java/org/springframework/data/envers/Config.java new file mode 100755 index 000000000..93ad2f51b --- /dev/null +++ b/spring-data-envers/src/test/java/org/springframework/data/envers/Config.java @@ -0,0 +1,76 @@ +/* + * Copyright 2012-2021 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.envers; + +import java.sql.SQLException; +import java.util.Collections; +import java.util.Map; + +import javax.sql.DataSource; + +import org.hibernate.envers.strategy.ValidityAuditStrategy; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.data.envers.repository.config.EnableEnversRepositories; +import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder; +import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType; +import org.springframework.orm.jpa.AbstractEntityManagerFactoryBean; +import org.springframework.orm.jpa.JpaTransactionManager; +import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; +import org.springframework.orm.jpa.vendor.Database; +import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter; +import org.springframework.transaction.PlatformTransactionManager; + +/** + * Spring JavaConfig configuration for general infrastructure. + * + * @author Oliver Gierke + */ +@Configuration +@EnableEnversRepositories +public class Config { + + @Bean + public DataSource dataSource() throws SQLException { + return new EmbeddedDatabaseBuilder().setType(EmbeddedDatabaseType.H2).build(); + } + + @Bean + public PlatformTransactionManager transactionManager() throws SQLException { + return new JpaTransactionManager(); + } + + @Bean + public AbstractEntityManagerFactoryBean entityManagerFactory() throws SQLException { + + HibernateJpaVendorAdapter jpaVendorAdapter = new HibernateJpaVendorAdapter(); + jpaVendorAdapter.setDatabase(Database.H2); + jpaVendorAdapter.setGenerateDdl(true); + + LocalContainerEntityManagerFactoryBean bean = new LocalContainerEntityManagerFactoryBean(); + bean.setJpaVendorAdapter(jpaVendorAdapter); + bean.setPackagesToScan(Config.class.getPackage().getName()); + bean.setDataSource(dataSource()); + bean.setJpaPropertyMap(jpaProperties()); + + return bean; + } + + private Map jpaProperties() { + return Collections.singletonMap("org.hibernate.envers.audit_strategy", ValidityAuditStrategy.class.getName()); + } +} diff --git a/spring-data-envers/src/test/java/org/springframework/data/envers/repository/support/DefaultRevisionMetadataUnitTests.java b/spring-data-envers/src/test/java/org/springframework/data/envers/repository/support/DefaultRevisionMetadataUnitTests.java new file mode 100644 index 000000000..9a4176082 --- /dev/null +++ b/spring-data-envers/src/test/java/org/springframework/data/envers/repository/support/DefaultRevisionMetadataUnitTests.java @@ -0,0 +1,50 @@ +/* + * Copyright 2012-2021 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.envers.repository.support; + +import static org.assertj.core.api.Assertions.*; + +import java.time.Instant; +import java.time.LocalDateTime; +import java.time.ZoneOffset; +import java.time.temporal.ChronoUnit; + +import org.hibernate.envers.DefaultRevisionEntity; +import org.junit.jupiter.api.Test; + +/** + * Unit tests for {@link DefaultRevisionMetadata}. + * + * @author Benedikt Ritter + * @author Jens Schauder + * @author Mark Paluch + */ +class DefaultRevisionMetadataUnitTests { + + private static final Instant NOW = Instant.now();; + + @Test // #112 + void createsLocalDateTimeFromTimestamp() { + + DefaultRevisionEntity entity = new DefaultRevisionEntity(); + entity.setTimestamp(NOW.toEpochMilli()); + + DefaultRevisionMetadata metadata = new DefaultRevisionMetadata(entity); + + assertThat(metadata.getRevisionDate()) + .hasValue(LocalDateTime.ofInstant(NOW, ZoneOffset.systemDefault()).truncatedTo(ChronoUnit.MILLIS)); + } +} diff --git a/spring-data-envers/src/test/java/org/springframework/data/envers/repository/support/EnversRevisionRepositoryImplUnitTests.java b/spring-data-envers/src/test/java/org/springframework/data/envers/repository/support/EnversRevisionRepositoryImplUnitTests.java new file mode 100644 index 000000000..fbbe1d0d0 --- /dev/null +++ b/spring-data-envers/src/test/java/org/springframework/data/envers/repository/support/EnversRevisionRepositoryImplUnitTests.java @@ -0,0 +1,60 @@ +/* + * Copyright 2020-2021 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.envers.repository.support; + +import static org.assertj.core.api.Assertions.*; +import static org.mockito.Mockito.*; + +import org.hibernate.envers.DefaultRevisionEntity; +import org.hibernate.envers.RevisionType; +import org.junit.jupiter.api.Test; +import org.springframework.data.history.AnnotationRevisionMetadata; +import org.springframework.data.history.RevisionMetadata; + +/** + * Unit tests for {@link EnversRevisionRepositoryImpl}. + * + * @author Jens Schauder + */ +class EnversRevisionRepositoryImplUnitTests { + + @Test // gh-215 + void revisionTypeOfAnnotationRevisionMetadataIsProperlySet() { + + Object[] data = new Object[] { "a", "some metadata", RevisionType.DEL }; + + EnversRevisionRepositoryImpl.QueryResult result = new EnversRevisionRepositoryImpl.QueryResult<>(data); + + RevisionMetadata revisionMetadata = result.createRevisionMetadata(); + + assertThat(revisionMetadata).isInstanceOf(AnnotationRevisionMetadata.class); + assertThat(revisionMetadata.getRevisionType()).isEqualTo(RevisionMetadata.RevisionType.DELETE); + } + + @Test // gh-215 + void revisionTypeOfDefaultRevisionMetadataIsProperlySet() { + + Object[] data = new Object[] { "a", mock(DefaultRevisionEntity.class), RevisionType.DEL }; + + EnversRevisionRepositoryImpl.QueryResult result = new EnversRevisionRepositoryImpl.QueryResult<>(data); + + RevisionMetadata revisionMetadata = result.createRevisionMetadata(); + + assertThat(revisionMetadata).isInstanceOf(DefaultRevisionMetadata.class); + assertThat(revisionMetadata.getRevisionType()).isEqualTo(RevisionMetadata.RevisionType.DELETE); + } + +} diff --git a/spring-data-envers/src/test/java/org/springframework/data/envers/repository/support/QueryDslRepositoryIntegrationTests.java b/spring-data-envers/src/test/java/org/springframework/data/envers/repository/support/QueryDslRepositoryIntegrationTests.java new file mode 100755 index 000000000..751673d30 --- /dev/null +++ b/spring-data-envers/src/test/java/org/springframework/data/envers/repository/support/QueryDslRepositoryIntegrationTests.java @@ -0,0 +1,97 @@ +/* + * Copyright 2018-2021 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.envers.repository.support; + +import static org.assertj.core.api.Assertions.*; + +import java.util.Iterator; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.envers.Config; +import org.springframework.data.envers.sample.Country; +import org.springframework.data.envers.sample.CountryQueryDslRepository; +import org.springframework.data.envers.sample.QCountry; +import org.springframework.data.history.Revision; +import org.springframework.data.history.Revisions; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit.jupiter.SpringExtension; + +/** + * Integration tests for repositories with Querydsl support. They make sure that methods provided by both + * {@link org.springframework.data.repository.history.RevisionRepository} and {@link org.springframework.data.querydsl.QuerydslPredicateExecutor} are working. + * + * @author Dmytro Iaroslavskyi + * @author Jens Schauder + */ +@ExtendWith(SpringExtension.class) +@ContextConfiguration(classes = Config.class) +class QueryDslRepositoryIntegrationTests { + + @Autowired + CountryQueryDslRepository countryRepository; + + @BeforeEach + void setUp() { + countryRepository.deleteAll(); + } + + @Test + void testWithQueryDsl() { + + Country de = new Country(); + de.code = "de"; + de.name = "Deutschland"; + + countryRepository.save(de); + + Country found = countryRepository.findOne(QCountry.country.name.eq("Deutschland")).get(); + + assertThat(found).isNotNull(); + assertThat(found.id).isEqualTo(de.id); + } + + @Test + void testWithRevisions() { + + Country de = new Country(); + de.code = "de"; + de.name = "Deutschland"; + + countryRepository.save(de); + + de.name = "Germany"; + + countryRepository.save(de); + + Revisions revisions = countryRepository.findRevisions(de.id); + + assertThat(revisions).hasSize(2); + + Iterator> iterator = revisions.iterator(); + + Integer firstRevisionNumber = iterator.next().getRevisionNumber().get(); + Integer secondRevisionNumber = iterator.next().getRevisionNumber().get(); + + assertThat(countryRepository.findRevision(de.id, firstRevisionNumber).get().getEntity().name) + .isEqualTo("Deutschland"); + assertThat(countryRepository.findRevision(de.id, secondRevisionNumber).get().getEntity().name).isEqualTo("Germany"); + } + +} diff --git a/spring-data-envers/src/test/java/org/springframework/data/envers/repository/support/RepositoryIntegrationTests.java b/spring-data-envers/src/test/java/org/springframework/data/envers/repository/support/RepositoryIntegrationTests.java new file mode 100755 index 000000000..126e90399 --- /dev/null +++ b/spring-data-envers/src/test/java/org/springframework/data/envers/repository/support/RepositoryIntegrationTests.java @@ -0,0 +1,251 @@ +/* + * Copyright 2012-2021 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.envers.repository.support; + +import static org.assertj.core.api.Assertions.*; +import static org.springframework.data.history.RevisionMetadata.RevisionType.*; + +import java.util.Arrays; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Optional; + +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.envers.Config; +import org.springframework.data.envers.sample.Country; +import org.springframework.data.envers.sample.CountryRepository; +import org.springframework.data.envers.sample.License; +import org.springframework.data.envers.sample.LicenseRepository; +import org.springframework.data.history.Revision; +import org.springframework.data.history.RevisionSort; +import org.springframework.data.history.Revisions; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit.jupiter.SpringExtension; + +/** + * Integration tests for repositories. + * + * @author Oliver Gierke + * @author Jens Schauder + */ +@ExtendWith(SpringExtension.class) +@ContextConfiguration(classes = Config.class) +class RepositoryIntegrationTests { + + @Autowired + LicenseRepository licenseRepository; + @Autowired + CountryRepository countryRepository; + + @BeforeEach + void setUp() { + + licenseRepository.deleteAll(); + countryRepository.deleteAll(); + } + + @AfterEach + void tearDown() { + + licenseRepository.deleteAll(); + countryRepository.deleteAll(); + } + + @Test + void testLifeCycle() { + + License license = new License(); + license.name = "Schnitzel"; + + licenseRepository.save(license); + + Country de = new Country(); + de.code = "de"; + de.name = "Deutschland"; + + countryRepository.save(de); + + Country se = new Country(); + se.code = "se"; + se.name = "Schweden"; + + countryRepository.save(se); + + license.laender = new HashSet<>(); + license.laender.addAll(Arrays.asList(de, se)); + + licenseRepository.save(license); + + de.name = "Daenemark"; + + countryRepository.save(de); + + Optional> revision = licenseRepository.findLastChangeRevision(license.id); + + assertThat(revision).hasValueSatisfying(it -> { + + Page> page = licenseRepository.findRevisions(license.id, PageRequest.of(0, 10)); + Revisions revisions = Revisions.of(page.getContent()); + assertThat(revisions.getLatestRevision()).isEqualTo(it); + }); + } + + @Test // #1 + void returnsEmptyLastRevisionForUnrevisionedEntity() { + assertThat(countryRepository.findLastChangeRevision(100L)).isEmpty(); + } + + @Test // #47 + void returnsEmptyRevisionsForUnrevisionedEntity() { + assertThat(countryRepository.findRevisions(100L)).isEmpty(); + } + + @Test // #47 + void returnsEmptyRevisionForUnrevisionedEntity() { + assertThat(countryRepository.findRevision(100L, 23)).isEmpty(); + } + + @Test // #31 + void returnsParticularRevisionForAnEntity() { + + Country de = new Country(); + de.code = "de"; + de.name = "Deutschland"; + + countryRepository.save(de); + + de.name = "Germany"; + + countryRepository.save(de); + + Revisions revisions = countryRepository.findRevisions(de.id); + + assertThat(revisions).hasSize(2); + + Iterator> iterator = revisions.iterator(); + Revision first = iterator.next(); + Revision second = iterator.next(); + + assertThat(countryRepository.findRevision(de.id, first.getRequiredRevisionNumber())) + .hasValueSatisfying(it -> assertThat(it.getEntity().name).isEqualTo("Deutschland")); + + assertThat(countryRepository.findRevision(de.id, second.getRequiredRevisionNumber())) + .hasValueSatisfying(it -> assertThat(it.getEntity().name).isEqualTo("Germany")); + } + + @Test // #55 + void considersRevisionNumberSortOrder() { + + Country de = new Country(); + de.code = "de"; + de.name = "Deutschland"; + + countryRepository.save(de); + + de.name = "Germany"; + + countryRepository.save(de); + + Page> page = countryRepository.findRevisions(de.id, + PageRequest.of(0, 10, RevisionSort.desc())); + + assertThat(page).hasSize(2); + assertThat(page.getContent().get(0).getRequiredRevisionNumber()) + .isGreaterThan(page.getContent().get(1).getRequiredRevisionNumber()); + } + + @Test // #21 + void findsDeletedRevisions() { + + Country de = new Country(); + de.code = "de"; + de.name = "Deutschland"; + + countryRepository.save(de); + + countryRepository.delete(de); + + Revisions revisions = countryRepository.findRevisions(de.id); + + assertThat(revisions).hasSize(2); + assertThat(revisions.getLatestRevision().getEntity()) // + .isNotNull() // + .extracting(c -> c.name, c -> c.code) // + .containsExactly(null, null); + } + + @Test // #47 + void includesCorrectRevisionType() { + + Country de = new Country(); + de.code = "de"; + de.name = "Deutschland"; + + countryRepository.save(de); + + de.name = "Bundes Republik Deutschland"; + + countryRepository.save(de); + + countryRepository.delete(de); + + Revisions revisions = countryRepository.findRevisions(de.id); + + assertThat(revisions) // + .extracting(r -> r.getMetadata().getRevisionType()) // + .containsExactly( // + INSERT, // + UPDATE, // + DELETE // + ); + } + + @Test // #146 + void shortCircuitingWhenOffsetIsToLarge() { + + Country de = new Country(); + de.code = "de"; + de.name = "Deutschland"; + + countryRepository.save(de); + + countryRepository.delete(de); + + check(de.id, 0, 1, 2); + check(de.id, 1, 1, 2); + check(de.id, 2, 0, 2); + } + + @Test // #47 + void paginationWithEmptyResult() { + + check(23L, 0, 0, 0); + } + + void check(Long id, int page, int expectedSize, int expectedTotalSize) { + + Page> revisions = countryRepository.findRevisions(id, PageRequest.of(page, 1)); + assertThat(revisions).hasSize(expectedSize); + assertThat(revisions.getTotalElements()).isEqualTo(expectedTotalSize); + } +} diff --git a/spring-data-envers/src/test/java/org/springframework/data/envers/sample/AbstractEntity.java b/spring-data-envers/src/test/java/org/springframework/data/envers/sample/AbstractEntity.java new file mode 100644 index 000000000..5d94361b2 --- /dev/null +++ b/spring-data-envers/src/test/java/org/springframework/data/envers/sample/AbstractEntity.java @@ -0,0 +1,29 @@ +/* + * Copyright 2012-2021 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.envers.sample; + +import lombok.EqualsAndHashCode; + +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.Id; +import jakarta.persistence.MappedSuperclass; + +@MappedSuperclass +@EqualsAndHashCode +abstract class AbstractEntity { + + public @Id @GeneratedValue Long id; +} diff --git a/spring-data-envers/src/test/java/org/springframework/data/envers/sample/Country.java b/spring-data-envers/src/test/java/org/springframework/data/envers/sample/Country.java new file mode 100755 index 000000000..e0d79c654 --- /dev/null +++ b/spring-data-envers/src/test/java/org/springframework/data/envers/sample/Country.java @@ -0,0 +1,36 @@ +/* + * Copyright 2012-2021 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.envers.sample; + +import jakarta.persistence.Entity; + +import lombok.ToString; +import org.hibernate.envers.Audited; + +/** + * Sample domain class. + * + * @author Oliver Gierke + * @author Jens Schauder + */ +@Audited +@Entity +@ToString +public class Country extends AbstractEntity { + + public String code; + public String name; +} diff --git a/spring-data-envers/src/test/java/org/springframework/data/envers/sample/CountryQueryDslRepository.java b/spring-data-envers/src/test/java/org/springframework/data/envers/sample/CountryQueryDslRepository.java new file mode 100755 index 000000000..c78dc44ea --- /dev/null +++ b/spring-data-envers/src/test/java/org/springframework/data/envers/sample/CountryQueryDslRepository.java @@ -0,0 +1,31 @@ +/* + * Copyright 2015-2021 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.envers.sample; + +import org.springframework.data.envers.repository.support.EnversRevisionRepository; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.querydsl.QuerydslPredicateExecutor; + +/** + * Repository with QueryDsl support for {@link Country} objects. + * + * @author Dmytro Iaroslavskyi + */ +public interface CountryQueryDslRepository + extends EnversRevisionRepository, JpaRepository, + QuerydslPredicateExecutor { + +} diff --git a/spring-data-envers/src/test/java/org/springframework/data/envers/sample/CountryRepository.java b/spring-data-envers/src/test/java/org/springframework/data/envers/sample/CountryRepository.java new file mode 100755 index 000000000..e9e80bf10 --- /dev/null +++ b/spring-data-envers/src/test/java/org/springframework/data/envers/sample/CountryRepository.java @@ -0,0 +1,28 @@ +/* + * Copyright 2012-2021 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.envers.sample; + +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.repository.history.RevisionRepository; + +/** + * Repository for {@link Country} objects. + * + * @author Oliver Gierke + */ +public interface CountryRepository extends RevisionRepository, JpaRepository { + +} diff --git a/spring-data-envers/src/test/java/org/springframework/data/envers/sample/License.java b/spring-data-envers/src/test/java/org/springframework/data/envers/sample/License.java new file mode 100755 index 000000000..fd47bb1a6 --- /dev/null +++ b/spring-data-envers/src/test/java/org/springframework/data/envers/sample/License.java @@ -0,0 +1,41 @@ +/* + * Copyright 2012-2021 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.envers.sample; + +import java.util.Set; + +import jakarta.persistence.Entity; +import jakarta.persistence.ManyToMany; +import jakarta.persistence.Version; + +import org.hibernate.envers.Audited; + +/** + * Sample domain class. + * + * @author Philip Huegelmeyer + */ +@Audited +@Entity +public class License extends AbstractEntity { + + @Version + public Integer version; + + public String name; + @ManyToMany + public Set laender; +} diff --git a/spring-data-envers/src/test/java/org/springframework/data/envers/sample/LicenseRepository.java b/spring-data-envers/src/test/java/org/springframework/data/envers/sample/LicenseRepository.java new file mode 100755 index 000000000..37a887db9 --- /dev/null +++ b/spring-data-envers/src/test/java/org/springframework/data/envers/sample/LicenseRepository.java @@ -0,0 +1,28 @@ +/* + * Copyright 2012-2021 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.envers.sample; + +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.repository.history.RevisionRepository; + +/** + * Repository for {@link License} objects. + * + * @author Oliver Gierke + */ +public interface LicenseRepository extends RevisionRepository, JpaRepository { + +} diff --git a/spring-data-envers/src/test/java/org/springframework/data/envers/sample/QCountry.java b/spring-data-envers/src/test/java/org/springframework/data/envers/sample/QCountry.java new file mode 100755 index 000000000..456805ce8 --- /dev/null +++ b/spring-data-envers/src/test/java/org/springframework/data/envers/sample/QCountry.java @@ -0,0 +1,63 @@ +/* + * Copyright 2015-2021 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.envers.sample; + +import com.querydsl.core.types.Path; +import com.querydsl.core.types.PathMetadata; +import com.querydsl.core.types.dsl.EntityPathBase; +import com.querydsl.core.types.dsl.PathInits; +import com.querydsl.core.types.dsl.StringPath; + +import static com.querydsl.core.types.PathMetadataFactory.forVariable; + +/** + * Query class for Country domain. + * + * @author Dmytro Iaroslavskyi + */ +public class QCountry extends EntityPathBase { + + private static final long serialVersionUID = -936338527; + + private static final PathInits INITS = PathInits.DIRECT2; + + public static final QCountry country = new QCountry("country"); + + public final StringPath code = createString("code"); + public final StringPath name = createString("name"); + + public QCountry(String variable) { + this(Country.class, forVariable(variable), INITS); + } + + @SuppressWarnings("all") + public QCountry(Path path) { + this((Class) path.getType(), path.getMetadata(), path.getMetadata().isRoot() ? INITS : PathInits.DEFAULT); + } + + public QCountry(PathMetadata metadata) { + this(metadata, metadata.isRoot() ? INITS : PathInits.DEFAULT); + } + + public QCountry(PathMetadata metadata, PathInits inits) { + this(Country.class, metadata, inits); + } + + public QCountry(Class type, PathMetadata metadata, PathInits inits) { + super(type, metadata, inits); + } + +} diff --git a/spring-data-envers/src/test/resources/logback.xml b/spring-data-envers/src/test/resources/logback.xml new file mode 100644 index 000000000..b2160dd81 --- /dev/null +++ b/spring-data-envers/src/test/resources/logback.xml @@ -0,0 +1,16 @@ + + + + + + %d %5p %40.40c:%4L - %m%n + + + + + + + + + + \ No newline at end of file diff --git a/spring-data-jpa-distribution/pom.xml b/spring-data-jpa-distribution/pom.xml new file mode 100644 index 000000000..bba857167 --- /dev/null +++ b/spring-data-jpa-distribution/pom.xml @@ -0,0 +1,39 @@ + + + + 4.0.0 + + spring-data-jpa-distribution + + pom + + Spring Data JPA - Distribution + Distribution build for Spring Data JPA + + + org.springframework.data + spring-data-jpa-parent + 3.0.0-SNAPSHOT + ../pom.xml + + + + ${basedir}/.. + DATAJPA + + + + + + org.apache.maven.plugins + maven-assembly-plugin + + + org.asciidoctor + asciidoctor-maven-plugin + + + + + diff --git a/Spring Data JPA.sonargraph b/spring-data-jpa/Spring Data JPA.sonargraph similarity index 100% rename from Spring Data JPA.sonargraph rename to spring-data-jpa/Spring Data JPA.sonargraph diff --git a/aop.xml b/spring-data-jpa/aop.xml similarity index 100% rename from aop.xml rename to spring-data-jpa/aop.xml diff --git a/spring-data-jpa/formatting.xml b/spring-data-jpa/formatting.xml new file mode 100644 index 000000000..c74468778 --- /dev/null +++ b/spring-data-jpa/formatting.xml @@ -0,0 +1,291 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/spring-data-jpa/pom.xml b/spring-data-jpa/pom.xml new file mode 100644 index 000000000..5960d72cc --- /dev/null +++ b/spring-data-jpa/pom.xml @@ -0,0 +1,402 @@ + + + + 4.0.0 + + org.springframework.data + spring-data-jpa + 3.0.0-SNAPSHOT + + Spring Data JPA + Spring Data module for JPA repositories. + https://projects.spring.io/spring-data-jpa + + + org.springframework.data + spring-data-jpa-parent + 3.0.0-SNAPSHOT + ../pom.xml + + + + spring.data.jpa + + + + + + ${project.groupId} + spring-data-commons + ${springdata.commons} + + + + org.springframework + spring-orm + + + + org.springframework + spring-context + + + + org.springframework + spring-aop + + + + org.springframework + spring-tx + + + + org.springframework + spring-beans + + + + org.springframework + spring-instrument + provided + + + + org.springframework + spring-core + + + commons-logging + commons-logging + + + + + + org.aspectj + aspectjweaver + ${aspectj} + test + + + + org.springframework + spring-aspects + compile + true + + + + org.hsqldb + hsqldb + 2.5.1 + test + + + + + mysql + mysql-connector-java + ${mysql-connector-java} + test + + + + org.testcontainers + mysql + test + + + org.slf4j + jcl-over-slf4j + + + + + + + org.postgresql + postgresql + ${postgresql} + test + + + + org.testcontainers + postgresql + test + + + + io.vavr + vavr + ${vavr} + test + + + + + + org.eclipse.persistence + org.eclipse.persistence.jpa + ${eclipselink} + true + + + + ${hibernate.groupId} + hibernate-core-jakarta + ${hibernate} + true + + + + ${hibernate.groupId} + hibernate-jpamodelgen-jakarta + ${hibernate} + provided + + + + jakarta.annotation + jakarta.annotation-api + ${jakarta-annotation-api} + + + + + com.querydsl + querydsl-apt + ${querydsl} + jakarta + provided + + + + com.querydsl + querydsl-jpa + jakarta + ${querydsl} + true + + + + + org.jmolecules.integrations + jmolecules-spring + ${jmolecules-integration} + test + + + + + jakarta.enterprise + jakarta.enterprise.cdi-api + ${cdi} + provided + true + + + + + org.apache.openwebbeans + openwebbeans-se + jakarta + test + + + org.apache.openwebbeans + openwebbeans-impl + jakarta + test + + + org.apache.openwebbeans + openwebbeans-spi + jakarta + test + + + + + + + + + + org.jacoco + jacoco-maven-plugin + ${jacoco} + + ${jacoco.destfile} + + + + jacoco-initialize + + prepare-agent + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + + + org.springframework + spring-instrument + ${spring} + runtime + + + + + + default-test + + + **/* + + + + + unit-test + + test + + test + + + **/*UnitTests.java + + + + + integration-test + + test + + test + + + **/*IntegrationTests.java + **/*Tests.java + + + **/*UnitTests.java + **/OpenJpa* + **/EclipseLink* + **/MySql* + **/Postgres* + + + -javaagent:${settings.localRepository}/org/springframework/spring-instrument/${spring}/spring-instrument-${spring}.jar + -javaagent:${settings.localRepository}/org/jacoco/org.jacoco.agent/${jacoco}/org.jacoco.agent-${jacoco}-runtime.jar=destfile=${jacoco.destfile} + + + + + eclipselink-test + + test + + test + + + **/EclipseLink*Tests.java + + + -javaagent:${settings.localRepository}/org/jacoco/org.jacoco.agent/${jacoco}/org.jacoco.agent-${jacoco}-runtime.jar=destfile=${jacoco.destfile} + -javaagent:${settings.localRepository}/org/eclipse/persistence/org.eclipse.persistence.jpa/${eclipselink}/org.eclipse.persistence.jpa-${eclipselink}.jar + -javaagent:${settings.localRepository}/org/springframework/spring-instrument/${spring}/spring-instrument-${spring}.jar + + + + + + + + maven-compiler-plugin + + + java-test-compile + test-compile + + testCompile + + + false + + + + + + + io.starter + aspectj-maven-plugin + 1.12.9 + + + org.aspectj + aspectjrt + ${aspectj} + + + org.aspectj + aspectjtools + ${aspectj} + + + + + + compile + + process-classes + + + + true + + true + + + org.springframework + spring-aspects + + + + **/domain/support/AuditingEntityListener.java + + ${source.level} + ${source.level} + ${source.level} + aop.xml + + + + + + + diff --git a/src/main/java/org/springframework/data/jpa/convert/QueryByExamplePredicateBuilder.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/convert/QueryByExamplePredicateBuilder.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/convert/QueryByExamplePredicateBuilder.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/convert/QueryByExamplePredicateBuilder.java diff --git a/src/main/java/org/springframework/data/jpa/convert/package-info.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/convert/package-info.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/convert/package-info.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/convert/package-info.java diff --git a/src/main/java/org/springframework/data/jpa/convert/threeten/Jsr310JpaConverters.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/convert/threeten/Jsr310JpaConverters.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/convert/threeten/Jsr310JpaConverters.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/convert/threeten/Jsr310JpaConverters.java diff --git a/src/main/java/org/springframework/data/jpa/convert/threeten/package-info.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/convert/threeten/package-info.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/convert/threeten/package-info.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/convert/threeten/package-info.java diff --git a/src/main/java/org/springframework/data/jpa/domain/AbstractAuditable.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/domain/AbstractAuditable.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/domain/AbstractAuditable.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/domain/AbstractAuditable.java diff --git a/src/main/java/org/springframework/data/jpa/domain/AbstractPersistable.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/domain/AbstractPersistable.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/domain/AbstractPersistable.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/domain/AbstractPersistable.java diff --git a/src/main/java/org/springframework/data/jpa/domain/JpaSort.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/domain/JpaSort.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/domain/JpaSort.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/domain/JpaSort.java diff --git a/src/main/java/org/springframework/data/jpa/domain/Specification.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/domain/Specification.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/domain/Specification.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/domain/Specification.java diff --git a/src/main/java/org/springframework/data/jpa/domain/SpecificationComposition.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/domain/SpecificationComposition.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/domain/SpecificationComposition.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/domain/SpecificationComposition.java diff --git a/src/main/java/org/springframework/data/jpa/domain/package-info.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/domain/package-info.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/domain/package-info.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/domain/package-info.java diff --git a/src/main/java/org/springframework/data/jpa/domain/support/AuditingBeanFactoryPostProcessor.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/domain/support/AuditingBeanFactoryPostProcessor.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/domain/support/AuditingBeanFactoryPostProcessor.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/domain/support/AuditingBeanFactoryPostProcessor.java diff --git a/src/main/java/org/springframework/data/jpa/domain/support/AuditingEntityListener.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/domain/support/AuditingEntityListener.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/domain/support/AuditingEntityListener.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/domain/support/AuditingEntityListener.java diff --git a/src/main/java/org/springframework/data/jpa/domain/support/package-info.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/domain/support/package-info.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/domain/support/package-info.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/domain/support/package-info.java diff --git a/src/main/java/org/springframework/data/jpa/mapping/JpaMetamodelMappingContext.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/mapping/JpaMetamodelMappingContext.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/mapping/JpaMetamodelMappingContext.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/mapping/JpaMetamodelMappingContext.java diff --git a/src/main/java/org/springframework/data/jpa/mapping/JpaPersistentEntity.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/mapping/JpaPersistentEntity.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/mapping/JpaPersistentEntity.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/mapping/JpaPersistentEntity.java diff --git a/src/main/java/org/springframework/data/jpa/mapping/JpaPersistentEntityImpl.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/mapping/JpaPersistentEntityImpl.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/mapping/JpaPersistentEntityImpl.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/mapping/JpaPersistentEntityImpl.java diff --git a/src/main/java/org/springframework/data/jpa/mapping/JpaPersistentProperty.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/mapping/JpaPersistentProperty.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/mapping/JpaPersistentProperty.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/mapping/JpaPersistentProperty.java diff --git a/src/main/java/org/springframework/data/jpa/mapping/JpaPersistentPropertyImpl.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/mapping/JpaPersistentPropertyImpl.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/mapping/JpaPersistentPropertyImpl.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/mapping/JpaPersistentPropertyImpl.java diff --git a/src/main/java/org/springframework/data/jpa/mapping/package-info.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/mapping/package-info.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/mapping/package-info.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/mapping/package-info.java diff --git a/src/main/java/org/springframework/data/jpa/projection/CollectionAwareProjectionFactory.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/projection/CollectionAwareProjectionFactory.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/projection/CollectionAwareProjectionFactory.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/projection/CollectionAwareProjectionFactory.java diff --git a/src/main/java/org/springframework/data/jpa/provider/HibernateUtils.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/provider/HibernateUtils.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/provider/HibernateUtils.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/provider/HibernateUtils.java diff --git a/src/main/java/org/springframework/data/jpa/provider/JpaClassUtils.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/provider/JpaClassUtils.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/provider/JpaClassUtils.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/provider/JpaClassUtils.java diff --git a/src/main/java/org/springframework/data/jpa/provider/PersistenceProvider.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/provider/PersistenceProvider.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/provider/PersistenceProvider.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/provider/PersistenceProvider.java diff --git a/src/main/java/org/springframework/data/jpa/provider/ProxyIdAccessor.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/provider/ProxyIdAccessor.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/provider/ProxyIdAccessor.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/provider/ProxyIdAccessor.java diff --git a/src/main/java/org/springframework/data/jpa/provider/QueryExtractor.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/provider/QueryExtractor.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/provider/QueryExtractor.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/provider/QueryExtractor.java diff --git a/src/main/java/org/springframework/data/jpa/provider/package-info.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/provider/package-info.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/provider/package-info.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/provider/package-info.java diff --git a/src/main/java/org/springframework/data/jpa/repository/EntityGraph.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/EntityGraph.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/EntityGraph.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/EntityGraph.java diff --git a/src/main/java/org/springframework/data/jpa/repository/JpaContext.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/JpaContext.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/JpaContext.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/JpaContext.java diff --git a/src/main/java/org/springframework/data/jpa/repository/JpaRepository.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/JpaRepository.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/JpaRepository.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/JpaRepository.java diff --git a/src/main/java/org/springframework/data/jpa/repository/JpaSpecificationExecutor.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/JpaSpecificationExecutor.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/JpaSpecificationExecutor.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/JpaSpecificationExecutor.java diff --git a/src/main/java/org/springframework/data/jpa/repository/Lock.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/Lock.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/Lock.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/Lock.java diff --git a/src/main/java/org/springframework/data/jpa/repository/Modifying.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/Modifying.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/Modifying.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/Modifying.java diff --git a/src/main/java/org/springframework/data/jpa/repository/Query.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/Query.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/Query.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/Query.java diff --git a/src/main/java/org/springframework/data/jpa/repository/QueryHints.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/QueryHints.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/QueryHints.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/QueryHints.java diff --git a/src/main/java/org/springframework/data/jpa/repository/Temporal.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/Temporal.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/Temporal.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/Temporal.java diff --git a/src/main/java/org/springframework/data/jpa/repository/cdi/JpaRepositoryBean.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/cdi/JpaRepositoryBean.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/cdi/JpaRepositoryBean.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/cdi/JpaRepositoryBean.java diff --git a/src/main/java/org/springframework/data/jpa/repository/cdi/JpaRepositoryExtension.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/cdi/JpaRepositoryExtension.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/cdi/JpaRepositoryExtension.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/cdi/JpaRepositoryExtension.java diff --git a/src/main/java/org/springframework/data/jpa/repository/cdi/package-info.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/cdi/package-info.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/cdi/package-info.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/cdi/package-info.java diff --git a/src/main/java/org/springframework/data/jpa/repository/config/AuditingBeanDefinitionParser.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/config/AuditingBeanDefinitionParser.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/config/AuditingBeanDefinitionParser.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/config/AuditingBeanDefinitionParser.java diff --git a/src/main/java/org/springframework/data/jpa/repository/config/BeanDefinitionNames.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/config/BeanDefinitionNames.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/config/BeanDefinitionNames.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/config/BeanDefinitionNames.java diff --git a/src/main/java/org/springframework/data/jpa/repository/config/EnableJpaAuditing.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/config/EnableJpaAuditing.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/config/EnableJpaAuditing.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/config/EnableJpaAuditing.java diff --git a/src/main/java/org/springframework/data/jpa/repository/config/EnableJpaRepositories.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/config/EnableJpaRepositories.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/config/EnableJpaRepositories.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/config/EnableJpaRepositories.java diff --git a/src/main/java/org/springframework/data/jpa/repository/config/InspectionClassLoader.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/config/InspectionClassLoader.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/config/InspectionClassLoader.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/config/InspectionClassLoader.java diff --git a/src/main/java/org/springframework/data/jpa/repository/config/JpaAuditingRegistrar.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/config/JpaAuditingRegistrar.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/config/JpaAuditingRegistrar.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/config/JpaAuditingRegistrar.java diff --git a/src/main/java/org/springframework/data/jpa/repository/config/JpaMetamodelMappingContextFactoryBean.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/config/JpaMetamodelMappingContextFactoryBean.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/config/JpaMetamodelMappingContextFactoryBean.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/config/JpaMetamodelMappingContextFactoryBean.java diff --git a/src/main/java/org/springframework/data/jpa/repository/config/JpaRepositoriesRegistrar.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/config/JpaRepositoriesRegistrar.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/config/JpaRepositoriesRegistrar.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/config/JpaRepositoriesRegistrar.java diff --git a/src/main/java/org/springframework/data/jpa/repository/config/JpaRepositoryConfigExtension.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/config/JpaRepositoryConfigExtension.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/config/JpaRepositoryConfigExtension.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/config/JpaRepositoryConfigExtension.java diff --git a/src/main/java/org/springframework/data/jpa/repository/config/JpaRepositoryNameSpaceHandler.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/config/JpaRepositoryNameSpaceHandler.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/config/JpaRepositoryNameSpaceHandler.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/config/JpaRepositoryNameSpaceHandler.java diff --git a/src/main/java/org/springframework/data/jpa/repository/config/package-info.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/config/package-info.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/config/package-info.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/config/package-info.java diff --git a/src/main/java/org/springframework/data/jpa/repository/package-info.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/package-info.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/package-info.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/package-info.java diff --git a/src/main/java/org/springframework/data/jpa/repository/query/AbstractJpaQuery.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/AbstractJpaQuery.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/query/AbstractJpaQuery.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/AbstractJpaQuery.java diff --git a/src/main/java/org/springframework/data/jpa/repository/query/AbstractStringBasedJpaQuery.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/AbstractStringBasedJpaQuery.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/query/AbstractStringBasedJpaQuery.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/AbstractStringBasedJpaQuery.java diff --git a/src/main/java/org/springframework/data/jpa/repository/query/DeclaredQuery.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/DeclaredQuery.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/query/DeclaredQuery.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/DeclaredQuery.java diff --git a/src/main/java/org/springframework/data/jpa/repository/query/DefaultJpaEntityMetadata.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/DefaultJpaEntityMetadata.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/query/DefaultJpaEntityMetadata.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/DefaultJpaEntityMetadata.java diff --git a/src/main/java/org/springframework/data/jpa/repository/query/DefaultJpaQueryMethodFactory.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/DefaultJpaQueryMethodFactory.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/query/DefaultJpaQueryMethodFactory.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/DefaultJpaQueryMethodFactory.java diff --git a/src/main/java/org/springframework/data/jpa/repository/query/EmptyDeclaredQuery.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/EmptyDeclaredQuery.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/query/EmptyDeclaredQuery.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/EmptyDeclaredQuery.java diff --git a/src/main/java/org/springframework/data/jpa/repository/query/EscapeCharacter.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/EscapeCharacter.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/query/EscapeCharacter.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/EscapeCharacter.java diff --git a/src/main/java/org/springframework/data/jpa/repository/query/ExpressionBasedStringQuery.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/ExpressionBasedStringQuery.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/query/ExpressionBasedStringQuery.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/ExpressionBasedStringQuery.java diff --git a/src/main/java/org/springframework/data/jpa/repository/query/InvalidJpaQueryMethodException.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/InvalidJpaQueryMethodException.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/query/InvalidJpaQueryMethodException.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/InvalidJpaQueryMethodException.java diff --git a/src/main/java/org/springframework/data/jpa/repository/query/Jpa21Utils.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/Jpa21Utils.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/query/Jpa21Utils.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/Jpa21Utils.java diff --git a/src/main/java/org/springframework/data/jpa/repository/query/JpaCountQueryCreator.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/JpaCountQueryCreator.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/query/JpaCountQueryCreator.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/JpaCountQueryCreator.java diff --git a/src/main/java/org/springframework/data/jpa/repository/query/JpaEntityGraph.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/JpaEntityGraph.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/query/JpaEntityGraph.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/JpaEntityGraph.java diff --git a/src/main/java/org/springframework/data/jpa/repository/query/JpaEntityMetadata.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/JpaEntityMetadata.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/query/JpaEntityMetadata.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/JpaEntityMetadata.java diff --git a/src/main/java/org/springframework/data/jpa/repository/query/JpaParameters.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/JpaParameters.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/query/JpaParameters.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/JpaParameters.java diff --git a/src/main/java/org/springframework/data/jpa/repository/query/JpaParametersParameterAccessor.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/JpaParametersParameterAccessor.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/query/JpaParametersParameterAccessor.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/JpaParametersParameterAccessor.java diff --git a/src/main/java/org/springframework/data/jpa/repository/query/JpaQueryCreator.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/JpaQueryCreator.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/query/JpaQueryCreator.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/JpaQueryCreator.java diff --git a/src/main/java/org/springframework/data/jpa/repository/query/JpaQueryExecution.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/JpaQueryExecution.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/query/JpaQueryExecution.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/JpaQueryExecution.java diff --git a/src/main/java/org/springframework/data/jpa/repository/query/JpaQueryFactory.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/JpaQueryFactory.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/query/JpaQueryFactory.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/JpaQueryFactory.java diff --git a/src/main/java/org/springframework/data/jpa/repository/query/JpaQueryLookupStrategy.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/JpaQueryLookupStrategy.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/query/JpaQueryLookupStrategy.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/JpaQueryLookupStrategy.java diff --git a/src/main/java/org/springframework/data/jpa/repository/query/JpaQueryMethod.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/JpaQueryMethod.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/query/JpaQueryMethod.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/JpaQueryMethod.java diff --git a/src/main/java/org/springframework/data/jpa/repository/query/JpaQueryMethodFactory.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/JpaQueryMethodFactory.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/query/JpaQueryMethodFactory.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/JpaQueryMethodFactory.java diff --git a/src/main/java/org/springframework/data/jpa/repository/query/JpaResultConverters.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/JpaResultConverters.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/query/JpaResultConverters.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/JpaResultConverters.java diff --git a/src/main/java/org/springframework/data/jpa/repository/query/NamedQuery.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/NamedQuery.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/query/NamedQuery.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/NamedQuery.java diff --git a/src/main/java/org/springframework/data/jpa/repository/query/NativeJpaQuery.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/NativeJpaQuery.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/query/NativeJpaQuery.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/NativeJpaQuery.java diff --git a/src/main/java/org/springframework/data/jpa/repository/query/ParameterBinder.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/ParameterBinder.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/query/ParameterBinder.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/ParameterBinder.java diff --git a/src/main/java/org/springframework/data/jpa/repository/query/ParameterBinderFactory.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/ParameterBinderFactory.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/query/ParameterBinderFactory.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/ParameterBinderFactory.java diff --git a/src/main/java/org/springframework/data/jpa/repository/query/ParameterMetadataProvider.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/ParameterMetadataProvider.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/query/ParameterMetadataProvider.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/ParameterMetadataProvider.java diff --git a/src/main/java/org/springframework/data/jpa/repository/query/PartTreeJpaQuery.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/PartTreeJpaQuery.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/query/PartTreeJpaQuery.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/PartTreeJpaQuery.java diff --git a/src/main/java/org/springframework/data/jpa/repository/query/Procedure.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/Procedure.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/query/Procedure.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/Procedure.java diff --git a/src/main/java/org/springframework/data/jpa/repository/query/ProcedureParameter.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/ProcedureParameter.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/query/ProcedureParameter.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/ProcedureParameter.java diff --git a/src/main/java/org/springframework/data/jpa/repository/query/QueryParameterSetter.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/QueryParameterSetter.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/query/QueryParameterSetter.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/QueryParameterSetter.java diff --git a/src/main/java/org/springframework/data/jpa/repository/query/QueryParameterSetterFactory.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/QueryParameterSetterFactory.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/query/QueryParameterSetterFactory.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/QueryParameterSetterFactory.java diff --git a/src/main/java/org/springframework/data/jpa/repository/query/QueryUtils.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/QueryUtils.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/query/QueryUtils.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/QueryUtils.java diff --git a/src/main/java/org/springframework/data/jpa/repository/query/SimpleJpaQuery.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/SimpleJpaQuery.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/query/SimpleJpaQuery.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/SimpleJpaQuery.java diff --git a/src/main/java/org/springframework/data/jpa/repository/query/StoredProcedureAttributeSource.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/StoredProcedureAttributeSource.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/query/StoredProcedureAttributeSource.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/StoredProcedureAttributeSource.java diff --git a/src/main/java/org/springframework/data/jpa/repository/query/StoredProcedureAttributes.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/StoredProcedureAttributes.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/query/StoredProcedureAttributes.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/StoredProcedureAttributes.java diff --git a/src/main/java/org/springframework/data/jpa/repository/query/StoredProcedureJpaQuery.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/StoredProcedureJpaQuery.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/query/StoredProcedureJpaQuery.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/StoredProcedureJpaQuery.java diff --git a/src/main/java/org/springframework/data/jpa/repository/query/StringQuery.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/StringQuery.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/query/StringQuery.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/StringQuery.java diff --git a/src/main/java/org/springframework/data/jpa/repository/query/package-info.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/package-info.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/query/package-info.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/package-info.java diff --git a/src/main/java/org/springframework/data/jpa/repository/support/CrudMethodMetadata.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/CrudMethodMetadata.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/support/CrudMethodMetadata.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/CrudMethodMetadata.java diff --git a/src/main/java/org/springframework/data/jpa/repository/support/CrudMethodMetadataPostProcessor.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/CrudMethodMetadataPostProcessor.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/support/CrudMethodMetadataPostProcessor.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/CrudMethodMetadataPostProcessor.java diff --git a/src/main/java/org/springframework/data/jpa/repository/support/DefaultJpaContext.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/DefaultJpaContext.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/support/DefaultJpaContext.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/DefaultJpaContext.java diff --git a/src/main/java/org/springframework/data/jpa/repository/support/DefaultQueryHints.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/DefaultQueryHints.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/support/DefaultQueryHints.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/DefaultQueryHints.java diff --git a/src/main/java/org/springframework/data/jpa/repository/support/EntityManagerBeanDefinitionRegistrarPostProcessor.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/EntityManagerBeanDefinitionRegistrarPostProcessor.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/support/EntityManagerBeanDefinitionRegistrarPostProcessor.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/EntityManagerBeanDefinitionRegistrarPostProcessor.java diff --git a/src/main/java/org/springframework/data/jpa/repository/support/FetchableFluentQueryByExample.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/FetchableFluentQueryByExample.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/support/FetchableFluentQueryByExample.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/FetchableFluentQueryByExample.java diff --git a/src/main/java/org/springframework/data/jpa/repository/support/FetchableFluentQueryByPredicate.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/FetchableFluentQueryByPredicate.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/support/FetchableFluentQueryByPredicate.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/FetchableFluentQueryByPredicate.java diff --git a/src/main/java/org/springframework/data/jpa/repository/support/FluentQuerySupport.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/FluentQuerySupport.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/support/FluentQuerySupport.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/FluentQuerySupport.java diff --git a/src/main/java/org/springframework/data/jpa/repository/support/JpaEntityInformation.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/JpaEntityInformation.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/support/JpaEntityInformation.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/JpaEntityInformation.java diff --git a/src/main/java/org/springframework/data/jpa/repository/support/JpaEntityInformationSupport.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/JpaEntityInformationSupport.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/support/JpaEntityInformationSupport.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/JpaEntityInformationSupport.java diff --git a/src/main/java/org/springframework/data/jpa/repository/support/JpaEvaluationContextExtension.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/JpaEvaluationContextExtension.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/support/JpaEvaluationContextExtension.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/JpaEvaluationContextExtension.java diff --git a/src/main/java/org/springframework/data/jpa/repository/support/JpaMetamodelEntityInformation.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/JpaMetamodelEntityInformation.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/support/JpaMetamodelEntityInformation.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/JpaMetamodelEntityInformation.java diff --git a/src/main/java/org/springframework/data/jpa/repository/support/JpaPersistableEntityInformation.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/JpaPersistableEntityInformation.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/support/JpaPersistableEntityInformation.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/JpaPersistableEntityInformation.java diff --git a/src/main/java/org/springframework/data/jpa/repository/support/JpaRepositoryFactory.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/JpaRepositoryFactory.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/support/JpaRepositoryFactory.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/JpaRepositoryFactory.java diff --git a/src/main/java/org/springframework/data/jpa/repository/support/JpaRepositoryFactoryBean.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/JpaRepositoryFactoryBean.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/support/JpaRepositoryFactoryBean.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/JpaRepositoryFactoryBean.java diff --git a/src/main/java/org/springframework/data/jpa/repository/support/JpaRepositoryImplementation.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/JpaRepositoryImplementation.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/support/JpaRepositoryImplementation.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/JpaRepositoryImplementation.java diff --git a/src/main/java/org/springframework/data/jpa/repository/support/MutableQueryHints.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/MutableQueryHints.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/support/MutableQueryHints.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/MutableQueryHints.java diff --git a/src/main/java/org/springframework/data/jpa/repository/support/QueryHintValue.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/QueryHintValue.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/support/QueryHintValue.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/QueryHintValue.java diff --git a/src/main/java/org/springframework/data/jpa/repository/support/QueryHints.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/QueryHints.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/support/QueryHints.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/QueryHints.java diff --git a/src/main/java/org/springframework/data/jpa/repository/support/Querydsl.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/Querydsl.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/support/Querydsl.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/Querydsl.java diff --git a/src/main/java/org/springframework/data/jpa/repository/support/QuerydslJpaPredicateExecutor.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/QuerydslJpaPredicateExecutor.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/support/QuerydslJpaPredicateExecutor.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/QuerydslJpaPredicateExecutor.java diff --git a/src/main/java/org/springframework/data/jpa/repository/support/QuerydslJpaRepository.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/QuerydslJpaRepository.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/support/QuerydslJpaRepository.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/QuerydslJpaRepository.java diff --git a/src/main/java/org/springframework/data/jpa/repository/support/QuerydslRepositorySupport.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/QuerydslRepositorySupport.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/support/QuerydslRepositorySupport.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/QuerydslRepositorySupport.java diff --git a/src/main/java/org/springframework/data/jpa/repository/support/SimpleJpaRepository.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/SimpleJpaRepository.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/support/SimpleJpaRepository.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/SimpleJpaRepository.java diff --git a/src/main/java/org/springframework/data/jpa/repository/support/package-info.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/package-info.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/repository/support/package-info.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/package-info.java diff --git a/src/main/java/org/springframework/data/jpa/support/ClasspathScanningPersistenceUnitPostProcessor.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/support/ClasspathScanningPersistenceUnitPostProcessor.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/support/ClasspathScanningPersistenceUnitPostProcessor.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/support/ClasspathScanningPersistenceUnitPostProcessor.java diff --git a/src/main/java/org/springframework/data/jpa/support/MergingPersistenceUnitManager.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/support/MergingPersistenceUnitManager.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/support/MergingPersistenceUnitManager.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/support/MergingPersistenceUnitManager.java diff --git a/src/main/java/org/springframework/data/jpa/support/package-info.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/support/package-info.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/support/package-info.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/support/package-info.java diff --git a/src/main/java/org/springframework/data/jpa/util/BeanDefinitionUtils.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/util/BeanDefinitionUtils.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/util/BeanDefinitionUtils.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/util/BeanDefinitionUtils.java diff --git a/src/main/java/org/springframework/data/jpa/util/HibernateProxyDetector.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/util/HibernateProxyDetector.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/util/HibernateProxyDetector.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/util/HibernateProxyDetector.java diff --git a/src/main/java/org/springframework/data/jpa/util/JpaMetamodel.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/util/JpaMetamodel.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/util/JpaMetamodel.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/util/JpaMetamodel.java diff --git a/src/main/java/org/springframework/data/jpa/util/JpaMetamodelCacheCleanup.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/util/JpaMetamodelCacheCleanup.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/util/JpaMetamodelCacheCleanup.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/util/JpaMetamodelCacheCleanup.java diff --git a/src/main/java/org/springframework/data/jpa/util/package-info.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/util/package-info.java similarity index 100% rename from src/main/java/org/springframework/data/jpa/util/package-info.java rename to spring-data-jpa/src/main/java/org/springframework/data/jpa/util/package-info.java diff --git a/src/main/resources/META-INF/services/jakarta.enterprise.inject.spi.Extension b/spring-data-jpa/src/main/resources/META-INF/services/jakarta.enterprise.inject.spi.Extension similarity index 100% rename from src/main/resources/META-INF/services/jakarta.enterprise.inject.spi.Extension rename to spring-data-jpa/src/main/resources/META-INF/services/jakarta.enterprise.inject.spi.Extension diff --git a/src/main/resources/META-INF/spring.factories b/spring-data-jpa/src/main/resources/META-INF/spring.factories similarity index 100% rename from src/main/resources/META-INF/spring.factories rename to spring-data-jpa/src/main/resources/META-INF/spring.factories diff --git a/src/main/resources/META-INF/spring.handlers b/spring-data-jpa/src/main/resources/META-INF/spring.handlers similarity index 100% rename from src/main/resources/META-INF/spring.handlers rename to spring-data-jpa/src/main/resources/META-INF/spring.handlers diff --git a/src/main/resources/META-INF/spring.schemas b/spring-data-jpa/src/main/resources/META-INF/spring.schemas similarity index 100% rename from src/main/resources/META-INF/spring.schemas rename to spring-data-jpa/src/main/resources/META-INF/spring.schemas diff --git a/src/main/resources/META-INF/spring.tooling b/spring-data-jpa/src/main/resources/META-INF/spring.tooling similarity index 100% rename from src/main/resources/META-INF/spring.tooling rename to spring-data-jpa/src/main/resources/META-INF/spring.tooling diff --git a/src/main/resources/license.txt b/spring-data-jpa/src/main/resources/license.txt similarity index 100% rename from src/main/resources/license.txt rename to spring-data-jpa/src/main/resources/license.txt diff --git a/src/main/resources/notice.txt b/spring-data-jpa/src/main/resources/notice.txt similarity index 100% rename from src/main/resources/notice.txt rename to spring-data-jpa/src/main/resources/notice.txt diff --git a/src/main/resources/org/springframework/data/jpa/repository/config/spring-jpa-1.0.xsd b/spring-data-jpa/src/main/resources/org/springframework/data/jpa/repository/config/spring-jpa-1.0.xsd similarity index 100% rename from src/main/resources/org/springframework/data/jpa/repository/config/spring-jpa-1.0.xsd rename to spring-data-jpa/src/main/resources/org/springframework/data/jpa/repository/config/spring-jpa-1.0.xsd diff --git a/src/main/resources/org/springframework/data/jpa/repository/config/spring-jpa-1.1.xsd b/spring-data-jpa/src/main/resources/org/springframework/data/jpa/repository/config/spring-jpa-1.1.xsd similarity index 100% rename from src/main/resources/org/springframework/data/jpa/repository/config/spring-jpa-1.1.xsd rename to spring-data-jpa/src/main/resources/org/springframework/data/jpa/repository/config/spring-jpa-1.1.xsd diff --git a/src/main/resources/org/springframework/data/jpa/repository/config/spring-jpa-1.11.xsd b/spring-data-jpa/src/main/resources/org/springframework/data/jpa/repository/config/spring-jpa-1.11.xsd similarity index 100% rename from src/main/resources/org/springframework/data/jpa/repository/config/spring-jpa-1.11.xsd rename to spring-data-jpa/src/main/resources/org/springframework/data/jpa/repository/config/spring-jpa-1.11.xsd diff --git a/src/main/resources/org/springframework/data/jpa/repository/config/spring-jpa-1.2.xsd b/spring-data-jpa/src/main/resources/org/springframework/data/jpa/repository/config/spring-jpa-1.2.xsd similarity index 100% rename from src/main/resources/org/springframework/data/jpa/repository/config/spring-jpa-1.2.xsd rename to spring-data-jpa/src/main/resources/org/springframework/data/jpa/repository/config/spring-jpa-1.2.xsd diff --git a/src/main/resources/org/springframework/data/jpa/repository/config/spring-jpa-1.3.xsd b/spring-data-jpa/src/main/resources/org/springframework/data/jpa/repository/config/spring-jpa-1.3.xsd similarity index 100% rename from src/main/resources/org/springframework/data/jpa/repository/config/spring-jpa-1.3.xsd rename to spring-data-jpa/src/main/resources/org/springframework/data/jpa/repository/config/spring-jpa-1.3.xsd diff --git a/src/main/resources/org/springframework/data/jpa/repository/config/spring-jpa-1.8.xsd b/spring-data-jpa/src/main/resources/org/springframework/data/jpa/repository/config/spring-jpa-1.8.xsd similarity index 100% rename from src/main/resources/org/springframework/data/jpa/repository/config/spring-jpa-1.8.xsd rename to spring-data-jpa/src/main/resources/org/springframework/data/jpa/repository/config/spring-jpa-1.8.xsd diff --git a/src/main/resources/readme.txt b/spring-data-jpa/src/main/resources/readme.txt similarity index 100% rename from src/main/resources/readme.txt rename to spring-data-jpa/src/main/resources/readme.txt diff --git a/src/test/java/org/springframework/data/jpa/convert/QueryByExamplePredicateBuilderUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/convert/QueryByExamplePredicateBuilderUnitTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/convert/QueryByExamplePredicateBuilderUnitTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/convert/QueryByExamplePredicateBuilderUnitTests.java diff --git a/src/test/java/org/springframework/data/jpa/convert/threeten/DateTimeSample.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/convert/threeten/DateTimeSample.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/convert/threeten/DateTimeSample.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/convert/threeten/DateTimeSample.java diff --git a/src/test/java/org/springframework/data/jpa/convert/threeten/Jsr310JpaConvertersIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/convert/threeten/Jsr310JpaConvertersIntegrationTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/convert/threeten/Jsr310JpaConvertersIntegrationTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/convert/threeten/Jsr310JpaConvertersIntegrationTests.java diff --git a/src/test/java/org/springframework/data/jpa/convert/threeten/Jsr310JpaConvertersUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/convert/threeten/Jsr310JpaConvertersUnitTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/convert/threeten/Jsr310JpaConvertersUnitTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/convert/threeten/Jsr310JpaConvertersUnitTests.java diff --git a/src/test/java/org/springframework/data/jpa/domain/JpaSortTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/JpaSortTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/JpaSortTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/JpaSortTests.java diff --git a/src/test/java/org/springframework/data/jpa/domain/SpecificationUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/SpecificationUnitTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/SpecificationUnitTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/SpecificationUnitTests.java diff --git a/src/test/java/org/springframework/data/jpa/domain/sample/AbstractAnnotatedAuditable.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/AbstractAnnotatedAuditable.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/sample/AbstractAnnotatedAuditable.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/AbstractAnnotatedAuditable.java diff --git a/src/test/java/org/springframework/data/jpa/domain/sample/AbstractMappedType.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/AbstractMappedType.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/sample/AbstractMappedType.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/AbstractMappedType.java diff --git a/src/test/java/org/springframework/data/jpa/domain/sample/Account.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/Account.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/sample/Account.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/Account.java diff --git a/src/test/java/org/springframework/data/jpa/domain/sample/Address.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/Address.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/sample/Address.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/Address.java diff --git a/src/test/java/org/springframework/data/jpa/domain/sample/AnnotatedAuditableUser.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/AnnotatedAuditableUser.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/sample/AnnotatedAuditableUser.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/AnnotatedAuditableUser.java diff --git a/src/test/java/org/springframework/data/jpa/domain/sample/AuditableRole.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/AuditableRole.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/sample/AuditableRole.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/AuditableRole.java diff --git a/src/test/java/org/springframework/data/jpa/domain/sample/AuditableUser.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/AuditableUser.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/sample/AuditableUser.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/AuditableUser.java diff --git a/src/test/java/org/springframework/data/jpa/domain/sample/AuditorAwareStub.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/AuditorAwareStub.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/sample/AuditorAwareStub.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/AuditorAwareStub.java diff --git a/src/test/java/org/springframework/data/jpa/domain/sample/Category.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/Category.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/sample/Category.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/Category.java diff --git a/src/test/java/org/springframework/data/jpa/domain/sample/Child.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/Child.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/sample/Child.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/Child.java diff --git a/src/test/java/org/springframework/data/jpa/domain/sample/ConcreteType1.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/ConcreteType1.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/sample/ConcreteType1.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/ConcreteType1.java diff --git a/src/test/java/org/springframework/data/jpa/domain/sample/ConcreteType2.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/ConcreteType2.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/sample/ConcreteType2.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/ConcreteType2.java diff --git a/src/test/java/org/springframework/data/jpa/domain/sample/CustomAbstractPersistable.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/CustomAbstractPersistable.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/sample/CustomAbstractPersistable.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/CustomAbstractPersistable.java diff --git a/src/test/java/org/springframework/data/jpa/domain/sample/Customer.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/Customer.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/sample/Customer.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/Customer.java diff --git a/src/test/java/org/springframework/data/jpa/domain/sample/Dummy.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/Dummy.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/sample/Dummy.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/Dummy.java diff --git a/src/test/java/org/springframework/data/jpa/domain/sample/EmbeddedIdExampleDepartment.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/EmbeddedIdExampleDepartment.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/sample/EmbeddedIdExampleDepartment.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/EmbeddedIdExampleDepartment.java diff --git a/src/test/java/org/springframework/data/jpa/domain/sample/EmbeddedIdExampleEmployee.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/EmbeddedIdExampleEmployee.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/sample/EmbeddedIdExampleEmployee.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/EmbeddedIdExampleEmployee.java diff --git a/src/test/java/org/springframework/data/jpa/domain/sample/EmbeddedIdExampleEmployeePK.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/EmbeddedIdExampleEmployeePK.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/sample/EmbeddedIdExampleEmployeePK.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/EmbeddedIdExampleEmployeePK.java diff --git a/src/test/java/org/springframework/data/jpa/domain/sample/EntityWithAssignedId.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/EntityWithAssignedId.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/sample/EntityWithAssignedId.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/EntityWithAssignedId.java diff --git a/src/test/java/org/springframework/data/jpa/domain/sample/IdClassExampleDepartment.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/IdClassExampleDepartment.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/sample/IdClassExampleDepartment.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/IdClassExampleDepartment.java diff --git a/src/test/java/org/springframework/data/jpa/domain/sample/IdClassExampleEmployee.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/IdClassExampleEmployee.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/sample/IdClassExampleEmployee.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/IdClassExampleEmployee.java diff --git a/src/test/java/org/springframework/data/jpa/domain/sample/IdClassExampleEmployeePK.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/IdClassExampleEmployeePK.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/sample/IdClassExampleEmployeePK.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/IdClassExampleEmployeePK.java diff --git a/src/test/java/org/springframework/data/jpa/domain/sample/Invoice.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/Invoice.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/sample/Invoice.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/Invoice.java diff --git a/src/test/java/org/springframework/data/jpa/domain/sample/InvoiceItem.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/InvoiceItem.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/sample/InvoiceItem.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/InvoiceItem.java diff --git a/src/test/java/org/springframework/data/jpa/domain/sample/Item.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/Item.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/sample/Item.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/Item.java diff --git a/src/test/java/org/springframework/data/jpa/domain/sample/ItemId.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/ItemId.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/sample/ItemId.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/ItemId.java diff --git a/src/test/java/org/springframework/data/jpa/domain/sample/ItemSite.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/ItemSite.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/sample/ItemSite.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/ItemSite.java diff --git a/src/test/java/org/springframework/data/jpa/domain/sample/ItemSiteId.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/ItemSiteId.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/sample/ItemSiteId.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/ItemSiteId.java diff --git a/src/test/java/org/springframework/data/jpa/domain/sample/MailMessage.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/MailMessage.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/sample/MailMessage.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/MailMessage.java diff --git a/src/test/java/org/springframework/data/jpa/domain/sample/MailSender.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/MailSender.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/sample/MailSender.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/MailSender.java diff --git a/src/test/java/org/springframework/data/jpa/domain/sample/MailUser.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/MailUser.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/sample/MailUser.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/MailUser.java diff --git a/src/test/java/org/springframework/data/jpa/domain/sample/Order.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/Order.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/sample/Order.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/Order.java diff --git a/src/test/java/org/springframework/data/jpa/domain/sample/OrmXmlEntity.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/OrmXmlEntity.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/sample/OrmXmlEntity.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/OrmXmlEntity.java diff --git a/src/test/java/org/springframework/data/jpa/domain/sample/Parent.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/Parent.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/sample/Parent.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/Parent.java diff --git a/src/test/java/org/springframework/data/jpa/domain/sample/PersistableWithIdClass.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/PersistableWithIdClass.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/sample/PersistableWithIdClass.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/PersistableWithIdClass.java diff --git a/src/test/java/org/springframework/data/jpa/domain/sample/PersistableWithIdClassPK.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/PersistableWithIdClassPK.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/sample/PersistableWithIdClassPK.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/PersistableWithIdClassPK.java diff --git a/src/test/java/org/springframework/data/jpa/domain/sample/PersistableWithSingleIdClass.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/PersistableWithSingleIdClass.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/sample/PersistableWithSingleIdClass.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/PersistableWithSingleIdClass.java diff --git a/src/test/java/org/springframework/data/jpa/domain/sample/PersistableWithSingleIdClassPK.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/PersistableWithSingleIdClassPK.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/sample/PersistableWithSingleIdClassPK.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/PersistableWithSingleIdClassPK.java diff --git a/src/test/java/org/springframework/data/jpa/domain/sample/PrimitiveVersionProperty.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/PrimitiveVersionProperty.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/sample/PrimitiveVersionProperty.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/PrimitiveVersionProperty.java diff --git a/src/test/java/org/springframework/data/jpa/domain/sample/Product.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/Product.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/sample/Product.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/Product.java diff --git a/src/test/java/org/springframework/data/jpa/domain/sample/Role.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/Role.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/sample/Role.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/Role.java diff --git a/src/test/java/org/springframework/data/jpa/domain/sample/SampleEntity.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/SampleEntity.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/sample/SampleEntity.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/SampleEntity.java diff --git a/src/test/java/org/springframework/data/jpa/domain/sample/SampleEntityPK.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/SampleEntityPK.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/sample/SampleEntityPK.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/SampleEntityPK.java diff --git a/src/test/java/org/springframework/data/jpa/domain/sample/SampleWithIdClass.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/SampleWithIdClass.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/sample/SampleWithIdClass.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/SampleWithIdClass.java diff --git a/src/test/java/org/springframework/data/jpa/domain/sample/SampleWithIdClassIncludingEntity.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/SampleWithIdClassIncludingEntity.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/sample/SampleWithIdClassIncludingEntity.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/SampleWithIdClassIncludingEntity.java diff --git a/src/test/java/org/springframework/data/jpa/domain/sample/SampleWithPrimitiveId.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/SampleWithPrimitiveId.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/sample/SampleWithPrimitiveId.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/SampleWithPrimitiveId.java diff --git a/src/test/java/org/springframework/data/jpa/domain/sample/SampleWithTimestampVersion.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/SampleWithTimestampVersion.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/sample/SampleWithTimestampVersion.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/SampleWithTimestampVersion.java diff --git a/src/test/java/org/springframework/data/jpa/domain/sample/Site.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/Site.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/sample/Site.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/Site.java diff --git a/src/test/java/org/springframework/data/jpa/domain/sample/SpecialUser.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/SpecialUser.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/sample/SpecialUser.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/SpecialUser.java diff --git a/src/test/java/org/springframework/data/jpa/domain/sample/User.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/User.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/sample/User.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/User.java diff --git a/src/test/java/org/springframework/data/jpa/domain/sample/UserSpecifications.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/UserSpecifications.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/sample/UserSpecifications.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/UserSpecifications.java diff --git a/src/test/java/org/springframework/data/jpa/domain/sample/VersionedUser.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/VersionedUser.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/sample/VersionedUser.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/VersionedUser.java diff --git a/src/test/java/org/springframework/data/jpa/domain/support/AbstractAttributeConverterIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/support/AbstractAttributeConverterIntegrationTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/support/AbstractAttributeConverterIntegrationTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/support/AbstractAttributeConverterIntegrationTests.java diff --git a/src/test/java/org/springframework/data/jpa/domain/support/AnnotationAuditingBeanFactoryPostProcessorUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/support/AnnotationAuditingBeanFactoryPostProcessorUnitTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/support/AnnotationAuditingBeanFactoryPostProcessorUnitTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/support/AnnotationAuditingBeanFactoryPostProcessorUnitTests.java diff --git a/src/test/java/org/springframework/data/jpa/domain/support/AuditingBeanFactoryPostProcessorUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/support/AuditingBeanFactoryPostProcessorUnitTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/support/AuditingBeanFactoryPostProcessorUnitTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/support/AuditingBeanFactoryPostProcessorUnitTests.java diff --git a/src/test/java/org/springframework/data/jpa/domain/support/AuditingEntityListenerTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/support/AuditingEntityListenerTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/support/AuditingEntityListenerTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/support/AuditingEntityListenerTests.java diff --git a/src/test/java/org/springframework/data/jpa/domain/support/AuditingNamespaceUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/support/AuditingNamespaceUnitTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/domain/support/AuditingNamespaceUnitTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/support/AuditingNamespaceUnitTests.java diff --git a/src/test/java/org/springframework/data/jpa/infrastructure/EclipseLinkMetamodelIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/infrastructure/EclipseLinkMetamodelIntegrationTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/infrastructure/EclipseLinkMetamodelIntegrationTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/infrastructure/EclipseLinkMetamodelIntegrationTests.java diff --git a/src/test/java/org/springframework/data/jpa/infrastructure/HibernateMetamodelIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/infrastructure/HibernateMetamodelIntegrationTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/infrastructure/HibernateMetamodelIntegrationTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/infrastructure/HibernateMetamodelIntegrationTests.java diff --git a/src/test/java/org/springframework/data/jpa/infrastructure/HibernateTestUtils.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/infrastructure/HibernateTestUtils.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/infrastructure/HibernateTestUtils.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/infrastructure/HibernateTestUtils.java diff --git a/src/test/java/org/springframework/data/jpa/infrastructure/MetamodelIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/infrastructure/MetamodelIntegrationTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/infrastructure/MetamodelIntegrationTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/infrastructure/MetamodelIntegrationTests.java diff --git a/src/test/java/org/springframework/data/jpa/infrastructure/OpenJpaMetamodelIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/infrastructure/OpenJpaMetamodelIntegrationTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/infrastructure/OpenJpaMetamodelIntegrationTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/infrastructure/OpenJpaMetamodelIntegrationTests.java diff --git a/src/test/java/org/springframework/data/jpa/mapping/JpaMetamodelMappingContextIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/mapping/JpaMetamodelMappingContextIntegrationTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/mapping/JpaMetamodelMappingContextIntegrationTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/mapping/JpaMetamodelMappingContextIntegrationTests.java diff --git a/src/test/java/org/springframework/data/jpa/mapping/JpaMetamodelMappingContextUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/mapping/JpaMetamodelMappingContextUnitTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/mapping/JpaMetamodelMappingContextUnitTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/mapping/JpaMetamodelMappingContextUnitTests.java diff --git a/src/test/java/org/springframework/data/jpa/mapping/JpaPersistentPropertyImplUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/mapping/JpaPersistentPropertyImplUnitTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/mapping/JpaPersistentPropertyImplUnitTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/mapping/JpaPersistentPropertyImplUnitTests.java diff --git a/src/test/java/org/springframework/data/jpa/provider/PersistenceProviderIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/provider/PersistenceProviderIntegrationTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/provider/PersistenceProviderIntegrationTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/provider/PersistenceProviderIntegrationTests.java diff --git a/src/test/java/org/springframework/data/jpa/provider/PersistenceProviderUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/provider/PersistenceProviderUnitTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/provider/PersistenceProviderUnitTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/provider/PersistenceProviderUnitTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/AbstractPersistableIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/AbstractPersistableIntegrationTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/AbstractPersistableIntegrationTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/AbstractPersistableIntegrationTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/CrudMethodMetadataUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/CrudMethodMetadataUnitTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/CrudMethodMetadataUnitTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/CrudMethodMetadataUnitTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/CustomAbstractPersistableIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/CustomAbstractPersistableIntegrationTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/CustomAbstractPersistableIntegrationTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/CustomAbstractPersistableIntegrationTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/CustomEclipseLinkJpaVendorAdapter.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/CustomEclipseLinkJpaVendorAdapter.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/CustomEclipseLinkJpaVendorAdapter.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/CustomEclipseLinkJpaVendorAdapter.java diff --git a/src/test/java/org/springframework/data/jpa/repository/CustomHsqlHibernateJpaVendorAdaptor.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/CustomHsqlHibernateJpaVendorAdaptor.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/CustomHsqlHibernateJpaVendorAdaptor.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/CustomHsqlHibernateJpaVendorAdaptor.java diff --git a/src/test/java/org/springframework/data/jpa/repository/EclipseLinkEntityGraphRepositoryMethodsIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/EclipseLinkEntityGraphRepositoryMethodsIntegrationTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/EclipseLinkEntityGraphRepositoryMethodsIntegrationTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/EclipseLinkEntityGraphRepositoryMethodsIntegrationTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/EclipseLinkNamespaceUserRepositoryTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/EclipseLinkNamespaceUserRepositoryTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/EclipseLinkNamespaceUserRepositoryTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/EclipseLinkNamespaceUserRepositoryTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/EclipseLinkParentRepositoryIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/EclipseLinkParentRepositoryIntegrationTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/EclipseLinkParentRepositoryIntegrationTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/EclipseLinkParentRepositoryIntegrationTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/EclipseLinkRepositoryWithCompositeKeyIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/EclipseLinkRepositoryWithCompositeKeyIntegrationTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/EclipseLinkRepositoryWithCompositeKeyIntegrationTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/EclipseLinkRepositoryWithCompositeKeyIntegrationTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/EclipseLinkStoredProcedureIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/EclipseLinkStoredProcedureIntegrationTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/EclipseLinkStoredProcedureIntegrationTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/EclipseLinkStoredProcedureIntegrationTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/EclipseLinkUserRepositoryFinderTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/EclipseLinkUserRepositoryFinderTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/EclipseLinkUserRepositoryFinderTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/EclipseLinkUserRepositoryFinderTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/EntityGraphRepositoryMethodsIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/EntityGraphRepositoryMethodsIntegrationTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/EntityGraphRepositoryMethodsIntegrationTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/EntityGraphRepositoryMethodsIntegrationTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/EntityWithAssignedIdIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/EntityWithAssignedIdIntegrationTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/EntityWithAssignedIdIntegrationTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/EntityWithAssignedIdIntegrationTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/JavaConfigUserRepositoryTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/JavaConfigUserRepositoryTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/JavaConfigUserRepositoryTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/JavaConfigUserRepositoryTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/MappedTypeRepositoryIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/MappedTypeRepositoryIntegrationTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/MappedTypeRepositoryIntegrationTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/MappedTypeRepositoryIntegrationTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/NamespaceUserRepositoryTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/NamespaceUserRepositoryTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/NamespaceUserRepositoryTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/NamespaceUserRepositoryTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/ORMInfrastructureTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/ORMInfrastructureTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/ORMInfrastructureTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/ORMInfrastructureTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/OpenJpaEntityGraphRepositoryMethodsIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/OpenJpaEntityGraphRepositoryMethodsIntegrationTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/OpenJpaEntityGraphRepositoryMethodsIntegrationTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/OpenJpaEntityGraphRepositoryMethodsIntegrationTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/OpenJpaNamespaceUserRepositoryTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/OpenJpaNamespaceUserRepositoryTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/OpenJpaNamespaceUserRepositoryTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/OpenJpaNamespaceUserRepositoryTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/OpenJpaParentRepositoryIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/OpenJpaParentRepositoryIntegrationTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/OpenJpaParentRepositoryIntegrationTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/OpenJpaParentRepositoryIntegrationTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/OpenJpaRepositoryWithCompositeKeyIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/OpenJpaRepositoryWithCompositeKeyIntegrationTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/OpenJpaRepositoryWithCompositeKeyIntegrationTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/OpenJpaRepositoryWithCompositeKeyIntegrationTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/OpenJpaStoredProcedureIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/OpenJpaStoredProcedureIntegrationTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/OpenJpaStoredProcedureIntegrationTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/OpenJpaStoredProcedureIntegrationTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/OpenJpaUserRepositoryFinderTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/OpenJpaUserRepositoryFinderTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/OpenJpaUserRepositoryFinderTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/OpenJpaUserRepositoryFinderTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/ParentRepositoryIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/ParentRepositoryIntegrationTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/ParentRepositoryIntegrationTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/ParentRepositoryIntegrationTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/RedeclaringRepositoryMethodsTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/RedeclaringRepositoryMethodsTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/RedeclaringRepositoryMethodsTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/RedeclaringRepositoryMethodsTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/RepositoryWithCompositeKeyTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/RepositoryWithCompositeKeyTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/RepositoryWithCompositeKeyTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/RepositoryWithCompositeKeyTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/RepositoryWithIdClassKeyTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/RepositoryWithIdClassKeyTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/RepositoryWithIdClassKeyTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/RepositoryWithIdClassKeyTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/RoleRepositoryIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/RoleRepositoryIntegrationTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/RoleRepositoryIntegrationTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/RoleRepositoryIntegrationTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/SPR8954Tests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/SPR8954Tests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/SPR8954Tests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/SPR8954Tests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/SimpleJpaParameterBindingTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/SimpleJpaParameterBindingTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/SimpleJpaParameterBindingTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/SimpleJpaParameterBindingTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/StoredProcedureIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/StoredProcedureIntegrationTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/StoredProcedureIntegrationTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/StoredProcedureIntegrationTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/UserRepositoryFinderTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/UserRepositoryFinderTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/UserRepositoryFinderTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/UserRepositoryFinderTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/UserRepositoryStoredProcedureIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/UserRepositoryStoredProcedureIntegrationTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/UserRepositoryStoredProcedureIntegrationTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/UserRepositoryStoredProcedureIntegrationTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/UserRepositoryTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/UserRepositoryTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/UserRepositoryTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/UserRepositoryTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/cdi/CdiExtensionIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/cdi/CdiExtensionIntegrationTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/cdi/CdiExtensionIntegrationTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/cdi/CdiExtensionIntegrationTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/cdi/EntityManagerFactoryProducer.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/cdi/EntityManagerFactoryProducer.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/cdi/EntityManagerFactoryProducer.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/cdi/EntityManagerFactoryProducer.java diff --git a/src/test/java/org/springframework/data/jpa/repository/cdi/JpaRepositoryExtensionUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/cdi/JpaRepositoryExtensionUnitTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/cdi/JpaRepositoryExtensionUnitTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/cdi/JpaRepositoryExtensionUnitTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/cdi/Person.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/cdi/Person.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/cdi/Person.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/cdi/Person.java diff --git a/src/test/java/org/springframework/data/jpa/repository/cdi/PersonDB.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/cdi/PersonDB.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/cdi/PersonDB.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/cdi/PersonDB.java diff --git a/src/test/java/org/springframework/data/jpa/repository/cdi/PersonRepository.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/cdi/PersonRepository.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/cdi/PersonRepository.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/cdi/PersonRepository.java diff --git a/src/test/java/org/springframework/data/jpa/repository/cdi/QualifiedCustomizedCdiConfiguration.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/cdi/QualifiedCustomizedCdiConfiguration.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/cdi/QualifiedCustomizedCdiConfiguration.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/cdi/QualifiedCustomizedCdiConfiguration.java diff --git a/src/test/java/org/springframework/data/jpa/repository/cdi/QualifiedCustomizedUserRepository.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/cdi/QualifiedCustomizedUserRepository.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/cdi/QualifiedCustomizedUserRepository.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/cdi/QualifiedCustomizedUserRepository.java diff --git a/src/test/java/org/springframework/data/jpa/repository/cdi/QualifiedCustomizedUserRepositoryBean.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/cdi/QualifiedCustomizedUserRepositoryBean.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/cdi/QualifiedCustomizedUserRepositoryBean.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/cdi/QualifiedCustomizedUserRepositoryBean.java diff --git a/src/test/java/org/springframework/data/jpa/repository/cdi/QualifiedCustomizedUserRepositoryCustom.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/cdi/QualifiedCustomizedUserRepositoryCustom.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/cdi/QualifiedCustomizedUserRepositoryCustom.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/cdi/QualifiedCustomizedUserRepositoryCustom.java diff --git a/src/test/java/org/springframework/data/jpa/repository/cdi/QualifiedEntityManagerProducer.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/cdi/QualifiedEntityManagerProducer.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/cdi/QualifiedEntityManagerProducer.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/cdi/QualifiedEntityManagerProducer.java diff --git a/src/test/java/org/springframework/data/jpa/repository/cdi/QualifiedFragment.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/cdi/QualifiedFragment.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/cdi/QualifiedFragment.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/cdi/QualifiedFragment.java diff --git a/src/test/java/org/springframework/data/jpa/repository/cdi/QualifiedFragmentBean.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/cdi/QualifiedFragmentBean.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/cdi/QualifiedFragmentBean.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/cdi/QualifiedFragmentBean.java diff --git a/src/test/java/org/springframework/data/jpa/repository/cdi/QualifiedPersonRepository.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/cdi/QualifiedPersonRepository.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/cdi/QualifiedPersonRepository.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/cdi/QualifiedPersonRepository.java diff --git a/src/test/java/org/springframework/data/jpa/repository/cdi/RepositoryConsumer.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/cdi/RepositoryConsumer.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/cdi/RepositoryConsumer.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/cdi/RepositoryConsumer.java diff --git a/src/test/java/org/springframework/data/jpa/repository/cdi/SamplePersonRepository.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/cdi/SamplePersonRepository.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/cdi/SamplePersonRepository.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/cdi/SamplePersonRepository.java diff --git a/src/test/java/org/springframework/data/jpa/repository/cdi/SamplePersonRepositoryCustom.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/cdi/SamplePersonRepositoryCustom.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/cdi/SamplePersonRepositoryCustom.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/cdi/SamplePersonRepositoryCustom.java diff --git a/src/test/java/org/springframework/data/jpa/repository/cdi/SamplePersonRepositoryImpl.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/cdi/SamplePersonRepositoryImpl.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/cdi/SamplePersonRepositoryImpl.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/cdi/SamplePersonRepositoryImpl.java diff --git a/src/test/java/org/springframework/data/jpa/repository/cdi/Transactional.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/cdi/Transactional.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/cdi/Transactional.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/cdi/Transactional.java diff --git a/src/test/java/org/springframework/data/jpa/repository/cdi/TransactionalInterceptor.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/cdi/TransactionalInterceptor.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/cdi/TransactionalInterceptor.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/cdi/TransactionalInterceptor.java diff --git a/src/test/java/org/springframework/data/jpa/repository/cdi/UnqualifiedEntityManagerProducer.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/cdi/UnqualifiedEntityManagerProducer.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/cdi/UnqualifiedEntityManagerProducer.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/cdi/UnqualifiedEntityManagerProducer.java diff --git a/src/test/java/org/springframework/data/jpa/repository/cdi/UnqualifiedPersonRepository.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/cdi/UnqualifiedPersonRepository.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/cdi/UnqualifiedPersonRepository.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/cdi/UnqualifiedPersonRepository.java diff --git a/src/test/java/org/springframework/data/jpa/repository/cdi/UserDB.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/cdi/UserDB.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/cdi/UserDB.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/cdi/UserDB.java diff --git a/src/test/java/org/springframework/data/jpa/repository/config/AbstractAuditingViaJavaConfigRepositoriesTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/config/AbstractAuditingViaJavaConfigRepositoriesTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/config/AbstractAuditingViaJavaConfigRepositoriesTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/config/AbstractAuditingViaJavaConfigRepositoriesTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/config/AbstractRepositoryConfigTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/config/AbstractRepositoryConfigTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/config/AbstractRepositoryConfigTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/config/AbstractRepositoryConfigTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/config/AllowNestedRepositoriesRepositoryConfigTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/config/AllowNestedRepositoriesRepositoryConfigTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/config/AllowNestedRepositoriesRepositoryConfigTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/config/AllowNestedRepositoriesRepositoryConfigTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/config/AuditingBeanDefinitionParserTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/config/AuditingBeanDefinitionParserTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/config/AuditingBeanDefinitionParserTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/config/AuditingBeanDefinitionParserTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/config/CustomRepositoryFactoryConfigTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/config/CustomRepositoryFactoryConfigTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/config/CustomRepositoryFactoryConfigTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/config/CustomRepositoryFactoryConfigTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/config/DefaultAuditingViaJavaConfigRepositoriesTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/config/DefaultAuditingViaJavaConfigRepositoriesTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/config/DefaultAuditingViaJavaConfigRepositoriesTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/config/DefaultAuditingViaJavaConfigRepositoriesTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/config/ExplicitAuditingViaJavaConfigRepositoriesTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/config/ExplicitAuditingViaJavaConfigRepositoriesTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/config/ExplicitAuditingViaJavaConfigRepositoriesTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/config/ExplicitAuditingViaJavaConfigRepositoriesTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/config/InfrastructureConfig.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/config/InfrastructureConfig.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/config/InfrastructureConfig.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/config/InfrastructureConfig.java diff --git a/src/test/java/org/springframework/data/jpa/repository/config/InspectionClassLoaderUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/config/InspectionClassLoaderUnitTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/config/InspectionClassLoaderUnitTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/config/InspectionClassLoaderUnitTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/config/JpaAuditingRegistrarUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/config/JpaAuditingRegistrarUnitTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/config/JpaAuditingRegistrarUnitTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/config/JpaAuditingRegistrarUnitTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/config/JpaRepositoriesRegistrarIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/config/JpaRepositoriesRegistrarIntegrationTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/config/JpaRepositoriesRegistrarIntegrationTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/config/JpaRepositoriesRegistrarIntegrationTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/config/JpaRepositoriesRegistrarUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/config/JpaRepositoriesRegistrarUnitTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/config/JpaRepositoriesRegistrarUnitTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/config/JpaRepositoriesRegistrarUnitTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/config/JpaRepositoryConfigDefinitionParserTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/config/JpaRepositoryConfigDefinitionParserTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/config/JpaRepositoryConfigDefinitionParserTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/config/JpaRepositoryConfigDefinitionParserTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/config/JpaRepositoryConfigExtensionUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/config/JpaRepositoryConfigExtensionUnitTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/config/JpaRepositoryConfigExtensionUnitTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/config/JpaRepositoryConfigExtensionUnitTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/config/NestedRepositoriesJavaConfigTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/config/NestedRepositoriesJavaConfigTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/config/NestedRepositoriesJavaConfigTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/config/NestedRepositoriesJavaConfigTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/config/QueryLookupStrategyTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/config/QueryLookupStrategyTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/config/QueryLookupStrategyTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/config/QueryLookupStrategyTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/config/RepositoriesJavaConfigTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/config/RepositoriesJavaConfigTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/config/RepositoriesJavaConfigTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/config/RepositoriesJavaConfigTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/config/RepositoryAutoConfigTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/config/RepositoryAutoConfigTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/config/RepositoryAutoConfigTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/config/RepositoryAutoConfigTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/config/RepositoryConfigTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/config/RepositoryConfigTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/config/RepositoryConfigTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/config/RepositoryConfigTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/config/TypeFilterConfigTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/config/TypeFilterConfigTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/config/TypeFilterConfigTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/config/TypeFilterConfigTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/config/package.html b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/config/package.html similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/config/package.html rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/config/package.html diff --git a/src/test/java/org/springframework/data/jpa/repository/custom/CustomGenericJpaRepository.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/custom/CustomGenericJpaRepository.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/custom/CustomGenericJpaRepository.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/custom/CustomGenericJpaRepository.java diff --git a/src/test/java/org/springframework/data/jpa/repository/custom/CustomGenericJpaRepositoryFactory.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/custom/CustomGenericJpaRepositoryFactory.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/custom/CustomGenericJpaRepositoryFactory.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/custom/CustomGenericJpaRepositoryFactory.java diff --git a/src/test/java/org/springframework/data/jpa/repository/custom/CustomGenericJpaRepositoryFactoryBean.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/custom/CustomGenericJpaRepositoryFactoryBean.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/custom/CustomGenericJpaRepositoryFactoryBean.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/custom/CustomGenericJpaRepositoryFactoryBean.java diff --git a/src/test/java/org/springframework/data/jpa/repository/custom/CustomGenericRepository.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/custom/CustomGenericRepository.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/custom/CustomGenericRepository.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/custom/CustomGenericRepository.java diff --git a/src/test/java/org/springframework/data/jpa/repository/custom/UserCustomExtendedRepository.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/custom/UserCustomExtendedRepository.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/custom/UserCustomExtendedRepository.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/custom/UserCustomExtendedRepository.java diff --git a/src/test/java/org/springframework/data/jpa/repository/custom/package-info.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/custom/package-info.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/custom/package-info.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/custom/package-info.java diff --git a/src/test/java/org/springframework/data/jpa/repository/procedures/MySqlStoredProcedureIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/procedures/MySqlStoredProcedureIntegrationTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/procedures/MySqlStoredProcedureIntegrationTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/procedures/MySqlStoredProcedureIntegrationTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/procedures/PostgresStoredProcedureIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/procedures/PostgresStoredProcedureIntegrationTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/procedures/PostgresStoredProcedureIntegrationTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/procedures/PostgresStoredProcedureIntegrationTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/projections/ProjectionJoinIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/projections/ProjectionJoinIntegrationTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/projections/ProjectionJoinIntegrationTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/projections/ProjectionJoinIntegrationTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/projections/ProjectionsIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/projections/ProjectionsIntegrationTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/projections/ProjectionsIntegrationTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/projections/ProjectionsIntegrationTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/query/AbstractJpaQueryTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/AbstractJpaQueryTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/query/AbstractJpaQueryTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/AbstractJpaQueryTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/query/AbstractStringBasedJpaQueryIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/AbstractStringBasedJpaQueryIntegrationTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/query/AbstractStringBasedJpaQueryIntegrationTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/AbstractStringBasedJpaQueryIntegrationTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/query/CustomNonBindableJpaParametersIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/CustomNonBindableJpaParametersIntegrationTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/query/CustomNonBindableJpaParametersIntegrationTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/CustomNonBindableJpaParametersIntegrationTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/query/EclipseLinkJpa21UtilsTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/EclipseLinkJpa21UtilsTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/query/EclipseLinkJpa21UtilsTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/EclipseLinkJpa21UtilsTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/query/EclipseLinkParameterMetadataProviderIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/EclipseLinkParameterMetadataProviderIntegrationTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/query/EclipseLinkParameterMetadataProviderIntegrationTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/EclipseLinkParameterMetadataProviderIntegrationTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/query/EclipseLinkQueryUtilsIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/EclipseLinkQueryUtilsIntegrationTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/query/EclipseLinkQueryUtilsIntegrationTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/EclipseLinkQueryUtilsIntegrationTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/query/EscapeCharacterUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/EscapeCharacterUnitTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/query/EscapeCharacterUnitTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/EscapeCharacterUnitTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/query/ExpressionBasedStringQueryUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/ExpressionBasedStringQueryUnitTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/query/ExpressionBasedStringQueryUnitTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/ExpressionBasedStringQueryUnitTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/query/Jpa21UtilsTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/Jpa21UtilsTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/query/Jpa21UtilsTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/Jpa21UtilsTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/query/Jpa21UtilsUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/Jpa21UtilsUnitTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/query/Jpa21UtilsUnitTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/Jpa21UtilsUnitTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/query/JpaCountQueryCreatorIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/JpaCountQueryCreatorIntegrationTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/query/JpaCountQueryCreatorIntegrationTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/JpaCountQueryCreatorIntegrationTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/query/JpaParametersUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/JpaParametersUnitTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/query/JpaParametersUnitTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/JpaParametersUnitTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/query/JpaQueryExecutionUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/JpaQueryExecutionUnitTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/query/JpaQueryExecutionUnitTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/JpaQueryExecutionUnitTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/query/JpaQueryLookupStrategyUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/JpaQueryLookupStrategyUnitTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/query/JpaQueryLookupStrategyUnitTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/JpaQueryLookupStrategyUnitTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/query/JpaQueryMethodUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/JpaQueryMethodUnitTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/query/JpaQueryMethodUnitTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/JpaQueryMethodUnitTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/query/LikeBindingUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/LikeBindingUnitTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/query/LikeBindingUnitTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/LikeBindingUnitTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/query/NamedOrIndexedQueryParameterSetterUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/NamedOrIndexedQueryParameterSetterUnitTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/query/NamedOrIndexedQueryParameterSetterUnitTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/NamedOrIndexedQueryParameterSetterUnitTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/query/NamedQueryUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/NamedQueryUnitTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/query/NamedQueryUnitTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/NamedQueryUnitTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/query/OpenJpaJpa21UtilsTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/OpenJpaJpa21UtilsTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/query/OpenJpaJpa21UtilsTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/OpenJpaJpa21UtilsTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/query/OpenJpaParameterMetadataProviderIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/OpenJpaParameterMetadataProviderIntegrationTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/query/OpenJpaParameterMetadataProviderIntegrationTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/OpenJpaParameterMetadataProviderIntegrationTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/query/OpenJpaQueryUtilsIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/OpenJpaQueryUtilsIntegrationTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/query/OpenJpaQueryUtilsIntegrationTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/OpenJpaQueryUtilsIntegrationTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/query/ParameterBinderUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/ParameterBinderUnitTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/query/ParameterBinderUnitTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/ParameterBinderUnitTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/query/ParameterBindingParserUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/ParameterBindingParserUnitTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/query/ParameterBindingParserUnitTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/ParameterBindingParserUnitTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/query/ParameterExpressionProviderTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/ParameterExpressionProviderTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/query/ParameterExpressionProviderTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/ParameterExpressionProviderTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/query/ParameterMetadataProviderIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/ParameterMetadataProviderIntegrationTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/query/ParameterMetadataProviderIntegrationTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/ParameterMetadataProviderIntegrationTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/query/ParameterMetadataProviderUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/ParameterMetadataProviderUnitTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/query/ParameterMetadataProviderUnitTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/ParameterMetadataProviderUnitTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/query/PartTreeJpaQueryIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/PartTreeJpaQueryIntegrationTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/query/PartTreeJpaQueryIntegrationTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/PartTreeJpaQueryIntegrationTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/query/QueryParameterSetterFactoryUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/QueryParameterSetterFactoryUnitTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/query/QueryParameterSetterFactoryUnitTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/QueryParameterSetterFactoryUnitTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/query/QueryUtilsIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/QueryUtilsIntegrationTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/query/QueryUtilsIntegrationTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/QueryUtilsIntegrationTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/query/QueryUtilsUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/QueryUtilsUnitTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/query/QueryUtilsUnitTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/QueryUtilsUnitTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/query/SimpleJpaQueryUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/SimpleJpaQueryUnitTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/query/SimpleJpaQueryUnitTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/SimpleJpaQueryUnitTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/query/StoredProcedureAttributeSourceUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/StoredProcedureAttributeSourceUnitTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/query/StoredProcedureAttributeSourceUnitTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/StoredProcedureAttributeSourceUnitTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/query/StoredProcedureAttributesUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/StoredProcedureAttributesUnitTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/query/StoredProcedureAttributesUnitTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/StoredProcedureAttributesUnitTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/query/StringQueryUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/StringQueryUnitTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/query/StringQueryUnitTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/StringQueryUnitTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/query/TupleConverterUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/TupleConverterUnitTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/query/TupleConverterUnitTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/TupleConverterUnitTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/sample/AnnotatedAuditableUserRepository.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/sample/AnnotatedAuditableUserRepository.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/sample/AnnotatedAuditableUserRepository.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/sample/AnnotatedAuditableUserRepository.java diff --git a/src/test/java/org/springframework/data/jpa/repository/sample/AuditableUserRepository.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/sample/AuditableUserRepository.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/sample/AuditableUserRepository.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/sample/AuditableUserRepository.java diff --git a/src/test/java/org/springframework/data/jpa/repository/sample/CategoryRepository.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/sample/CategoryRepository.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/sample/CategoryRepository.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/sample/CategoryRepository.java diff --git a/src/test/java/org/springframework/data/jpa/repository/sample/ClassWithNestedRepository.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/sample/ClassWithNestedRepository.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/sample/ClassWithNestedRepository.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/sample/ClassWithNestedRepository.java diff --git a/src/test/java/org/springframework/data/jpa/repository/sample/ConcreteRepository1.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/sample/ConcreteRepository1.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/sample/ConcreteRepository1.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/sample/ConcreteRepository1.java diff --git a/src/test/java/org/springframework/data/jpa/repository/sample/ConcreteRepository2.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/sample/ConcreteRepository2.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/sample/ConcreteRepository2.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/sample/ConcreteRepository2.java diff --git a/src/test/java/org/springframework/data/jpa/repository/sample/CustomAbstractPersistableRepository.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/sample/CustomAbstractPersistableRepository.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/sample/CustomAbstractPersistableRepository.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/sample/CustomAbstractPersistableRepository.java diff --git a/src/test/java/org/springframework/data/jpa/repository/sample/DummyRepository.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/sample/DummyRepository.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/sample/DummyRepository.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/sample/DummyRepository.java diff --git a/src/test/java/org/springframework/data/jpa/repository/sample/EmployeeRepositoryWithEmbeddedId.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/sample/EmployeeRepositoryWithEmbeddedId.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/sample/EmployeeRepositoryWithEmbeddedId.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/sample/EmployeeRepositoryWithEmbeddedId.java diff --git a/src/test/java/org/springframework/data/jpa/repository/sample/EmployeeRepositoryWithIdClass.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/sample/EmployeeRepositoryWithIdClass.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/sample/EmployeeRepositoryWithIdClass.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/sample/EmployeeRepositoryWithIdClass.java diff --git a/src/test/java/org/springframework/data/jpa/repository/sample/EntityWithAssignedIdRepository.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/sample/EntityWithAssignedIdRepository.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/sample/EntityWithAssignedIdRepository.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/sample/EntityWithAssignedIdRepository.java diff --git a/src/test/java/org/springframework/data/jpa/repository/sample/ItemRepository.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/sample/ItemRepository.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/sample/ItemRepository.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/sample/ItemRepository.java diff --git a/src/test/java/org/springframework/data/jpa/repository/sample/ItemSiteRepository.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/sample/ItemSiteRepository.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/sample/ItemSiteRepository.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/sample/ItemSiteRepository.java diff --git a/src/test/java/org/springframework/data/jpa/repository/sample/MailMessageRepository.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/sample/MailMessageRepository.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/sample/MailMessageRepository.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/sample/MailMessageRepository.java diff --git a/src/test/java/org/springframework/data/jpa/repository/sample/MappedTypeRepository.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/sample/MappedTypeRepository.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/sample/MappedTypeRepository.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/sample/MappedTypeRepository.java diff --git a/src/test/java/org/springframework/data/jpa/repository/sample/NameOnlyDto.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/sample/NameOnlyDto.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/sample/NameOnlyDto.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/sample/NameOnlyDto.java diff --git a/src/test/java/org/springframework/data/jpa/repository/sample/ParentRepository.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/sample/ParentRepository.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/sample/ParentRepository.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/sample/ParentRepository.java diff --git a/src/test/java/org/springframework/data/jpa/repository/sample/ProductRepository.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/sample/ProductRepository.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/sample/ProductRepository.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/sample/ProductRepository.java diff --git a/src/test/java/org/springframework/data/jpa/repository/sample/RedeclaringRepositoryMethodsRepository.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/sample/RedeclaringRepositoryMethodsRepository.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/sample/RedeclaringRepositoryMethodsRepository.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/sample/RedeclaringRepositoryMethodsRepository.java diff --git a/src/test/java/org/springframework/data/jpa/repository/sample/RepositoryMethodsWithEntityGraphConfigRepository.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/sample/RepositoryMethodsWithEntityGraphConfigRepository.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/sample/RepositoryMethodsWithEntityGraphConfigRepository.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/sample/RepositoryMethodsWithEntityGraphConfigRepository.java diff --git a/src/test/java/org/springframework/data/jpa/repository/sample/RoleRepository.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/sample/RoleRepository.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/sample/RoleRepository.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/sample/RoleRepository.java diff --git a/src/test/java/org/springframework/data/jpa/repository/sample/SampleConfig.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/sample/SampleConfig.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/sample/SampleConfig.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/sample/SampleConfig.java diff --git a/src/test/java/org/springframework/data/jpa/repository/sample/SampleEvaluationContextExtension.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/sample/SampleEvaluationContextExtension.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/sample/SampleEvaluationContextExtension.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/sample/SampleEvaluationContextExtension.java diff --git a/src/test/java/org/springframework/data/jpa/repository/sample/SiteRepository.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/sample/SiteRepository.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/sample/SiteRepository.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/sample/SiteRepository.java diff --git a/src/test/java/org/springframework/data/jpa/repository/sample/UserRepository.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/sample/UserRepository.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/sample/UserRepository.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/sample/UserRepository.java diff --git a/src/test/java/org/springframework/data/jpa/repository/sample/UserRepositoryCustom.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/sample/UserRepositoryCustom.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/sample/UserRepositoryCustom.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/sample/UserRepositoryCustom.java diff --git a/src/test/java/org/springframework/data/jpa/repository/sample/UserRepositoryImpl.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/sample/UserRepositoryImpl.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/sample/UserRepositoryImpl.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/sample/UserRepositoryImpl.java diff --git a/src/test/java/org/springframework/data/jpa/repository/support/CrudMethodMetadataPopulatingMethodInterceptorUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/CrudMethodMetadataPopulatingMethodInterceptorUnitTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/support/CrudMethodMetadataPopulatingMethodInterceptorUnitTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/CrudMethodMetadataPopulatingMethodInterceptorUnitTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/support/DefaultJpaContextIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/DefaultJpaContextIntegrationTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/support/DefaultJpaContextIntegrationTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/DefaultJpaContextIntegrationTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/support/DefaultJpaContextUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/DefaultJpaContextUnitTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/support/DefaultJpaContextUnitTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/DefaultJpaContextUnitTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/support/DefaultJpaEntityMetadataUnitTest.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/DefaultJpaEntityMetadataUnitTest.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/support/DefaultJpaEntityMetadataUnitTest.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/DefaultJpaEntityMetadataUnitTest.java diff --git a/src/test/java/org/springframework/data/jpa/repository/support/DefaultQueryHintsTest.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/DefaultQueryHintsTest.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/support/DefaultQueryHintsTest.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/DefaultQueryHintsTest.java diff --git a/src/test/java/org/springframework/data/jpa/repository/support/DefaultTransactionDisablingIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/DefaultTransactionDisablingIntegrationTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/support/DefaultTransactionDisablingIntegrationTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/DefaultTransactionDisablingIntegrationTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/support/EclipseLinkJpaMetamodelEntityInformationIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/EclipseLinkJpaMetamodelEntityInformationIntegrationTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/support/EclipseLinkJpaMetamodelEntityInformationIntegrationTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/EclipseLinkJpaMetamodelEntityInformationIntegrationTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/support/EclipseLinkJpaRepositoryTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/EclipseLinkJpaRepositoryTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/support/EclipseLinkJpaRepositoryTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/EclipseLinkJpaRepositoryTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/support/EclipseLinkProxyIdAccessorTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/EclipseLinkProxyIdAccessorTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/support/EclipseLinkProxyIdAccessorTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/EclipseLinkProxyIdAccessorTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/support/EntityManagerBeanDefinitionRegistrarPostProcessorIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/EntityManagerBeanDefinitionRegistrarPostProcessorIntegrationTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/support/EntityManagerBeanDefinitionRegistrarPostProcessorIntegrationTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/EntityManagerBeanDefinitionRegistrarPostProcessorIntegrationTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/support/EntityManagerBeanDefinitionRegistrarPostProcessorUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/EntityManagerBeanDefinitionRegistrarPostProcessorUnitTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/support/EntityManagerBeanDefinitionRegistrarPostProcessorUnitTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/EntityManagerBeanDefinitionRegistrarPostProcessorUnitTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/support/EntityManagerFactoryRefTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/EntityManagerFactoryRefTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/support/EntityManagerFactoryRefTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/EntityManagerFactoryRefTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/support/EntityManagerFactoryRefUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/EntityManagerFactoryRefUnitTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/support/EntityManagerFactoryRefUnitTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/EntityManagerFactoryRefUnitTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/support/JavaConfigDefaultTransactionDisablingIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/JavaConfigDefaultTransactionDisablingIntegrationTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/support/JavaConfigDefaultTransactionDisablingIntegrationTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/JavaConfigDefaultTransactionDisablingIntegrationTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/support/JpaEntityInformationSupportUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/JpaEntityInformationSupportUnitTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/support/JpaEntityInformationSupportUnitTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/JpaEntityInformationSupportUnitTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/support/JpaMetamodelEntityInformationIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/JpaMetamodelEntityInformationIntegrationTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/support/JpaMetamodelEntityInformationIntegrationTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/JpaMetamodelEntityInformationIntegrationTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/support/JpaMetamodelEntityInformationUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/JpaMetamodelEntityInformationUnitTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/support/JpaMetamodelEntityInformationUnitTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/JpaMetamodelEntityInformationUnitTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/support/JpaPersistableEntityInformationUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/JpaPersistableEntityInformationUnitTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/support/JpaPersistableEntityInformationUnitTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/JpaPersistableEntityInformationUnitTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/support/JpaRepositoryFactoryBeanEntityPathResolverIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/JpaRepositoryFactoryBeanEntityPathResolverIntegrationTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/support/JpaRepositoryFactoryBeanEntityPathResolverIntegrationTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/JpaRepositoryFactoryBeanEntityPathResolverIntegrationTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/support/JpaRepositoryFactoryBeanUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/JpaRepositoryFactoryBeanUnitTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/support/JpaRepositoryFactoryBeanUnitTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/JpaRepositoryFactoryBeanUnitTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/support/JpaRepositoryFactoryUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/JpaRepositoryFactoryUnitTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/support/JpaRepositoryFactoryUnitTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/JpaRepositoryFactoryUnitTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/support/JpaRepositoryTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/JpaRepositoryTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/support/JpaRepositoryTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/JpaRepositoryTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/support/MailMessageRepositoryIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/MailMessageRepositoryIntegrationTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/support/MailMessageRepositoryIntegrationTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/MailMessageRepositoryIntegrationTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/support/MutableQueryHintsUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/MutableQueryHintsUnitTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/support/MutableQueryHintsUnitTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/MutableQueryHintsUnitTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/support/OpenJpaJpaRepositoryTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/OpenJpaJpaRepositoryTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/support/OpenJpaJpaRepositoryTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/OpenJpaJpaRepositoryTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/support/OpenJpaMetamodelEntityInformationIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/OpenJpaMetamodelEntityInformationIntegrationTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/support/OpenJpaMetamodelEntityInformationIntegrationTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/OpenJpaMetamodelEntityInformationIntegrationTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/support/OpenJpaProxyIdAccessorTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/OpenJpaProxyIdAccessorTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/support/OpenJpaProxyIdAccessorTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/OpenJpaProxyIdAccessorTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/support/QSimpleEntityPathResolverUnitTests_Sample.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/QSimpleEntityPathResolverUnitTests_Sample.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/support/QSimpleEntityPathResolverUnitTests_Sample.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/QSimpleEntityPathResolverUnitTests_Sample.java diff --git a/src/test/java/org/springframework/data/jpa/repository/support/QuerydslIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/QuerydslIntegrationTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/support/QuerydslIntegrationTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/QuerydslIntegrationTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/support/QuerydslJpaPredicateExecutorUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/QuerydslJpaPredicateExecutorUnitTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/support/QuerydslJpaPredicateExecutorUnitTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/QuerydslJpaPredicateExecutorUnitTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/support/QuerydslJpaRepositoryTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/QuerydslJpaRepositoryTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/support/QuerydslJpaRepositoryTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/QuerydslJpaRepositoryTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/support/QuerydslRepositorySupportIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/QuerydslRepositorySupportIntegrationTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/support/QuerydslRepositorySupportIntegrationTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/QuerydslRepositorySupportIntegrationTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/support/QuerydslRepositorySupportTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/QuerydslRepositorySupportTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/support/QuerydslRepositorySupportTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/QuerydslRepositorySupportTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/support/SimpleJpaRepositoryUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/SimpleJpaRepositoryUnitTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/support/SimpleJpaRepositoryUnitTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/SimpleJpaRepositoryUnitTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/support/TransactionalRepositoryTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/TransactionalRepositoryTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/support/TransactionalRepositoryTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/TransactionalRepositoryTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/support/XmlConfigDefaultTransactionDisablingIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/XmlConfigDefaultTransactionDisablingIntegrationTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/support/XmlConfigDefaultTransactionDisablingIntegrationTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/XmlConfigDefaultTransactionDisablingIntegrationTests.java diff --git a/src/test/java/org/springframework/data/jpa/repository/support/package.html b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/package.html similarity index 100% rename from src/test/java/org/springframework/data/jpa/repository/support/package.html rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/support/package.html diff --git a/src/test/java/org/springframework/data/jpa/support/ClasspathScanningPersistenceUnitPostProcessorUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/support/ClasspathScanningPersistenceUnitPostProcessorUnitTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/support/ClasspathScanningPersistenceUnitPostProcessorUnitTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/support/ClasspathScanningPersistenceUnitPostProcessorUnitTests.java diff --git a/src/test/java/org/springframework/data/jpa/support/EntityManagerTestUtils.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/support/EntityManagerTestUtils.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/support/EntityManagerTestUtils.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/support/EntityManagerTestUtils.java diff --git a/src/test/java/org/springframework/data/jpa/support/MergingPersistenceUnitManagerUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/support/MergingPersistenceUnitManagerUnitTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/support/MergingPersistenceUnitManagerUnitTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/support/MergingPersistenceUnitManagerUnitTests.java diff --git a/src/test/java/org/springframework/data/jpa/util/FixedDate.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/util/FixedDate.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/util/FixedDate.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/util/FixedDate.java diff --git a/src/test/java/org/springframework/data/jpa/util/JpaMetamodelCacheCleanupIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/util/JpaMetamodelCacheCleanupIntegrationTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/util/JpaMetamodelCacheCleanupIntegrationTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/util/JpaMetamodelCacheCleanupIntegrationTests.java diff --git a/src/test/java/org/springframework/data/jpa/util/JpaMetamodelUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/util/JpaMetamodelUnitTests.java similarity index 100% rename from src/test/java/org/springframework/data/jpa/util/JpaMetamodelUnitTests.java rename to spring-data-jpa/src/test/java/org/springframework/data/jpa/util/JpaMetamodelUnitTests.java diff --git a/src/test/resources/META-INF/jpa-named-queries.properties b/spring-data-jpa/src/test/resources/META-INF/jpa-named-queries.properties similarity index 100% rename from src/test/resources/META-INF/jpa-named-queries.properties rename to spring-data-jpa/src/test/resources/META-INF/jpa-named-queries.properties diff --git a/src/test/resources/META-INF/orm.xml b/spring-data-jpa/src/test/resources/META-INF/orm.xml similarity index 100% rename from src/test/resources/META-INF/orm.xml rename to spring-data-jpa/src/test/resources/META-INF/orm.xml diff --git a/src/test/resources/META-INF/persistence.xml b/spring-data-jpa/src/test/resources/META-INF/persistence.xml similarity index 100% rename from src/test/resources/META-INF/persistence.xml rename to spring-data-jpa/src/test/resources/META-INF/persistence.xml diff --git a/src/test/resources/META-INF/persistence2.xml b/spring-data-jpa/src/test/resources/META-INF/persistence2.xml similarity index 100% rename from src/test/resources/META-INF/persistence2.xml rename to spring-data-jpa/src/test/resources/META-INF/persistence2.xml diff --git a/src/test/resources/application-context.xml b/spring-data-jpa/src/test/resources/application-context.xml similarity index 100% rename from src/test/resources/application-context.xml rename to spring-data-jpa/src/test/resources/application-context.xml diff --git a/src/test/resources/auditing/auditing-bfpp-context.xml b/spring-data-jpa/src/test/resources/auditing/auditing-bfpp-context.xml similarity index 100% rename from src/test/resources/auditing/auditing-bfpp-context.xml rename to spring-data-jpa/src/test/resources/auditing/auditing-bfpp-context.xml diff --git a/src/test/resources/auditing/auditing-entity-listener.xml b/spring-data-jpa/src/test/resources/auditing/auditing-entity-listener.xml similarity index 100% rename from src/test/resources/auditing/auditing-entity-listener.xml rename to spring-data-jpa/src/test/resources/auditing/auditing-entity-listener.xml diff --git a/src/test/resources/auditing/auditing-namespace-context.xml b/spring-data-jpa/src/test/resources/auditing/auditing-namespace-context.xml similarity index 100% rename from src/test/resources/auditing/auditing-namespace-context.xml rename to spring-data-jpa/src/test/resources/auditing/auditing-namespace-context.xml diff --git a/src/test/resources/auditing/auditing-namespace-context2.xml b/spring-data-jpa/src/test/resources/auditing/auditing-namespace-context2.xml similarity index 100% rename from src/test/resources/auditing/auditing-namespace-context2.xml rename to spring-data-jpa/src/test/resources/auditing/auditing-namespace-context2.xml diff --git a/src/test/resources/auditing/auditing-namespace-context3.xml b/spring-data-jpa/src/test/resources/auditing/auditing-namespace-context3.xml similarity index 100% rename from src/test/resources/auditing/auditing-namespace-context3.xml rename to spring-data-jpa/src/test/resources/auditing/auditing-namespace-context3.xml diff --git a/src/test/resources/config/jpa-context-with-jndi.xml b/spring-data-jpa/src/test/resources/config/jpa-context-with-jndi.xml similarity index 100% rename from src/test/resources/config/jpa-context-with-jndi.xml rename to spring-data-jpa/src/test/resources/config/jpa-context-with-jndi.xml diff --git a/src/test/resources/config/lookup-strategies-context.xml b/spring-data-jpa/src/test/resources/config/lookup-strategies-context.xml similarity index 100% rename from src/test/resources/config/lookup-strategies-context.xml rename to spring-data-jpa/src/test/resources/config/lookup-strategies-context.xml diff --git a/src/test/resources/config/namespace-application-context.xml b/spring-data-jpa/src/test/resources/config/namespace-application-context.xml similarity index 100% rename from src/test/resources/config/namespace-application-context.xml rename to spring-data-jpa/src/test/resources/config/namespace-application-context.xml diff --git a/src/test/resources/config/namespace-autoconfig-context.xml b/spring-data-jpa/src/test/resources/config/namespace-autoconfig-context.xml similarity index 100% rename from src/test/resources/config/namespace-autoconfig-context.xml rename to spring-data-jpa/src/test/resources/config/namespace-autoconfig-context.xml diff --git a/src/test/resources/config/namespace-autoconfig-typefilter-context.xml b/spring-data-jpa/src/test/resources/config/namespace-autoconfig-typefilter-context.xml similarity index 100% rename from src/test/resources/config/namespace-autoconfig-typefilter-context.xml rename to spring-data-jpa/src/test/resources/config/namespace-autoconfig-typefilter-context.xml diff --git a/src/test/resources/config/namespace-customfactory-context.xml b/spring-data-jpa/src/test/resources/config/namespace-customfactory-context.xml similarity index 100% rename from src/test/resources/config/namespace-customfactory-context.xml rename to spring-data-jpa/src/test/resources/config/namespace-customfactory-context.xml diff --git a/src/test/resources/config/namespace-nested-repositories-application-context.xml b/spring-data-jpa/src/test/resources/config/namespace-nested-repositories-application-context.xml similarity index 100% rename from src/test/resources/config/namespace-nested-repositories-application-context.xml rename to spring-data-jpa/src/test/resources/config/namespace-nested-repositories-application-context.xml diff --git a/src/test/resources/eclipselink.xml b/spring-data-jpa/src/test/resources/eclipselink.xml similarity index 100% rename from src/test/resources/eclipselink.xml rename to spring-data-jpa/src/test/resources/eclipselink.xml diff --git a/src/test/resources/hibernate.xml b/spring-data-jpa/src/test/resources/hibernate.xml similarity index 100% rename from src/test/resources/hibernate.xml rename to spring-data-jpa/src/test/resources/hibernate.xml diff --git a/src/test/resources/infrastructure.xml b/spring-data-jpa/src/test/resources/infrastructure.xml similarity index 100% rename from src/test/resources/infrastructure.xml rename to spring-data-jpa/src/test/resources/infrastructure.xml diff --git a/src/test/resources/logback.xml b/spring-data-jpa/src/test/resources/logback.xml similarity index 100% rename from src/test/resources/logback.xml rename to spring-data-jpa/src/test/resources/logback.xml diff --git a/src/test/resources/multiple-entity-manager-context.xml b/spring-data-jpa/src/test/resources/multiple-entity-manager-context.xml similarity index 100% rename from src/test/resources/multiple-entity-manager-context.xml rename to spring-data-jpa/src/test/resources/multiple-entity-manager-context.xml diff --git a/src/test/resources/multiple-entity-manager-integration-context.xml b/spring-data-jpa/src/test/resources/multiple-entity-manager-integration-context.xml similarity index 100% rename from src/test/resources/multiple-entity-manager-integration-context.xml rename to spring-data-jpa/src/test/resources/multiple-entity-manager-integration-context.xml diff --git a/src/test/resources/openjpa.xml b/spring-data-jpa/src/test/resources/openjpa.xml similarity index 100% rename from src/test/resources/openjpa.xml rename to spring-data-jpa/src/test/resources/openjpa.xml diff --git a/src/test/resources/org/springframework/data/jpa/repository/support/disable-default-transactions.xml b/spring-data-jpa/src/test/resources/org/springframework/data/jpa/repository/support/disable-default-transactions.xml similarity index 100% rename from src/test/resources/org/springframework/data/jpa/repository/support/disable-default-transactions.xml rename to spring-data-jpa/src/test/resources/org/springframework/data/jpa/repository/support/disable-default-transactions.xml diff --git a/src/test/resources/org/springframework/data/jpa/support/mapping.xml b/spring-data-jpa/src/test/resources/org/springframework/data/jpa/support/mapping.xml similarity index 100% rename from src/test/resources/org/springframework/data/jpa/support/mapping.xml rename to spring-data-jpa/src/test/resources/org/springframework/data/jpa/support/mapping.xml diff --git a/src/test/resources/org/springframework/data/jpa/support/module1/module1-orm.xml b/spring-data-jpa/src/test/resources/org/springframework/data/jpa/support/module1/module1-orm.xml similarity index 100% rename from src/test/resources/org/springframework/data/jpa/support/module1/module1-orm.xml rename to spring-data-jpa/src/test/resources/org/springframework/data/jpa/support/module1/module1-orm.xml diff --git a/src/test/resources/org/springframework/data/jpa/support/module2/module2-orm.xml b/spring-data-jpa/src/test/resources/org/springframework/data/jpa/support/module2/module2-orm.xml similarity index 100% rename from src/test/resources/org/springframework/data/jpa/support/module2/module2-orm.xml rename to spring-data-jpa/src/test/resources/org/springframework/data/jpa/support/module2/module2-orm.xml diff --git a/src/test/resources/org/springframework/data/jpa/support/persistence.xml b/spring-data-jpa/src/test/resources/org/springframework/data/jpa/support/persistence.xml similarity index 100% rename from src/test/resources/org/springframework/data/jpa/support/persistence.xml rename to spring-data-jpa/src/test/resources/org/springframework/data/jpa/support/persistence.xml diff --git a/src/test/resources/org/springframework/data/jpa/support/persistence2.xml b/spring-data-jpa/src/test/resources/org/springframework/data/jpa/support/persistence2.xml similarity index 100% rename from src/test/resources/org/springframework/data/jpa/support/persistence2.xml rename to spring-data-jpa/src/test/resources/org/springframework/data/jpa/support/persistence2.xml diff --git a/src/test/resources/scripts/hsqldb-init.sql b/spring-data-jpa/src/test/resources/scripts/hsqldb-init.sql similarity index 100% rename from src/test/resources/scripts/hsqldb-init.sql rename to spring-data-jpa/src/test/resources/scripts/hsqldb-init.sql diff --git a/src/test/resources/scripts/mysql-stored-procedures.sql b/spring-data-jpa/src/test/resources/scripts/mysql-stored-procedures.sql similarity index 100% rename from src/test/resources/scripts/mysql-stored-procedures.sql rename to spring-data-jpa/src/test/resources/scripts/mysql-stored-procedures.sql diff --git a/src/test/resources/scripts/postgres-stored-procedures.sql b/spring-data-jpa/src/test/resources/scripts/postgres-stored-procedures.sql similarity index 100% rename from src/test/resources/scripts/postgres-stored-procedures.sql rename to spring-data-jpa/src/test/resources/scripts/postgres-stored-procedures.sql diff --git a/src/test/resources/scripts/schema-stored-procedures.sql b/spring-data-jpa/src/test/resources/scripts/schema-stored-procedures.sql similarity index 100% rename from src/test/resources/scripts/schema-stored-procedures.sql rename to spring-data-jpa/src/test/resources/scripts/schema-stored-procedures.sql diff --git a/src/test/resources/simple-persistence/simple-persistence.xml b/spring-data-jpa/src/test/resources/simple-persistence/simple-persistence.xml similarity index 100% rename from src/test/resources/simple-persistence/simple-persistence.xml rename to spring-data-jpa/src/test/resources/simple-persistence/simple-persistence.xml diff --git a/src/test/resources/tx-manager.xml b/spring-data-jpa/src/test/resources/tx-manager.xml similarity index 100% rename from src/test/resources/tx-manager.xml rename to spring-data-jpa/src/test/resources/tx-manager.xml diff --git a/src/main/asciidoc/envers.adoc b/src/main/asciidoc/envers.adoc new file mode 100644 index 000000000..d1c46be1d --- /dev/null +++ b/src/main/asciidoc/envers.adoc @@ -0,0 +1,204 @@ +[[envers]] += Spring Data Envers + +[[envers.what.is.spring.data]] +== What is Spring Data Envers? + +Spring Data Envers makes typical Envers queries available in repositories for Spring Data JPA. +It differs from other Spring Data modules in that it is always used in combination with another Spring Data Module: Spring Data JPA. + +[[envers.what]] +== What is Envers? + +Envers is a https://hibernate.org/orm/envers/[Hibernate module] that adds auditing capabilities to JPA entities. +This documentation assumes you are familiar with Envers, just as Spring Data Envers relies on Envers being properly configured. + +[[envers.configuration]] +== Configuration + +As a starting point for using Spring Data Envers, you need a project with Spring Data JPA on the classpath and an additional `spring-data-envers` dependency: + +==== +[source,xml,subs="+attributes"] +---- + + + + + + org.springframework.data + spring-data-envers + {version} + + + +---- +==== + +This also brings `hibernate-envers` into the project as a transient dependency. + +To enable Spring Data Envers and Spring Data JPA, we need to configure two beans and a special `repositoryFactoryBeanClass`: + +==== +[source,java] +---- +@Configuration +@EnableEnversRepositories +@EnableTransactionManagement +public class EnversDemoConfiguration { + + @Bean + public DataSource dataSource() { + + EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder(); + return builder.setType(EmbeddedDatabaseType.HSQL).build(); + } + + @Bean + public LocalContainerEntityManagerFactoryBean entityManagerFactory() { + + HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter(); + vendorAdapter.setGenerateDdl(true); + + LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean(); + factory.setJpaVendorAdapter(vendorAdapter); + factory.setPackagesToScan("example.springdata.jpa.envers"); + factory.setDataSource(dataSource()); + return factory; + } + + @Bean + public PlatformTransactionManager transactionManager(EntityManagerFactory entityManagerFactory) { + + JpaTransactionManager txManager = new JpaTransactionManager(); + txManager.setEntityManagerFactory(entityManagerFactory); + return txManager; + } +} +---- +==== + +To actually use Spring Data Envers, make one or more repositories into a {spring-data-commons-javadoc-base}/org/springframework/data/repository/history/RevisionRepository.html[`RevisionRepository`] by adding it as an extended interface: + +==== +[source,java] +---- +interface PersonRepository + extends CrudRepository, + RevisionRepository // <1> +{} +---- +<1> The first type parameter (`Person`) denotes the entity type, the second (`Long`) denotes the type of the id property, and the last one (`Long`) is the type of the revision number. +For Envers in default configuration, the revision number parameter should be `Integer` or `Long`. +==== + +The entity for that repository must be an entity with Envers auditing enabled (that is, it must have an `@Audited` annotation): + +==== +[source,java] +---- +@Entity +@Audited +class Person { + + @Id @GeneratedValue + Long id; + String name; + @Version Long version; +} +---- +==== + +[[envers.usage]] +== Usage + +You can now use the methods from `RevisionRepository` to query the revisions of the entity, as the following test case shows: + +==== +[source,java] +---- +@ExtendWith(SpringExtension.class) +@Import(EnversDemoConfiguration.class) // <1> +class EnversIntegrationTests { + + final PersonRepository repository; + final TransactionTemplate tx; + + EnversIntegrationTests(@Autowired PersonRepository repository, @Autowired PlatformTransactionManager tm) { + this.repository = repository; + this.tx = new TransactionTemplate(tm); + } + + @Test + void testRepository() { + + Person updated = preparePersonHistory(); + + Revisions revisions = repository.findRevisions(updated.id); + + Iterator> revisionIterator = revisions.iterator(); + + checkNextRevision(revisionIterator, "John", RevisionType.INSERT); + checkNextRevision(revisionIterator, "Jonny", RevisionType.UPDATE); + checkNextRevision(revisionIterator, null, RevisionType.DELETE); + assertThat(revisionIterator.hasNext()).isFalse(); + + } + + /** + * Checks that the next element in the iterator is a Revision entry referencing a Person + * with the given name after whatever change brought that Revision into existence. + *

+ * As a side effect the Iterator gets advanced by one element. + * + * @param revisionIterator the iterator to be tested. + * @param name the expected name of the Person referenced by the Revision. + * @param revisionType the type of the revision denoting if it represents an insert, update or delete. + */ + private void checkNextRevision(Iterator> revisionIterator, String name, + RevisionType revisionType) { + + assertThat(revisionIterator.hasNext()).isTrue(); + Revision revision = revisionIterator.next(); + assertThat(revision.getEntity().name).isEqualTo(name); + assertThat(revision.getMetadata().getRevisionType()).isEqualTo(revisionType); + } + + /** + * Creates a Person with a couple of changes so it has a non-trivial revision history. + * @return the created Person. + */ + private Person preparePersonHistory() { + + Person john = new Person(); + john.setName("John"); + + // create + Person saved = tx.execute(__ -> repository.save(john)); + assertThat(saved).isNotNull(); + + saved.setName("Jonny"); + + // update + Person updated = tx.execute(__ -> repository.save(saved)); + assertThat(updated).isNotNull(); + + // delete + tx.executeWithoutResult(__ -> repository.delete(updated)); + return updated; + } +} +---- +<1> This references the application context configuration presented earlier (in the <> section). +==== + +[[envers.resources]] +== Further Resources + +You can download the https://github.com/spring-projects/spring-data-examples[Spring Data Envers example in the Spring Data Examples repository] and play around with to get a feel for how the library works. + +You should also check out the {spring-data-commons-javadoc-base}/org/springframework/data/repository/history/RevisionRepository.html[Javadoc for `RevisionRepository`] and related classes. + +You can ask questions at https://stackoverflow.com/questions/tagged/spring-data-envers[Stackoverflow by using the `spring-data-envers` tag]. + +The https://github.com/spring-projects/spring-data-envers[source code and issue tracker for Spring Data Envers is hosted at GitHub]. diff --git a/src/main/asciidoc/index.adoc b/src/main/asciidoc/index.adoc index 1a45e2757..14cc7771f 100644 --- a/src/main/asciidoc/index.adoc +++ b/src/main/asciidoc/index.adoc @@ -23,6 +23,8 @@ include::{spring-data-commons-docs}/repositories.adoc[leveloffset=+1] include::jpa.adoc[leveloffset=+2] +include::envers.adoc[leveloffset=+2] + [[appendix]] == Appendix diff --git a/template.mf b/template.mf deleted file mode 100644 index c3e75cc82..000000000 --- a/template.mf +++ /dev/null @@ -1,28 +0,0 @@ -Bundle-ManifestVersion: 2 -Bundle-SymbolicName: org.springframework.data.jpa -Bundle-Name: ${project.name} -Bundle-Vendor: Pivotal Software, Inc -Bundle-Version: ${project.version} -Bundle-RequiredExecutionEnvironment: J2SE-1.5 -Export-Template: - org.springframework.data.jpa.*;version="${project.version}" -Import-Template: - com.querydsl.*;version="${querydsl:[=.=.=,+1.0.0)}";resolution:=optional, - jakarta.persistence.*;version="${jpa:[=.=.=,+1.0.0)}", - jakarta.annotation.*;version="0.0.0", - jakarta.enterprise.*;version="${cdi:[=.=.=,+1.0.0)}";resolution:=optional, - org.aopalliance.*;version="[1.0.0,2.0.0)", - org.apache.openjpa.*;version="${openjpa:[=.=.=,+1.0.0)}";resolution:=optional, - org.aspectj.*;version="${aspectj:[=.=.=,+1.0.0)}";resolution:=optional, - org.eclipse.persistence.*;version="${eclipselink:[=.=.=,+1.0.0)}";resolution:=optional, - org.hibernate.*;version="[3.6.10,4.4.0)";resolution:=optional, - org.slf4j.*;version="${slf4j:[=.=.=,+1.0.0)}", - org.springframework.*;version="${spring:[=.=.=.=,+1.1.0)}", - org.springframework.beans.factory.aspectj;version="${spring:[=.=.=.=,+1.1.0)}";resolution:=optional, - org.springframework.data.*;version="${springdata.commons:[=.=.=.=,+1.0.0)}", - org.threeten.bp.*;version="${threetenbp:[=.=.=,+1.0.0)}";resolution:=optional, - org.w3c.*;version="0.0.0" -Import-Package: org.aspectj.lang;version="${aspectj:[=.=.=,+1.0.0)}";resolution:=optional, - org.aspectj.runtime.reflect;version="${aspectj:[=.=.=,+1.0.0)}";resolution:=optional, - org.springframework.beans.factory.aspectj;version="${spring:[=.=.=.=,+1.1.0)}";resolution:=optional -