DATACOUCH-279 - Re-add AbstractCouchbaseDataConfiguration
Motivation ---------- AbstractCouchbaseDataConfiguration was removed and AbstractCouchbaseConfiguration was made the only configuration support which implemented CouchbaseConfigurer. This broke integration with Spring boot as they used CouchbaseConfigurer to auto configure client initialization properties. Changes ------- Bring back support for AbstractCouchbaseDataConfiguration which allows the use of CouchbaseConfigurer. Also added a similar configuration support for reactive data repositories. Common beans between reactive and blocking are implemented in CouchbaseConfigurationSupport class. The existing tests in AbstractCouchbaseDataConfigurationTest does test this scenario. However the previous commit had also changed the test because of the unawareness of spring boot integration. Results ------- It is now possible to configure SDC with CouchbaseConfigurer instead of only having to extend from AbstractCouchbaseConfiguration.
This commit is contained in:
committed by
Simon Baslé
parent
c26053868c
commit
1c33ccc4c8
@@ -16,8 +16,6 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.data.annotation.Id;
|
||||
import org.springframework.data.couchbase.core.CouchbaseTemplate;
|
||||
import org.springframework.data.couchbase.core.WriteResultChecking;
|
||||
import org.springframework.data.couchbase.repository.CouchbaseRepository;
|
||||
import org.springframework.data.couchbase.repository.config.EnableCouchbaseRepositories;
|
||||
import org.springframework.stereotype.Repository;
|
||||
@@ -25,15 +23,17 @@ import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
|
||||
/**
|
||||
* This test case demonstrates that the {@link AbstractCouchbaseConfiguration} can take its SDK beans
|
||||
* This test case demonstrates that the {@link AbstractCouchbaseDataConfiguration} can take its SDK beans
|
||||
* from a sibling {@link Configuration}.
|
||||
*
|
||||
* Tests DATACOUCH-279
|
||||
*
|
||||
* @author Simon Baslé
|
||||
*/
|
||||
@SuppressWarnings("SpringJavaAutowiringInspection")
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration
|
||||
public class AbstractCouchbaseConfigurationTest {
|
||||
public class AbstractCouchbaseDataConfigurationTest {
|
||||
|
||||
@Autowired
|
||||
ItemRepository repository;
|
||||
@@ -74,8 +74,8 @@ public class AbstractCouchbaseConfigurationTest {
|
||||
}
|
||||
|
||||
@Configuration
|
||||
@EnableCouchbaseRepositories(basePackageClasses = AbstractCouchbaseConfigurationTest.class, considerNestedRepositories = true)
|
||||
abstract static class Config extends AbstractCouchbaseConfiguration {
|
||||
@EnableCouchbaseRepositories(basePackageClasses = AbstractCouchbaseDataConfigurationTest.class, considerNestedRepositories = true)
|
||||
static class Config extends AbstractCouchbaseDataConfiguration {
|
||||
|
||||
@Autowired
|
||||
Cluster c;
|
||||
@@ -89,25 +89,6 @@ public class AbstractCouchbaseConfigurationTest {
|
||||
@Autowired
|
||||
CouchbaseEnvironment e;
|
||||
|
||||
//TODO maybe create the bucket if doesn't exist
|
||||
|
||||
@Override
|
||||
protected CouchbaseEnvironment getEnvironment() {
|
||||
return DefaultCouchbaseEnvironment.builder()
|
||||
.connectTimeout(10000)
|
||||
.kvTimeout(10000)
|
||||
.queryTimeout(10000)
|
||||
.viewTimeout(10000)
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public CouchbaseTemplate couchbaseTemplate() throws Exception {
|
||||
CouchbaseTemplate template = super.couchbaseTemplate();
|
||||
template.setWriteResultChecking(WriteResultChecking.LOG);
|
||||
return template;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected CouchbaseConfigurer couchbaseConfigurer() {
|
||||
return new TestCouchbaseConfigurer(e, c, ci, b);
|
||||
@@ -180,4 +161,4 @@ public class AbstractCouchbaseConfigurationTest {
|
||||
|
||||
@Repository
|
||||
interface ItemRepository extends CouchbaseRepository<Item, String> {}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user