@@ -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 extends T> 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 extends Country> 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 extends Country> 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
-