From dbfbd339049cb2325ca99ca6c811895f2e4b65fd Mon Sep 17 00:00:00 2001 From: mikereiche Date: Fri, 5 Mar 2021 19:56:08 -0500 Subject: [PATCH] Revert changes to public apis that were altered instead of just deprecated. Closes #1092. --- .../query/CouchbaseRepositoryQuery.java | 5 ++-- .../query/N1qlRepositoryQueryExecutor.java | 4 ++-- .../ReactiveCouchbaseRepositoryQuery.java | 8 +++---- .../ReactiveN1qlRepositoryQueryExecutor.java | 1 - ...chbaseRepositoryQueryIntegrationTests.java | 23 +++++++++++++++++++ 5 files changed, 30 insertions(+), 11 deletions(-) diff --git a/src/main/java/org/springframework/data/couchbase/repository/query/CouchbaseRepositoryQuery.java b/src/main/java/org/springframework/data/couchbase/repository/query/CouchbaseRepositoryQuery.java index c7fd87bd4..19bb1435d 100644 --- a/src/main/java/org/springframework/data/couchbase/repository/query/CouchbaseRepositoryQuery.java +++ b/src/main/java/org/springframework/data/couchbase/repository/query/CouchbaseRepositoryQuery.java @@ -35,12 +35,11 @@ public class CouchbaseRepositoryQuery implements RepositoryQuery { private final QueryMethodEvaluationContextProvider evaluationContextProvider; public CouchbaseRepositoryQuery(final CouchbaseOperations operations, final CouchbaseQueryMethod queryMethod, - final NamedQueries namedQueries, final QueryMethodEvaluationContextProvider evaluationContextProvider) { + final NamedQueries namedQueries) { this.operations = operations; this.queryMethod = queryMethod; this.namedQueries = namedQueries; - this.evaluationContextProvider = evaluationContextProvider; - throw new RuntimeException("Deprecated"); + this.evaluationContextProvider = QueryMethodEvaluationContextProvider.DEFAULT; } @Override diff --git a/src/main/java/org/springframework/data/couchbase/repository/query/N1qlRepositoryQueryExecutor.java b/src/main/java/org/springframework/data/couchbase/repository/query/N1qlRepositoryQueryExecutor.java index 4cbf6c9de..cb66afa4d 100644 --- a/src/main/java/org/springframework/data/couchbase/repository/query/N1qlRepositoryQueryExecutor.java +++ b/src/main/java/org/springframework/data/couchbase/repository/query/N1qlRepositoryQueryExecutor.java @@ -47,7 +47,6 @@ public N1qlRepositoryQueryExecutor(final CouchbaseOperations operations, final C this.queryMethod = queryMethod; this.namedQueries = namedQueries; this.evaluationContextProvider = evaluationContextProvider; - throw new RuntimeException("Deprecated"); } private static final SpelExpressionParser SPEL_PARSER = new SpelExpressionParser(); @@ -70,7 +69,8 @@ public Object execute(final Object[] parameters) { SPEL_PARSER, evaluationContextProvider, namedQueries).createQuery(); } else { final PartTree tree = new PartTree(queryMethod.getName(), domainClass); - query = new N1qlQueryCreator(tree, accessor, queryMethod, operations.getConverter(), operations.getBucketName()).createQuery(); + query = new N1qlQueryCreator(tree, accessor, queryMethod, operations.getConverter(), operations.getBucketName()) + .createQuery(); } ExecutableFindByQueryOperation.ExecutableFindByQuery operation = (ExecutableFindByQueryOperation.ExecutableFindByQuery) operations diff --git a/src/main/java/org/springframework/data/couchbase/repository/query/ReactiveCouchbaseRepositoryQuery.java b/src/main/java/org/springframework/data/couchbase/repository/query/ReactiveCouchbaseRepositoryQuery.java index 5e87ab56e..0f269de11 100644 --- a/src/main/java/org/springframework/data/couchbase/repository/query/ReactiveCouchbaseRepositoryQuery.java +++ b/src/main/java/org/springframework/data/couchbase/repository/query/ReactiveCouchbaseRepositoryQuery.java @@ -36,14 +36,12 @@ public class ReactiveCouchbaseRepositoryQuery extends AbstractReactiveCouchbaseQ private final QueryMethodEvaluationContextProvider evaluationContextProvider; public ReactiveCouchbaseRepositoryQuery(final ReactiveCouchbaseOperations operations, - final ReactiveCouchbaseQueryMethod queryMethod, final NamedQueries namedQueries, - final QueryMethodEvaluationContextProvider evaluationContextProvider) { - super(queryMethod, operations, new SpelExpressionParser(), evaluationContextProvider); + final ReactiveCouchbaseQueryMethod queryMethod, final NamedQueries namedQueries) { + super(queryMethod, operations, new SpelExpressionParser(), QueryMethodEvaluationContextProvider.DEFAULT); this.operations = operations; this.queryMethod = queryMethod; this.namedQueries = namedQueries; - this.evaluationContextProvider = evaluationContextProvider; - throw new RuntimeException("Deprecated"); + this.evaluationContextProvider = QueryMethodEvaluationContextProvider.DEFAULT; } @Override diff --git a/src/main/java/org/springframework/data/couchbase/repository/query/ReactiveN1qlRepositoryQueryExecutor.java b/src/main/java/org/springframework/data/couchbase/repository/query/ReactiveN1qlRepositoryQueryExecutor.java index 084f1684d..f53b356f1 100644 --- a/src/main/java/org/springframework/data/couchbase/repository/query/ReactiveN1qlRepositoryQueryExecutor.java +++ b/src/main/java/org/springframework/data/couchbase/repository/query/ReactiveN1qlRepositoryQueryExecutor.java @@ -40,7 +40,6 @@ public ReactiveN1qlRepositoryQueryExecutor(final ReactiveCouchbaseOperations ope this.queryMethod = queryMethod; this.namedQueries = namedQueries; this.evaluationContextProvider = evaluationContextProvider; - throw new RuntimeException("Deprecated"); } /** diff --git a/src/test/java/org/springframework/data/couchbase/repository/CouchbaseRepositoryQueryIntegrationTests.java b/src/test/java/org/springframework/data/couchbase/repository/CouchbaseRepositoryQueryIntegrationTests.java index 484cd0e26..a6378475f 100644 --- a/src/test/java/org/springframework/data/couchbase/repository/CouchbaseRepositoryQueryIntegrationTests.java +++ b/src/test/java/org/springframework/data/couchbase/repository/CouchbaseRepositoryQueryIntegrationTests.java @@ -23,6 +23,7 @@ import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertTrue; +import java.lang.reflect.Method; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -40,6 +41,7 @@ import org.springframework.dao.DataIntegrityViolationException; import org.springframework.data.couchbase.CouchbaseClientFactory; import org.springframework.data.couchbase.config.AbstractCouchbaseConfiguration; +import org.springframework.data.couchbase.core.CouchbaseTemplate; import org.springframework.data.couchbase.domain.Address; import org.springframework.data.couchbase.domain.Airport; import org.springframework.data.couchbase.domain.AirportRepository; @@ -48,6 +50,8 @@ import org.springframework.data.couchbase.domain.User; import org.springframework.data.couchbase.domain.UserRepository; import org.springframework.data.couchbase.repository.config.EnableCouchbaseRepositories; +import org.springframework.data.couchbase.repository.query.CouchbaseQueryMethod; +import org.springframework.data.couchbase.repository.query.CouchbaseRepositoryQuery; import org.springframework.data.couchbase.util.Capabilities; import org.springframework.data.couchbase.util.ClusterAwareIntegrationTests; import org.springframework.data.couchbase.util.ClusterType; @@ -55,6 +59,8 @@ import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; +import org.springframework.data.projection.SpelAwareProxyProjectionFactory; +import org.springframework.data.repository.core.support.DefaultRepositoryMetadata; import org.springframework.test.context.junit.jupiter.SpringJUnitConfig; import com.couchbase.client.core.error.IndexExistsException; @@ -76,6 +82,8 @@ public class CouchbaseRepositoryQueryIntegrationTests extends ClusterAwareIntegr @Autowired UserRepository userRepository; + @Autowired CouchbaseTemplate couchbaseTemplate; + @BeforeEach public void beforeEach() { try { @@ -305,6 +313,21 @@ void deleteAllById() { } } + @Test + void couchbaseRepositoryQuery() throws Exception { + User user = new User("1", "Dave", "Wilson"); + userRepository.save(user); + String input = "findByFirstname"; + Method method = UserRepository.class.getMethod(input, String.class); + CouchbaseQueryMethod queryMethod = new CouchbaseQueryMethod(method, + new DefaultRepositoryMetadata(UserRepository.class), new SpelAwareProxyProjectionFactory(), + couchbaseTemplate.getConverter().getMappingContext()); + + CouchbaseRepositoryQuery query = new CouchbaseRepositoryQuery(couchbaseTemplate, queryMethod, null); + List users = (List)query.execute(new String[] { "Dave" }); + assertEquals(user, users.get(0)); + } + private void sleep(int millis) { try { Thread.sleep(millis); // so they are executed out-of-order