Skip to content

Commit 628e3e0

Browse files
committed
PpagingAndSortingRepository split, builds cleanly.
1 parent bb4804b commit 628e3e0

10 files changed

+21
-210
lines changed

src/main/java/org/springframework/data/repository/PagingAndSortingRepository.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
* @see Page
3030
*/
3131
@NoRepositoryBean
32-
public interface PagingAndSortingRepository<T, ID> extends CrudRepository<T, ID> {
32+
public interface PagingAndSortingRepository<T, ID> extends Repository<T, ID> {
3333

3434
/**
3535
* Returns all entities sorted by the given options.

src/main/java/org/springframework/data/repository/support/DefaultRepositoryInvokerFactory.java

+1-4
Original file line numberDiff line numberDiff line change
@@ -93,10 +93,7 @@ private RepositoryInvoker prepareInvokers(Class<?> domainType) {
9393
@SuppressWarnings("unchecked")
9494
protected RepositoryInvoker createInvoker(RepositoryInformation information, Object repository) {
9595

96-
if (repository instanceof PagingAndSortingRepository) {
97-
return new PagingAndSortingRepositoryInvoker((PagingAndSortingRepository<Object, Object>) repository, information,
98-
conversionService);
99-
} else if (repository instanceof CrudRepository) {
96+
if (repository instanceof CrudRepository) {
10097
return new CrudRepositoryInvoker((CrudRepository<Object, Object>) repository, information, conversionService);
10198
} else {
10299
return new ReflectionRepositoryInvoker(repository, information, conversionService);

src/main/java/org/springframework/data/repository/support/PagingAndSortingRepositoryInvoker.java

-71
This file was deleted.

src/test/java/org/springframework/data/repository/core/support/AbstractRepositoryMetadataUnitTests.java

+6-1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import org.springframework.data.domain.Page;
2828
import org.springframework.data.domain.Pageable;
2929
import org.springframework.data.querydsl.User;
30+
import org.springframework.data.repository.CrudRepository;
3031
import org.springframework.data.repository.PagingAndSortingRepository;
3132
import org.springframework.data.repository.Repository;
3233
import org.springframework.data.repository.core.RepositoryMetadata;
@@ -95,7 +96,7 @@ void handlesGenericTypeInReturnedCollectionCorrectly() throws SecurityException,
9596
@Test // DATACMNS-471
9697
void detectsArrayReturnTypeCorrectly() throws Exception {
9798

98-
RepositoryMetadata metadata = new DefaultRepositoryMetadata(PagedRepository.class);
99+
RepositoryMetadata metadata = new DefaultRepositoryMetadata(CompletePageableAndSortingRepository.class);
99100
var method = PagedRepository.class.getMethod("returnsArray");
100101

101102
assertThat(metadata.getReturnedDomainClass(method)).isEqualTo(User.class);
@@ -169,4 +170,8 @@ abstract class Container implements Iterable<Element> {}
169170
interface ContainerRepository extends Repository<Container, Long> {
170171
Container someMethod();
171172
}
173+
174+
interface CompletePageableAndSortingRepository extends PagingAndSortingRepository<Container, Long> {
175+
}
176+
172177
}

src/test/java/org/springframework/data/repository/core/support/DefaultCrudMethodsUnitTests.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ interface Domain {}
197197

198198
interface DomainCrudRepository extends CrudRepository<Domain, Long> {}
199199

200-
interface DomainPagingAndSortingRepository extends PagingAndSortingRepository<Domain, Long> {}
200+
interface DomainPagingAndSortingRepository extends PagingAndSortingRepository<Domain, Long>, CrudRepository<Domain, Long> {}
201201

202202
interface RepositoryWithCustomSave extends Repository<Domain, Serializable> {
203203

src/test/java/org/springframework/data/repository/core/support/DefaultRepositoryInformationUnitTests.java

+5-17
Original file line numberDiff line numberDiff line change
@@ -111,27 +111,11 @@ void considersIntermediateMethodsAsFinderMethods() {
111111
assertThat(information.hasCustomMethod()).isFalse();
112112
}
113113

114-
@Test
115-
void discoversIntermediateMethodsAsBackingMethods() throws NoSuchMethodException, SecurityException {
116-
117-
var metadata = new DefaultRepositoryMetadata(CustomRepository.class);
118-
var information = new DefaultRepositoryInformation(metadata,
119-
PagingAndSortingRepository.class, RepositoryComposition.empty());
120-
121-
var method = CustomRepository.class.getMethod("findAll", Pageable.class);
122-
assertThat(information.isBaseClassMethod(method)).isTrue();
123-
124-
method = getMethodFrom(CustomRepository.class, "existsById");
125-
126-
assertThat(information.isBaseClassMethod(method)).isTrue();
127-
assertThat(information.getQueryMethods()).isEmpty();
128-
}
129-
130114
@Test // DATACMNS-151
131115
void doesNotConsiderManuallyDefinedSaveMethodAQueryMethod() {
132116

133117
RepositoryMetadata metadata = new DefaultRepositoryMetadata(CustomRepository.class);
134-
RepositoryInformation information = new DefaultRepositoryInformation(metadata, PagingAndSortingRepository.class,
118+
RepositoryInformation information = new DefaultRepositoryInformation(metadata, CompletePageableAndSortingRepository.class,
135119
RepositoryComposition.empty());
136120

137121
assertThat(information.getQueryMethods()).isEmpty();
@@ -427,4 +411,8 @@ public Sample save(Sample entity) {
427411
return entity;
428412
}
429413
}
414+
415+
interface CompletePageableAndSortingRepository<T, ID> extends CrudRepository<T, ID>, PagingAndSortingRepository<T, ID> {
416+
}
417+
430418
}

src/test/java/org/springframework/data/repository/core/support/RepositoryFactorySupportUnitTests.java

+5-5
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151
import org.springframework.data.domain.Sort;
5252
import org.springframework.data.projection.ProjectionFactory;
5353
import org.springframework.data.querydsl.QuerydslPredicateExecutor;
54+
import org.springframework.data.repository.CrudRepository;
5455
import org.springframework.data.repository.PagingAndSortingRepository;
5556
import org.springframework.data.repository.Repository;
5657
import org.springframework.data.repository.RepositoryDefinition;
@@ -90,7 +91,7 @@ class RepositoryFactorySupportUnitTests {
9091

9192
DummyRepositoryFactory factory;
9293

93-
@Mock PagingAndSortingRepository<Object, Object> backingRepo;
94+
@Mock CrudRepository<Object, Object> backingRepo;
9495
@Mock ObjectRepositoryCustom customImplementation;
9596

9697
@Mock MyQueryCreationListener listener;
@@ -167,12 +168,11 @@ void invokesCustomMethodCompositionMethodIfItRedeclaresACRUDOne() {
167168
void createsRepositoryInstanceWithCustomIntermediateRepository() {
168169

169170
var repository = factory.getRepository(CustomRepository.class);
170-
Pageable pageable = PageRequest.of(0, 10);
171171

172-
when(backingRepo.findAll(pageable)).thenReturn(new PageImpl<>(Collections.emptyList()));
173-
repository.findAll(pageable);
172+
when(backingRepo.findAll()).thenReturn(new PageImpl<>(Collections.emptyList()));
173+
repository.findAll();
174174

175-
verify(backingRepo, times(1)).findAll(pageable);
175+
verify(backingRepo, times(1)).findAll();
176176
}
177177

178178
@Test

src/test/java/org/springframework/data/repository/support/CrudRepositoryInvokerUnitTests.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ interface OrderRepository extends CrudRepository<Order, Long> {
153153

154154
static class Person {}
155155

156-
interface PersonRepository extends PagingAndSortingRepository<Person, Long> {
156+
interface PersonRepository extends PagingAndSortingRepository<Person, Long>, CrudRepository<Person, Long> {
157157

158158
Page<Person> findByFirstName(@Param("firstName") String firstName, Pageable pageable);
159159

src/test/java/org/springframework/data/repository/support/DefaultRepositoryInvokerFactoryIntegrationTests.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,6 @@ void createsCrudRepositoryInvokerForRepositoryExtendingCrudRepository() {
9393
var invoker = factory.getInvokerFor(User.class);
9494

9595
assertThat(invoker)//
96-
.isInstanceOf(CrudRepositoryInvoker.class)//
97-
.isNotInstanceOf(PagingAndSortingRepositoryInvoker.class);
96+
.isInstanceOf(CrudRepositoryInvoker.class);
9897
}
9998
}

src/test/java/org/springframework/data/repository/support/PaginginAndSortingRepositoryInvokerUnitTests.java

-107
This file was deleted.

0 commit comments

Comments
 (0)