From 62ab852a3fc1655e09071ab1d69e1dcdc848c37d Mon Sep 17 00:00:00 2001 From: Subhashni Balakrishnan Date: Tue, 3 Apr 2018 14:07:13 -0700 Subject: [PATCH] Revert "DATACOUCH-322 - Add RBAC username and password support" This reverts commit 6ec9b7b36f9c185ec985c696556088cfa4bdf991. --- README.md | 4 - pom.xml | 7 - .../couchbase/ContainerResourceRunner.java | 20 --- .../CouchbaseHttpPortListeningCheck.java | 46 ------- .../data/couchbase/CouchbaseWaitStrategy.java | 123 ------------------ .../IntegrationTestApplicationConfig.java | 16 ++- ...rationTestNoShutdownApplicationConfig.java | 61 +++++---- ...ctiveIntegrationTestApplicationConfig.java | 17 ++- .../data/couchbase/TestContainerResource.java | 67 ---------- ...bstractCouchbaseDataConfigurationTest.java | 10 +- ...uchbaseEnvironmentNoShutdownProxyTest.java | 4 +- ...uchbaseTemplateParserIntegrationTests.java | 5 - .../CouchbaseTemplateIdGenerationTests.java | 4 +- .../CouchbaseTemplateKeySettingsTests.java | 8 +- .../core/CouchbaseTemplateTests.java | 10 +- .../core/RxJavaCouchbaseTemplateTests.java | 4 +- .../data/couchbase/core/TypeKeyTests.java | 6 +- .../core/mapping/CustomConverterTests.java | 6 +- .../couchbase/monitor/ClientInfoTests.java | 5 +- .../couchbase/monitor/ClusterInfoTests.java | 8 +- ...a => CouchbaseIdGenerationRepository.java} | 9 +- .../CouchbaseRepositoryViewTests.java | 4 +- .../repository/DimensionalQueryTests.java | 5 +- .../couchbase/repository/ItemRepository.java | 2 - .../N1qlCouchbaseRepositoryTests.java | 5 +- .../repository/N1qlCrudRepositoryTests.java | 5 +- .../repository/N1qlPlaceholderTests.java | 4 +- .../repository/PageAndSliceTests.java | 4 +- .../couchbase/repository/PartyRepository.java | 2 - .../QueryDerivationConversionTests.java | 4 +- .../ReactiveN1qlCouchbaseRepositoryTests.java | 4 +- .../SimpleCouchbaseRepositoryTests.java | 4 +- ...impleReactiveCouchbaseRepositoryTests.java | 4 +- .../couchbase/repository/UserRepository.java | 2 +- .../repository/auditing/AuditingTests.java | 6 +- .../repository/cdi/CdiRepositoryTests.java | 7 +- .../cdi/CouchbaseClientProducer.java | 2 +- .../cdi/CouchbaseClusterInfoProducer.java | 2 +- .../extending/base/RepositoryBaseTest.java | 9 +- .../method/RepositoryCustomMethodTest.java | 9 +- .../FeatureDetectionRepositoryTests.java | 5 +- ...FeatureDetectionTestApplicationConfig.java | 15 ++- .../index/IndexedRepositoryTests.java | 5 +- .../repository/spel/SpelRepositoryTests.java | 11 +- .../wiring/RepositoryTemplateWiringTests.java | 9 +- .../XmlRepositoryConfigurationTests.java | 6 - .../configurations/couchbase-consistency.xml | 4 +- .../couchbase-multi-bucket-bean.xml | 6 +- .../couchbase-repository-bean.xml | 4 +- .../couchbase-template-bean.xml | 4 +- ...template-with-translation-service-bean.xml | 4 +- .../configurations/couchbase-typekey.xml | 4 +- .../resources/namespace/couchbase.properties | 3 + src/integration/resources/server.properties | 6 - .../AbstractCouchbaseConfiguration.java | 18 +-- ...bstractReactiveCouchbaseConfiguration.java | 22 +--- .../config/CouchbaseBucketFactoryBean.java | 21 +-- .../config/CouchbaseBucketParser.java | 20 +-- .../couchbase/config/spring-couchbase-2.0.xsd | 1 - .../config/CouchbaseBucketParserTest.java | 11 +- .../configurations/couchbaseBucket-bean.xml | 2 +- 61 files changed, 185 insertions(+), 520 deletions(-) delete mode 100644 src/integration/java/org/springframework/data/couchbase/ContainerResourceRunner.java delete mode 100644 src/integration/java/org/springframework/data/couchbase/CouchbaseHttpPortListeningCheck.java delete mode 100644 src/integration/java/org/springframework/data/couchbase/CouchbaseWaitStrategy.java delete mode 100644 src/integration/java/org/springframework/data/couchbase/TestContainerResource.java rename src/integration/java/org/springframework/data/couchbase/repository/{CouchbaseIdGenerationTests.java => CouchbaseIdGenerationRepository.java} (95%) create mode 100644 src/integration/resources/namespace/couchbase.properties delete mode 100644 src/integration/resources/server.properties diff --git a/README.md b/README.md index b09136fe..3e1acc25 100644 --- a/README.md +++ b/README.md @@ -17,10 +17,6 @@ Server as a document database and cache while retaining store-specific features of Spring Data Couchbase are a POJO centric model for interacting with a Couchbase Server Bucket and easily writing a repository style data access layer. -Integration tests require a couchbase server with a bucket name "protected" with "password" as the password set. -If the server allows users, then an user with username "protected" with "password" as the password should also be set. -The recommended way to run tests is to install docker and use container in server.properties. - ## Getting Help For a comprehensive treatment of all the Spring Data Couchbase features, please refer to: diff --git a/pom.xml b/pom.xml index 6b78bafd..0dff8bd1 100644 --- a/pom.xml +++ b/pom.xml @@ -111,13 +111,6 @@ true - - org.testcontainers - testcontainers - 1.6.0 - test - - javax.validation diff --git a/src/integration/java/org/springframework/data/couchbase/ContainerResourceRunner.java b/src/integration/java/org/springframework/data/couchbase/ContainerResourceRunner.java deleted file mode 100644 index 4e58f23d..00000000 --- a/src/integration/java/org/springframework/data/couchbase/ContainerResourceRunner.java +++ /dev/null @@ -1,20 +0,0 @@ -package org.springframework.data.couchbase; - -import org.junit.ClassRule; -import org.junit.runners.model.InitializationError; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; - -/** - * This runner initializes container for the container based testing. - * - * @author Subhashni Balakrishnan - */ -public class ContainerResourceRunner extends SpringJUnit4ClassRunner { - - @ClassRule - public static final TestContainerResource resource = TestContainerResource.getResource(); - - public ContainerResourceRunner(Class clazz) throws InitializationError { - super(clazz); - } -} diff --git a/src/integration/java/org/springframework/data/couchbase/CouchbaseHttpPortListeningCheck.java b/src/integration/java/org/springframework/data/couchbase/CouchbaseHttpPortListeningCheck.java deleted file mode 100644 index 3773f96b..00000000 --- a/src/integration/java/org/springframework/data/couchbase/CouchbaseHttpPortListeningCheck.java +++ /dev/null @@ -1,46 +0,0 @@ -package org.springframework.data.couchbase; - -import java.util.concurrent.Callable; - -import org.apache.http.HttpResponse; -import org.apache.http.client.methods.HttpGet; -import org.apache.http.client.utils.URIBuilder; -import org.apache.http.client.HttpClient; -import org.apache.http.impl.client.HttpClientBuilder; - -/** - * Helper to check if the Couchbase http endpoints are up. - */ -public class CouchbaseHttpPortListeningCheck implements Callable { - - private final int port; - private final String path; - - public CouchbaseHttpPortListeningCheck(int port, String path) { - this.port = port; - this.path = path; - } - - private Boolean executeRequest(URIBuilder builder) throws Exception { - try { - HttpGet request = new HttpGet(builder.build()); - HttpClient client = HttpClientBuilder.create().build(); - HttpResponse response = client.execute(request); - int status = response.getStatusLine().getStatusCode(); - if (status < 200 || status >= 300) { - return false; - } - return true; - } catch (Exception ex) { - Thread.sleep(1000); - throw ex; - } - } - - @Override - public Boolean call() throws Exception { - URIBuilder builder = new URIBuilder(); - builder.setScheme("http").setHost("localhost").setPort(this.port).setPath(this.path); - return executeRequest(builder); - } -} \ No newline at end of file diff --git a/src/integration/java/org/springframework/data/couchbase/CouchbaseWaitStrategy.java b/src/integration/java/org/springframework/data/couchbase/CouchbaseWaitStrategy.java deleted file mode 100644 index 12f0c37d..00000000 --- a/src/integration/java/org/springframework/data/couchbase/CouchbaseWaitStrategy.java +++ /dev/null @@ -1,123 +0,0 @@ -package org.springframework.data.couchbase; - -import static java.time.temporal.ChronoUnit.SECONDS; - -import java.time.Duration; -import java.util.concurrent.Callable; -import java.util.concurrent.TimeUnit; - -import com.couchbase.client.java.util.features.Version; -import org.rnorth.ducttape.ratelimits.RateLimiterBuilder; -import org.rnorth.ducttape.unreliables.Unreliables; -import org.testcontainers.containers.Container; -import org.testcontainers.containers.GenericContainer; -import org.testcontainers.containers.wait.WaitStrategy; - -/** - * WaitStrategy for Couchbase containers which makes the Server node is - * initialized, RBAC user and default bucket is created. - */ -public class CouchbaseWaitStrategy implements WaitStrategy { - - private Duration startupTimeout = Duration.of(60, SECONDS); - private final Boolean rbacEnabled; - - public CouchbaseWaitStrategy(String serverVersion) { - Version version = Version.parseVersion(serverVersion); - rbacEnabled = version.major() >= 5; - } - - private void checkResult(Container.ExecResult result, String command) throws Exception { - if (!result.getStdout().contains("SUCCESS")) { - throw new Exception(command + " command failed"); - } - } - - private void checkService(int port, String path) { - Callable externalCheck = new CouchbaseHttpPortListeningCheck(port, path); - Unreliables.retryUntilSuccess((int) startupTimeout.getSeconds(), TimeUnit.SECONDS, () -> - externalCheck.call()); - } - - @Override - public void waitUntilReady(GenericContainer container) { - try { - checkService(8091, "/pools"); - Container.ExecResult result; - - if (rbacEnabled) { - result = container.execInContainer("/opt/couchbase/bin/couchbase-cli", - "cluster-init", - "--cluster=127.0.0.1:8091", - "--services=data,index,query", - "--cluster-name=localcontainer", - "--cluster-username=Administrator", - "--cluster-password=password", - "--cluster-ramsize=512", - "--cluster-index-ramsize=512", - "--index-storage-setting=default"); - checkResult(result, "Cluster init"); - result = container.execInContainer("/opt/couchbase/bin/couchbase-cli", - "user-manage", - "--cluster=127.0.0.1:8091", - "--username=Administrator", - "--password=password", - "--set", - "--rbac-username=protected", - "--rbac-password=password", - "--rbac-name=default", - "--roles=admin", - "--auth-domain=local"); - checkResult(result, "User manage"); - result = container.execInContainer("/opt/couchbase/bin/couchbase-cli", - "bucket-create", - "--cluster=127.0.0.1:8091", - "--username=Administrator", - "--password=password", - "--bucket=protected", - "--bucket-type=couchbase", - "--bucket-ramsize=200", - "--enable-flush=1", - "--wait"); - } else { - result = container.execInContainer("/opt/couchbase/bin/couchbase-cli", - "cluster-init", - "--cluster=127.0.0.1:8091", - "--services=data,index,query", - "-u", - "Administrator", - "-p", - "password", - "--cluster-ramsize=512", - "--cluster-index-ramsize=512", - "--index-storage-setting=default"); - checkResult(result, "Cluster init"); - result = container.execInContainer("/opt/couchbase/bin/couchbase-cli", - "bucket-create", - "--cluster=127.0.0.1:8091", - "-u", - "Administrator", - "-p", - "password", - "--bucket=protected", - "--bucket-password=password", - "--bucket-type=couchbase", - "--bucket-ramsize=200", - "--enable-flush=1", - "--wait"); - } - - checkResult(result, "Bucket create"); - checkService(8093, "/query/ping"); - } catch (Exception ex) { - ex.printStackTrace(); - System.exit(1); - } - } - - @Override - public WaitStrategy withStartupTimeout(Duration startupTimeout) { - this.startupTimeout = startupTimeout; - return this; - } -} \ No newline at end of file diff --git a/src/integration/java/org/springframework/data/couchbase/IntegrationTestApplicationConfig.java b/src/integration/java/org/springframework/data/couchbase/IntegrationTestApplicationConfig.java index 6e9538b9..821e095a 100644 --- a/src/integration/java/org/springframework/data/couchbase/IntegrationTestApplicationConfig.java +++ b/src/integration/java/org/springframework/data/couchbase/IntegrationTestApplicationConfig.java @@ -6,8 +6,10 @@ import java.util.List; import com.couchbase.client.java.env.CouchbaseEnvironment; import com.couchbase.client.java.env.DefaultCouchbaseEnvironment; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.core.env.Environment; import org.springframework.data.couchbase.config.AbstractCouchbaseConfiguration; import org.springframework.data.couchbase.config.CouchbaseConfigurer; import org.springframework.data.couchbase.core.CouchbaseTemplate; @@ -18,31 +20,35 @@ import org.springframework.data.couchbase.repository.support.IndexManager; @Configuration public class IntegrationTestApplicationConfig extends AbstractCouchbaseConfiguration { + @Autowired + private Environment springEnv; + @Bean public String couchbaseAdminUser() { - return "Administrator"; + return springEnv.getProperty("couchbase.adminUser", "Administrator"); } @Bean public String couchbaseAdminPassword() { - return "password"; + return springEnv.getProperty("couchbase.adminUser", "password"); } @Override protected List getBootstrapHosts() { - return Collections.singletonList("127.0.0.1"); + return Collections.singletonList(springEnv.getProperty("couchbase.host", "127.0.0.1")); } @Override protected String getBucketName() { - return "protected"; + return springEnv.getProperty("couchbase.bucket", "default"); } @Override protected String getBucketPassword() { - return "password"; + return springEnv.getProperty("couchbase.password", ""); } + //TODO maybe create the bucket if doesn't exist @Override diff --git a/src/integration/java/org/springframework/data/couchbase/IntegrationTestNoShutdownApplicationConfig.java b/src/integration/java/org/springframework/data/couchbase/IntegrationTestNoShutdownApplicationConfig.java index 6bb16bd3..172ac369 100644 --- a/src/integration/java/org/springframework/data/couchbase/IntegrationTestNoShutdownApplicationConfig.java +++ b/src/integration/java/org/springframework/data/couchbase/IntegrationTestNoShutdownApplicationConfig.java @@ -2,7 +2,9 @@ package org.springframework.data.couchbase; import java.util.Collections; import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; +import org.springframework.core.env.Environment; import org.springframework.data.couchbase.config.AbstractCouchbaseConfiguration; import org.springframework.data.couchbase.config.CouchbaseConfigurer; @@ -13,38 +15,41 @@ import org.springframework.data.couchbase.config.CouchbaseConfigurer; */ public class IntegrationTestNoShutdownApplicationConfig extends AbstractCouchbaseConfiguration { - @Bean - public String couchbaseAdminUser() { - return "Administrator"; - } + @Autowired + private Environment springEnv; - @Bean - public String couchbaseAdminPassword() { - return "password"; - } + @Bean + public String couchbaseAdminUser() { + return springEnv.getProperty("couchbase.adminUser", "Administrator"); + } - @Override - protected List getBootstrapHosts() { - return Collections.singletonList("127.0.0.1"); - } + @Bean + public String couchbaseAdminPassword() { + return springEnv.getProperty("couchbase.adminUser", "password"); + } - @Override - protected String getBucketName() { - return "protected"; - } + @Override + protected List getBootstrapHosts() { + return Collections.singletonList(springEnv.getProperty("couchbase.host", "127.0.0.1")); + } - @Override - protected String getBucketPassword() { - return "password"; - } + @Override + protected String getBucketName() { + return springEnv.getProperty("couchbase.bucket", "default"); + } - @Override - protected boolean isEnvironmentManagedBySpring() { - return false; - } + @Override + protected String getBucketPassword() { + return springEnv.getProperty("couchbase.password", ""); + } - @Override - protected CouchbaseConfigurer couchbaseConfigurer() { - return this; - } + @Override + protected boolean isEnvironmentManagedBySpring() { + return false; + } + + @Override + protected CouchbaseConfigurer couchbaseConfigurer() { + return this; + } } \ No newline at end of file diff --git a/src/integration/java/org/springframework/data/couchbase/ReactiveIntegrationTestApplicationConfig.java b/src/integration/java/org/springframework/data/couchbase/ReactiveIntegrationTestApplicationConfig.java index aec27fb9..174b0378 100644 --- a/src/integration/java/org/springframework/data/couchbase/ReactiveIntegrationTestApplicationConfig.java +++ b/src/integration/java/org/springframework/data/couchbase/ReactiveIntegrationTestApplicationConfig.java @@ -6,8 +6,10 @@ import java.util.List; import com.couchbase.client.java.env.CouchbaseEnvironment; import com.couchbase.client.java.env.DefaultCouchbaseEnvironment; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.core.env.Environment; import org.springframework.data.couchbase.config.AbstractReactiveCouchbaseConfiguration; import org.springframework.data.couchbase.core.RxJavaCouchbaseTemplate; import org.springframework.data.couchbase.core.WriteResultChecking; @@ -17,29 +19,32 @@ import org.springframework.data.couchbase.repository.support.IndexManager; @Configuration public class ReactiveIntegrationTestApplicationConfig extends AbstractReactiveCouchbaseConfiguration { + @Autowired + private Environment springEnv; + @Bean public String couchbaseAdminUser() { - return "Administrator"; + return springEnv.getProperty("couchbase.adminUser", "Administrator"); } @Bean public String couchbaseAdminPassword() { - return "password"; + return springEnv.getProperty("couchbase.adminUser", "password"); } @Override protected List getBootstrapHosts() { - return Collections.singletonList("127.0.0.1"); + return Collections.singletonList(springEnv.getProperty("couchbase.host", "127.0.0.1")); } @Override protected String getBucketName() { - return "protected"; + return springEnv.getProperty("couchbase.bucket", "default"); } @Override protected String getBucketPassword() { - return "password"; + return springEnv.getProperty("couchbase.password", ""); } @Override @@ -69,4 +74,4 @@ public class ReactiveIntegrationTestApplicationConfig extends AbstractReactiveCo protected Consistency getDefaultConsistency() { return Consistency.READ_YOUR_OWN_WRITES; } -} \ No newline at end of file +} diff --git a/src/integration/java/org/springframework/data/couchbase/TestContainerResource.java b/src/integration/java/org/springframework/data/couchbase/TestContainerResource.java deleted file mode 100644 index 33cbc473..00000000 --- a/src/integration/java/org/springframework/data/couchbase/TestContainerResource.java +++ /dev/null @@ -1,67 +0,0 @@ -package org.springframework.data.couchbase; - -import java.util.Properties; -import java.util.concurrent.atomic.AtomicInteger; -import org.junit.rules.ExternalResource; -import org.testcontainers.containers.FixedHostPortGenericContainer; - -/** - * Testcontainers as external resource. It is recommended to use it as ClassRule. - * It also does the internal reference counting, in case if the getResource is called again. - * - */ -public class TestContainerResource extends ExternalResource { - - private static FixedHostPortGenericContainer couchbaseContainer = null; - private static final AtomicInteger referenceCount = new AtomicInteger(); - private static TestContainerResource currentInstance; - private static String serverVersion; - - - public static TestContainerResource getResource() { - if (currentInstance == null) { - currentInstance = new TestContainerResource(); - try { - Properties properties = new Properties(); - properties.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("server.properties")); - serverVersion = properties.getProperty("server.version"); - if(!properties.getProperty("server.resource").contentEquals("container")) { - return null; - } - } catch (Exception ex) { - serverVersion = "5.0.1"; - } - couchbaseContainer = new FixedHostPortGenericContainer("couchbase:" + serverVersion) - .withFixedExposedPort(8091, 8091) - .withFixedExposedPort(18091, 18091) - .withFixedExposedPort(8092, 8092) - .withFixedExposedPort(18092, 18092) - .withFixedExposedPort(8093, 8093) - .withFixedExposedPort(18093, 18093) - .withFixedExposedPort(8094, 8094) - .withFixedExposedPort(18094, 18094) - .withFixedExposedPort(11210, 11210) - .withFixedExposedPort(11211, 11211) - .withFixedExposedPort(11207, 11207); - couchbaseContainer.waitingFor(new CouchbaseWaitStrategy(serverVersion)); - couchbaseContainer.start(); - } - - return currentInstance; - } - - @Override - protected void before() { - referenceCount.incrementAndGet(); - } - - @Override - protected void after() { - if (referenceCount.decrementAndGet() == 0 && couchbaseContainer != null) { - if(couchbaseContainer.isRunning()) { - couchbaseContainer.close(); - } - currentInstance = null; - } - } -} \ No newline at end of file diff --git a/src/integration/java/org/springframework/data/couchbase/config/AbstractCouchbaseDataConfigurationTest.java b/src/integration/java/org/springframework/data/couchbase/config/AbstractCouchbaseDataConfigurationTest.java index 7cd70d87..2c57e024 100644 --- a/src/integration/java/org/springframework/data/couchbase/config/AbstractCouchbaseDataConfigurationTest.java +++ b/src/integration/java/org/springframework/data/couchbase/config/AbstractCouchbaseDataConfigurationTest.java @@ -2,8 +2,6 @@ package org.springframework.data.couchbase.config; import static org.junit.Assert.*; -import javax.swing.*; - import com.couchbase.client.java.Bucket; import com.couchbase.client.java.Cluster; import com.couchbase.client.java.CouchbaseCluster; @@ -18,11 +16,11 @@ 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.ContainerResourceRunner; import org.springframework.data.couchbase.repository.CouchbaseRepository; import org.springframework.data.couchbase.repository.config.EnableCouchbaseRepositories; import org.springframework.stereotype.Repository; import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; /** * This test case demonstrates that the {@link AbstractCouchbaseDataConfiguration} can take its SDK beans @@ -33,7 +31,7 @@ import org.springframework.test.context.ContextConfiguration; * @author Simon Baslé */ @SuppressWarnings("SpringJavaAutowiringInspection") -@RunWith(ContainerResourceRunner.class) +@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration public class AbstractCouchbaseDataConfigurationTest { @@ -47,8 +45,8 @@ public class AbstractCouchbaseDataConfigurationTest { static class SdkConfig { private static final String IP = "127.0.0.1"; - private static final String BUCKET_NAME = "protected"; - private static final String BUCKET_PASSWORD = "password"; + private static final String BUCKET_NAME = "default"; + private static final String BUCKET_PASSWORD = ""; public static Bucket bucket; diff --git a/src/integration/java/org/springframework/data/couchbase/config/CouchbaseEnvironmentNoShutdownProxyTest.java b/src/integration/java/org/springframework/data/couchbase/config/CouchbaseEnvironmentNoShutdownProxyTest.java index 2f54f694..3c9f6c27 100644 --- a/src/integration/java/org/springframework/data/couchbase/config/CouchbaseEnvironmentNoShutdownProxyTest.java +++ b/src/integration/java/org/springframework/data/couchbase/config/CouchbaseEnvironmentNoShutdownProxyTest.java @@ -5,14 +5,14 @@ import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.couchbase.ContainerResourceRunner; import org.springframework.data.couchbase.IntegrationTestNoShutdownApplicationConfig; import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; /** * Simple test to make sure that environment is not shutdown if not life cycle managed by Spring. */ -@RunWith(ContainerResourceRunner.class) +@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = IntegrationTestNoShutdownApplicationConfig.class) public class CouchbaseEnvironmentNoShutdownProxyTest { diff --git a/src/integration/java/org/springframework/data/couchbase/config/CouchbaseTemplateParserIntegrationTests.java b/src/integration/java/org/springframework/data/couchbase/config/CouchbaseTemplateParserIntegrationTests.java index 3defc28e..2e2fffa2 100644 --- a/src/integration/java/org/springframework/data/couchbase/config/CouchbaseTemplateParserIntegrationTests.java +++ b/src/integration/java/org/springframework/data/couchbase/config/CouchbaseTemplateParserIntegrationTests.java @@ -23,25 +23,20 @@ import com.couchbase.client.java.document.json.JsonObject; import org.junit.Before; import org.junit.Test; -import org.junit.runner.RunWith; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.beans.factory.support.BeanDefinitionReader; import org.springframework.beans.factory.support.DefaultListableBeanFactory; import org.springframework.beans.factory.xml.XmlBeanDefinitionReader; import org.springframework.core.io.ClassPathResource; -import org.springframework.data.couchbase.ContainerResourceRunner; import org.springframework.data.couchbase.core.CouchbaseTemplate; import org.springframework.data.couchbase.core.convert.MappingCouchbaseConverter; import org.springframework.data.couchbase.core.query.Consistency; import org.springframework.data.couchbase.repository.User; -import org.springframework.test.context.ContextConfiguration; /** * @author Michael Nitschinger * @author Simon Baslé */ -@RunWith(ContainerResourceRunner.class) -@ContextConfiguration(classes=CouchbaseTemplateParserIntegrationTests.class) public class CouchbaseTemplateParserIntegrationTests { DefaultListableBeanFactory factory; diff --git a/src/integration/java/org/springframework/data/couchbase/core/CouchbaseTemplateIdGenerationTests.java b/src/integration/java/org/springframework/data/couchbase/core/CouchbaseTemplateIdGenerationTests.java index 8693f42a..ec32b23a 100644 --- a/src/integration/java/org/springframework/data/couchbase/core/CouchbaseTemplateIdGenerationTests.java +++ b/src/integration/java/org/springframework/data/couchbase/core/CouchbaseTemplateIdGenerationTests.java @@ -11,7 +11,6 @@ import org.junit.rules.TestName; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.annotation.Id; -import org.springframework.data.couchbase.ContainerResourceRunner; import org.springframework.data.couchbase.IntegrationTestApplicationConfig; import org.springframework.data.couchbase.core.mapping.Document; import org.springframework.data.couchbase.core.mapping.id.GeneratedValue; @@ -19,11 +18,12 @@ import org.springframework.data.couchbase.core.mapping.id.IdAttribute; import org.springframework.data.couchbase.core.mapping.id.IdPrefix; import org.springframework.data.couchbase.core.mapping.id.IdSuffix; import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; /** * @author Subhashni Balakrishnan */ -@RunWith(ContainerResourceRunner.class) +@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = IntegrationTestApplicationConfig.class) public class CouchbaseTemplateIdGenerationTests { diff --git a/src/integration/java/org/springframework/data/couchbase/core/CouchbaseTemplateKeySettingsTests.java b/src/integration/java/org/springframework/data/couchbase/core/CouchbaseTemplateKeySettingsTests.java index 94851d8a..2b267f9d 100644 --- a/src/integration/java/org/springframework/data/couchbase/core/CouchbaseTemplateKeySettingsTests.java +++ b/src/integration/java/org/springframework/data/couchbase/core/CouchbaseTemplateKeySettingsTests.java @@ -1,6 +1,9 @@ package org.springframework.data.couchbase.core; import static org.junit.Assert.*; + +import com.couchbase.client.java.Bucket; +import com.couchbase.client.java.error.DocumentDoesNotExistException; import com.couchbase.client.java.repository.annotation.Id; import org.junit.Before; import org.junit.Rule; @@ -8,18 +11,17 @@ import org.junit.Test; import org.junit.rules.TestName; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; - -import org.springframework.data.couchbase.ContainerResourceRunner; import org.springframework.data.couchbase.IntegrationTestCustomKeySettings; import org.springframework.data.couchbase.core.mapping.Document; import org.springframework.data.couchbase.core.mapping.KeySettings; import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; /** * @author Subhashni Balakrishnan */ -@RunWith(ContainerResourceRunner.class) +@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = IntegrationTestCustomKeySettings.class) public class CouchbaseTemplateKeySettingsTests { diff --git a/src/integration/java/org/springframework/data/couchbase/core/CouchbaseTemplateTests.java b/src/integration/java/org/springframework/data/couchbase/core/CouchbaseTemplateTests.java index 5150f92d..5e7d97ea 100644 --- a/src/integration/java/org/springframework/data/couchbase/core/CouchbaseTemplateTests.java +++ b/src/integration/java/org/springframework/data/couchbase/core/CouchbaseTemplateTests.java @@ -54,22 +54,22 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.OptimisticLockingFailureException; import org.springframework.data.annotation.Id; import org.springframework.data.annotation.Version; -; -import org.springframework.data.couchbase.ContainerResourceRunner; import org.springframework.data.couchbase.IntegrationTestApplicationConfig; import org.springframework.data.couchbase.core.convert.MappingCouchbaseConverter; import org.springframework.data.couchbase.core.mapping.Document; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.TestExecutionListeners; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; /** * @author Michael Nitschinger * @author Simon Baslé * @author Anastasiia Smirnova */ -@RunWith(ContainerResourceRunner.class) +@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = IntegrationTestApplicationConfig.class) @TestExecutionListeners(CouchbaseTemplateQueryListener.class) public class CouchbaseTemplateTests { + @Rule public TestName testName = new TestName(); @@ -485,9 +485,9 @@ public class CouchbaseTemplateTests { String id = "simple-doc-with-update-expiry-for-read"; DocumentWithTouchOnRead doc = new DocumentWithTouchOnRead(id); template.save(doc); - Thread.sleep(1000); + Thread.sleep(1500); assertNotNull(template.findById(id, DocumentWithTouchOnRead.class)); - Thread.sleep(1000); + Thread.sleep(1500); assertNotNull(template.findById(id, DocumentWithTouchOnRead.class)); Thread.sleep(3000); assertNull(template.findById(id, DocumentWithTouchOnRead.class)); diff --git a/src/integration/java/org/springframework/data/couchbase/core/RxJavaCouchbaseTemplateTests.java b/src/integration/java/org/springframework/data/couchbase/core/RxJavaCouchbaseTemplateTests.java index 8ef1a0f2..c6902bce 100644 --- a/src/integration/java/org/springframework/data/couchbase/core/RxJavaCouchbaseTemplateTests.java +++ b/src/integration/java/org/springframework/data/couchbase/core/RxJavaCouchbaseTemplateTests.java @@ -49,19 +49,19 @@ import org.springframework.dao.DataRetrievalFailureException; import org.springframework.dao.OptimisticLockingFailureException; import org.springframework.data.annotation.Id; import org.springframework.data.annotation.Version; -import org.springframework.data.couchbase.ContainerResourceRunner; import org.springframework.data.couchbase.ReactiveIntegrationTestApplicationConfig; import org.springframework.data.couchbase.core.convert.MappingCouchbaseConverter; import org.springframework.data.couchbase.core.mapping.Document; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.TestExecutionListeners; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import rx.observers.TestSubscriber; /** * @author Subhashni Balakrishnan * @author Alex Derkach **/ -@RunWith(ContainerResourceRunner.class) +@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = ReactiveIntegrationTestApplicationConfig.class) @TestExecutionListeners(RxCouchbaseTemplateQueryListener.class) public class RxJavaCouchbaseTemplateTests { diff --git a/src/integration/java/org/springframework/data/couchbase/core/TypeKeyTests.java b/src/integration/java/org/springframework/data/couchbase/core/TypeKeyTests.java index 1978b251..ff64fdb5 100644 --- a/src/integration/java/org/springframework/data/couchbase/core/TypeKeyTests.java +++ b/src/integration/java/org/springframework/data/couchbase/core/TypeKeyTests.java @@ -28,18 +28,18 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; -; -import org.springframework.data.couchbase.ContainerResourceRunner; import org.springframework.data.couchbase.IntegrationTestCustomTypeKeyConfig; import org.springframework.data.couchbase.core.convert.MappingCouchbaseConverter; import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.TestExecutionListeners; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; /** * Tests the Java Config template around type key modification (DATACOUCH-134) * * @author Simon Baslé */ -@RunWith(ContainerResourceRunner.class) +@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = IntegrationTestCustomTypeKeyConfig.class) public class TypeKeyTests { diff --git a/src/integration/java/org/springframework/data/couchbase/core/mapping/CustomConverterTests.java b/src/integration/java/org/springframework/data/couchbase/core/mapping/CustomConverterTests.java index 22c11ea0..8bf766e0 100644 --- a/src/integration/java/org/springframework/data/couchbase/core/mapping/CustomConverterTests.java +++ b/src/integration/java/org/springframework/data/couchbase/core/mapping/CustomConverterTests.java @@ -19,17 +19,13 @@ package org.springframework.data.couchbase.core.mapping; import java.util.Arrays; import java.util.UUID; import org.junit.Before; -import org.junit.ClassRule; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.convert.converter.Converter; import org.springframework.data.convert.ReadingConverter; import org.springframework.data.convert.WritingConverter; -; -import org.springframework.data.couchbase.ContainerResourceRunner; import org.springframework.data.couchbase.IntegrationTestApplicationConfig; -import org.springframework.data.couchbase.TestContainerResource; import org.springframework.data.couchbase.core.convert.CouchbaseCustomConversions; import org.springframework.data.couchbase.core.convert.MappingCouchbaseConverter; import org.springframework.data.couchbase.repository.config.RepositoryOperationsMapping; @@ -42,7 +38,7 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; /** * @author Subhashni Balakrishnan */ -@RunWith(ContainerResourceRunner.class) +@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = IntegrationTestApplicationConfig.class) public class CustomConverterTests { diff --git a/src/integration/java/org/springframework/data/couchbase/monitor/ClientInfoTests.java b/src/integration/java/org/springframework/data/couchbase/monitor/ClientInfoTests.java index 2b672ce3..62d71e0d 100644 --- a/src/integration/java/org/springframework/data/couchbase/monitor/ClientInfoTests.java +++ b/src/integration/java/org/springframework/data/couchbase/monitor/ClientInfoTests.java @@ -24,15 +24,16 @@ import com.couchbase.client.java.Bucket; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; + import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.couchbase.ContainerResourceRunner; import org.springframework.data.couchbase.IntegrationTestApplicationConfig; import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; /** * @author Michael Nitschinger */ -@RunWith(ContainerResourceRunner.class) +@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = IntegrationTestApplicationConfig.class) public class ClientInfoTests { diff --git a/src/integration/java/org/springframework/data/couchbase/monitor/ClusterInfoTests.java b/src/integration/java/org/springframework/data/couchbase/monitor/ClusterInfoTests.java index d67076e4..63c5441c 100644 --- a/src/integration/java/org/springframework/data/couchbase/monitor/ClusterInfoTests.java +++ b/src/integration/java/org/springframework/data/couchbase/monitor/ClusterInfoTests.java @@ -21,23 +21,17 @@ import static org.hamcrest.Matchers.greaterThan; import com.couchbase.client.java.Bucket; import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; -; -import org.springframework.data.couchbase.ContainerResourceRunner; import org.springframework.data.couchbase.IntegrationTestApplicationConfig; -import org.springframework.data.couchbase.TestContainerResource; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; /** * @author Michael Nitschinger */ -@Ignore(value = "Cant run get cluster info on test container") @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = IntegrationTestApplicationConfig.class) public class ClusterInfoTests { @@ -65,4 +59,4 @@ public class ClusterInfoTests { assertThat(ci.getTotalRAMUsed(), greaterThan(0L)); } -} \ No newline at end of file +} diff --git a/src/integration/java/org/springframework/data/couchbase/repository/CouchbaseIdGenerationTests.java b/src/integration/java/org/springframework/data/couchbase/repository/CouchbaseIdGenerationRepository.java similarity index 95% rename from src/integration/java/org/springframework/data/couchbase/repository/CouchbaseIdGenerationTests.java rename to src/integration/java/org/springframework/data/couchbase/repository/CouchbaseIdGenerationRepository.java index b1888534..ac3f767d 100644 --- a/src/integration/java/org/springframework/data/couchbase/repository/CouchbaseIdGenerationTests.java +++ b/src/integration/java/org/springframework/data/couchbase/repository/CouchbaseIdGenerationRepository.java @@ -20,8 +20,6 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.annotation.Id; - -import org.springframework.data.couchbase.ContainerResourceRunner; import org.springframework.data.couchbase.IntegrationTestApplicationConfig; import org.springframework.data.couchbase.core.mapping.Document; import org.springframework.data.couchbase.core.mapping.id.GeneratedValue; @@ -31,6 +29,7 @@ import org.springframework.data.couchbase.repository.support.IndexManager; import org.springframework.data.repository.CrudRepository; import org.springframework.stereotype.Repository; import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import static org.hamcrest.MatcherAssert.assertThat; import static org.springframework.data.couchbase.core.mapping.id.GenerationStrategy.UNIQUE; @@ -38,13 +37,11 @@ import static org.springframework.data.couchbase.core.mapping.id.GenerationStrat /** * @author Maxence Labusquiere */ -@RunWith(ContainerResourceRunner.class) +@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = IntegrationTestApplicationConfig.class) -public class CouchbaseIdGenerationTests { - +public class CouchbaseIdGenerationRepository { @Autowired private RepositoryOperationsMapping operationsMapping; - @Autowired private IndexManager indexManager; private CrudRepository entityRepository; diff --git a/src/integration/java/org/springframework/data/couchbase/repository/CouchbaseRepositoryViewTests.java b/src/integration/java/org/springframework/data/couchbase/repository/CouchbaseRepositoryViewTests.java index d0c483eb..01935302 100644 --- a/src/integration/java/org/springframework/data/couchbase/repository/CouchbaseRepositoryViewTests.java +++ b/src/integration/java/org/springframework/data/couchbase/repository/CouchbaseRepositoryViewTests.java @@ -156,9 +156,7 @@ public class CouchbaseRepositoryViewTests { assertEquals(expected, in); assertEquals(expected, gteLte); assertEquals(expected, between); - assertTrue(gteLimited.contains(u1)); - assertTrue(gteLimited.contains(u2)); - assertTrue(gteLimited.contains(u3)); + assertEquals(expected, gteLimited); } @Test diff --git a/src/integration/java/org/springframework/data/couchbase/repository/DimensionalQueryTests.java b/src/integration/java/org/springframework/data/couchbase/repository/DimensionalQueryTests.java index 5746fa57..3ad49cab 100644 --- a/src/integration/java/org/springframework/data/couchbase/repository/DimensionalQueryTests.java +++ b/src/integration/java/org/springframework/data/couchbase/repository/DimensionalQueryTests.java @@ -12,8 +12,6 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; -; -import org.springframework.data.couchbase.ContainerResourceRunner; import org.springframework.data.couchbase.IntegrationTestApplicationConfig; import org.springframework.data.couchbase.core.CouchbaseQueryExecutionException; import org.springframework.data.couchbase.repository.config.RepositoryOperationsMapping; @@ -27,11 +25,12 @@ import org.springframework.data.geo.Polygon; import org.springframework.data.repository.core.support.RepositoryFactorySupport; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.TestExecutionListeners; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; /** * @author Simon Baslé */ -@RunWith(ContainerResourceRunner.class) +@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = IntegrationTestApplicationConfig.class) @TestExecutionListeners(PartyPopulatorListener.class) public class DimensionalQueryTests { diff --git a/src/integration/java/org/springframework/data/couchbase/repository/ItemRepository.java b/src/integration/java/org/springframework/data/couchbase/repository/ItemRepository.java index b56caa06..3e75a461 100644 --- a/src/integration/java/org/springframework/data/couchbase/repository/ItemRepository.java +++ b/src/integration/java/org/springframework/data/couchbase/repository/ItemRepository.java @@ -2,10 +2,8 @@ package org.springframework.data.couchbase.repository; import java.util.List; -import org.springframework.data.couchbase.core.query.N1qlPrimaryIndexed; import org.springframework.data.repository.CrudRepository; -@N1qlPrimaryIndexed public interface ItemRepository extends CrudRepository { List findAllByDescriptionNotNull(); diff --git a/src/integration/java/org/springframework/data/couchbase/repository/N1qlCouchbaseRepositoryTests.java b/src/integration/java/org/springframework/data/couchbase/repository/N1qlCouchbaseRepositoryTests.java index 988a21fb..caeff2d5 100644 --- a/src/integration/java/org/springframework/data/couchbase/repository/N1qlCouchbaseRepositoryTests.java +++ b/src/integration/java/org/springframework/data/couchbase/repository/N1qlCouchbaseRepositoryTests.java @@ -25,8 +25,6 @@ import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.DataRetrievalFailureException; -; -import org.springframework.data.couchbase.ContainerResourceRunner; import org.springframework.data.couchbase.IntegrationTestApplicationConfig; import org.springframework.data.couchbase.repository.config.RepositoryOperationsMapping; import org.springframework.data.couchbase.repository.support.CouchbaseRepositoryFactory; @@ -39,6 +37,7 @@ import org.springframework.data.mapping.model.MappingInstantiationException; import org.springframework.data.repository.core.support.RepositoryFactorySupport; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.TestExecutionListeners; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import java.util.List; @@ -48,7 +47,7 @@ import java.util.List; * @author Simon Baslé * @author Subhashni Balakrishnan */ -@RunWith(ContainerResourceRunner.class) +@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = IntegrationTestApplicationConfig.class) @TestExecutionListeners(PartyPopulatorListener.class) public class N1qlCouchbaseRepositoryTests { diff --git a/src/integration/java/org/springframework/data/couchbase/repository/N1qlCrudRepositoryTests.java b/src/integration/java/org/springframework/data/couchbase/repository/N1qlCrudRepositoryTests.java index a0d8944c..4e96d219 100644 --- a/src/integration/java/org/springframework/data/couchbase/repository/N1qlCrudRepositoryTests.java +++ b/src/integration/java/org/springframework/data/couchbase/repository/N1qlCrudRepositoryTests.java @@ -29,8 +29,6 @@ import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.DataRetrievalFailureException; -; -import org.springframework.data.couchbase.ContainerResourceRunner; import org.springframework.data.couchbase.IntegrationTestApplicationConfig; import org.springframework.data.couchbase.core.CouchbaseQueryExecutionException; import org.springframework.data.couchbase.repository.config.RepositoryOperationsMapping; @@ -38,11 +36,12 @@ import org.springframework.data.couchbase.repository.support.CouchbaseRepository import org.springframework.data.couchbase.repository.support.IndexManager; import org.springframework.data.geo.Point; import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; /** * @author Simon Baslé */ -@RunWith(ContainerResourceRunner.class) +@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = IntegrationTestApplicationConfig.class) public class N1qlCrudRepositoryTests { diff --git a/src/integration/java/org/springframework/data/couchbase/repository/N1qlPlaceholderTests.java b/src/integration/java/org/springframework/data/couchbase/repository/N1qlPlaceholderTests.java index 6779f547..d103c55d 100644 --- a/src/integration/java/org/springframework/data/couchbase/repository/N1qlPlaceholderTests.java +++ b/src/integration/java/org/springframework/data/couchbase/repository/N1qlPlaceholderTests.java @@ -25,7 +25,6 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.couchbase.ContainerResourceRunner; import org.springframework.data.couchbase.IntegrationTestApplicationConfig; import org.springframework.data.couchbase.core.query.Query; import org.springframework.data.couchbase.repository.config.RepositoryOperationsMapping; @@ -35,11 +34,12 @@ import org.springframework.data.repository.CrudRepository; import org.springframework.data.repository.query.Param; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.TestExecutionListeners; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; /** * @author Simon Baslé */ -@RunWith(ContainerResourceRunner.class) +@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = IntegrationTestApplicationConfig.class) @TestExecutionListeners(PartyPopulatorListener.class) public class N1qlPlaceholderTests { diff --git a/src/integration/java/org/springframework/data/couchbase/repository/PageAndSliceTests.java b/src/integration/java/org/springframework/data/couchbase/repository/PageAndSliceTests.java index d38aabaf..d9031561 100644 --- a/src/integration/java/org/springframework/data/couchbase/repository/PageAndSliceTests.java +++ b/src/integration/java/org/springframework/data/couchbase/repository/PageAndSliceTests.java @@ -13,7 +13,6 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.couchbase.ContainerResourceRunner; import org.springframework.data.couchbase.IntegrationTestApplicationConfig; import org.springframework.data.couchbase.repository.config.RepositoryOperationsMapping; import org.springframework.data.couchbase.repository.support.CouchbaseRepositoryFactory; @@ -24,8 +23,9 @@ import org.springframework.data.domain.Slice; import org.springframework.data.repository.core.support.RepositoryFactorySupport; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.TestExecutionListeners; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; -@RunWith(ContainerResourceRunner.class) +@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = IntegrationTestApplicationConfig.class) @TestExecutionListeners(SimpleCouchbaseRepositoryListener.class) public class PageAndSliceTests { diff --git a/src/integration/java/org/springframework/data/couchbase/repository/PartyRepository.java b/src/integration/java/org/springframework/data/couchbase/repository/PartyRepository.java index 8c0d9beb..e3b1dbeb 100644 --- a/src/integration/java/org/springframework/data/couchbase/repository/PartyRepository.java +++ b/src/integration/java/org/springframework/data/couchbase/repository/PartyRepository.java @@ -19,7 +19,6 @@ package org.springframework.data.couchbase.repository; import java.util.Date; import java.util.List; -import org.springframework.data.couchbase.core.query.N1qlPrimaryIndexed; import org.springframework.data.couchbase.core.query.N1qlSecondaryIndexed; import org.springframework.data.couchbase.core.query.Query; import org.springframework.data.couchbase.core.query.View; @@ -34,7 +33,6 @@ import org.springframework.data.repository.query.Param; * @author Subhashni Balakrishnan */ @ViewIndexed(designDoc = "party", viewName = "all") -@N1qlPrimaryIndexed @N1qlSecondaryIndexed(indexName = "party") public interface PartyRepository extends CouchbaseRepository { diff --git a/src/integration/java/org/springframework/data/couchbase/repository/QueryDerivationConversionTests.java b/src/integration/java/org/springframework/data/couchbase/repository/QueryDerivationConversionTests.java index 45b0514e..f02046e8 100644 --- a/src/integration/java/org/springframework/data/couchbase/repository/QueryDerivationConversionTests.java +++ b/src/integration/java/org/springframework/data/couchbase/repository/QueryDerivationConversionTests.java @@ -16,7 +16,6 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.couchbase.ContainerResourceRunner; import org.springframework.data.couchbase.IntegrationTestApplicationConfig; import org.springframework.data.couchbase.repository.config.RepositoryOperationsMapping; import org.springframework.data.couchbase.repository.support.CouchbaseRepositoryFactory; @@ -24,12 +23,13 @@ import org.springframework.data.couchbase.repository.support.IndexManager; import org.springframework.data.repository.core.support.RepositoryFactorySupport; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.TestExecutionListeners; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; /** * @author Simon Baslé * @author Mark Paluch */ -@RunWith(ContainerResourceRunner.class) +@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = IntegrationTestApplicationConfig.class) @TestExecutionListeners(PartyPopulatorListener.class) public class QueryDerivationConversionTests { diff --git a/src/integration/java/org/springframework/data/couchbase/repository/ReactiveN1qlCouchbaseRepositoryTests.java b/src/integration/java/org/springframework/data/couchbase/repository/ReactiveN1qlCouchbaseRepositoryTests.java index 0cb02214..2bfac7b4 100644 --- a/src/integration/java/org/springframework/data/couchbase/repository/ReactiveN1qlCouchbaseRepositoryTests.java +++ b/src/integration/java/org/springframework/data/couchbase/repository/ReactiveN1qlCouchbaseRepositoryTests.java @@ -25,7 +25,6 @@ import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.DataRetrievalFailureException; -import org.springframework.data.couchbase.ContainerResourceRunner; import org.springframework.data.couchbase.ReactiveIntegrationTestApplicationConfig; import org.springframework.data.couchbase.repository.config.ReactiveRepositoryOperationsMapping; import org.springframework.data.couchbase.repository.support.IndexManager; @@ -34,13 +33,14 @@ import org.springframework.data.domain.Sort; import org.springframework.data.repository.core.support.ReactiveRepositoryFactorySupport; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.TestExecutionListeners; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; /** * This tests ReactiveSortingRepository features in the Couchbase connector. * * @author Subhashni Balakrishnan */ -@RunWith(ContainerResourceRunner.class) +@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = ReactiveIntegrationTestApplicationConfig.class) @TestExecutionListeners(PartyPopulatorListener.class) public class ReactiveN1qlCouchbaseRepositoryTests { diff --git a/src/integration/java/org/springframework/data/couchbase/repository/SimpleCouchbaseRepositoryTests.java b/src/integration/java/org/springframework/data/couchbase/repository/SimpleCouchbaseRepositoryTests.java index c61b0fbf..05350291 100644 --- a/src/integration/java/org/springframework/data/couchbase/repository/SimpleCouchbaseRepositoryTests.java +++ b/src/integration/java/org/springframework/data/couchbase/repository/SimpleCouchbaseRepositoryTests.java @@ -34,7 +34,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.OptimisticLockingFailureException; import org.springframework.data.annotation.Id; import org.springframework.data.annotation.Version; -import org.springframework.data.couchbase.ContainerResourceRunner; import org.springframework.data.couchbase.IntegrationTestApplicationConfig; import org.springframework.data.couchbase.core.AsyncUtils; import org.springframework.data.couchbase.core.CouchbaseQueryExecutionException; @@ -45,6 +44,7 @@ import org.springframework.data.couchbase.repository.support.IndexManager; import org.springframework.data.repository.core.support.RepositoryFactorySupport; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.TestExecutionListeners; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import com.couchbase.client.java.Bucket; import com.couchbase.client.java.document.JsonDocument; @@ -57,7 +57,7 @@ import com.couchbase.client.java.view.ViewQuery; * @author Michael Nitschinger * @author Mark Paluch */ -@RunWith(ContainerResourceRunner.class) +@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = IntegrationTestApplicationConfig.class) @TestExecutionListeners(SimpleCouchbaseRepositoryListener.class) public class SimpleCouchbaseRepositoryTests { diff --git a/src/integration/java/org/springframework/data/couchbase/repository/SimpleReactiveCouchbaseRepositoryTests.java b/src/integration/java/org/springframework/data/couchbase/repository/SimpleReactiveCouchbaseRepositoryTests.java index 28da1884..ae87b1dc 100644 --- a/src/integration/java/org/springframework/data/couchbase/repository/SimpleReactiveCouchbaseRepositoryTests.java +++ b/src/integration/java/org/springframework/data/couchbase/repository/SimpleReactiveCouchbaseRepositoryTests.java @@ -26,7 +26,6 @@ import org.junit.Test; import org.junit.rules.TestName; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.couchbase.ContainerResourceRunner; import org.springframework.data.couchbase.ReactiveIntegrationTestApplicationConfig; import org.springframework.data.couchbase.core.CouchbaseQueryExecutionException; import org.springframework.data.couchbase.repository.config.ReactiveRepositoryOperationsMapping; @@ -35,6 +34,7 @@ import org.springframework.data.couchbase.repository.support.ReactiveCouchbaseRe import org.springframework.data.repository.core.support.ReactiveRepositoryFactorySupport; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.TestExecutionListeners; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import com.couchbase.client.java.Bucket; import com.couchbase.client.java.error.DocumentDoesNotExistException; @@ -44,7 +44,7 @@ import com.couchbase.client.java.view.ViewQuery; /** * @author Subhashni Balakrishnan */ -@RunWith(ContainerResourceRunner.class) +@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = ReactiveIntegrationTestApplicationConfig.class) @TestExecutionListeners(SimpleReactiveCouchbaseRepositoryListener.class) public class SimpleReactiveCouchbaseRepositoryTests { diff --git a/src/integration/java/org/springframework/data/couchbase/repository/UserRepository.java b/src/integration/java/org/springframework/data/couchbase/repository/UserRepository.java index c2dbff23..29554022 100644 --- a/src/integration/java/org/springframework/data/couchbase/repository/UserRepository.java +++ b/src/integration/java/org/springframework/data/couchbase/repository/UserRepository.java @@ -44,7 +44,7 @@ public interface UserRepository extends CouchbaseRepository { @Query("SELECT * FROM #{#n1ql.bucket} WHERE username = $1 and #{#n1ql.filter} ") User findByUsernameBadSelect(String username); - @Query("#{#n1ql.selectEntity} WHERE username LIKE '%-4' and #{#n1ql.filter}") + @Query("#{#n1ql.selectEntity} WHERE username LIKE '%-#{3 + 1}' and #{#n1ql.filter}'") User findByUsernameWithSpelAndPlaceholder(); @Query diff --git a/src/integration/java/org/springframework/data/couchbase/repository/auditing/AuditingTests.java b/src/integration/java/org/springframework/data/couchbase/repository/auditing/AuditingTests.java index 6a7acb0e..1fdada05 100644 --- a/src/integration/java/org/springframework/data/couchbase/repository/auditing/AuditingTests.java +++ b/src/integration/java/org/springframework/data/couchbase/repository/auditing/AuditingTests.java @@ -6,14 +6,10 @@ import java.util.Date; import java.util.Optional; import org.junit.After; -import org.junit.ClassRule; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; -; -import org.springframework.data.couchbase.ContainerResourceRunner; -import org.springframework.data.couchbase.TestContainerResource; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @@ -21,7 +17,7 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; * @author Simon Baslé * @author Mark Paluch */ -@RunWith(ContainerResourceRunner.class) +@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = AuditedApplicationConfig.class) public class AuditingTests { diff --git a/src/integration/java/org/springframework/data/couchbase/repository/cdi/CdiRepositoryTests.java b/src/integration/java/org/springframework/data/couchbase/repository/cdi/CdiRepositoryTests.java index af01f7ff..350ec103 100644 --- a/src/integration/java/org/springframework/data/couchbase/repository/cdi/CdiRepositoryTests.java +++ b/src/integration/java/org/springframework/data/couchbase/repository/cdi/CdiRepositoryTests.java @@ -30,9 +30,6 @@ import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.data.couchbase.ContainerResourceRunner; -import org.springframework.test.context.ContextConfiguration; import javax.enterprise.inject.se.SeContainer; import javax.enterprise.inject.se.SeContainerInitializer; @@ -40,9 +37,6 @@ import javax.enterprise.inject.se.SeContainerInitializer; /** * @author Mark Paluch */ -@SuppressWarnings("SpringJavaAutowiringInspection") -@RunWith(ContainerResourceRunner.class) -@ContextConfiguration(classes = CdiRepositoryTests.class) public class CdiRepositoryTests { private static SeContainer cdiContainer; @@ -52,6 +46,7 @@ public class CdiRepositoryTests { @BeforeClass public static void init() { + cdiContainer = SeContainerInitializer.newInstance() // .disableDiscovery() // .addPackages(CdiRepositoryClient.class) // diff --git a/src/integration/java/org/springframework/data/couchbase/repository/cdi/CouchbaseClientProducer.java b/src/integration/java/org/springframework/data/couchbase/repository/cdi/CouchbaseClientProducer.java index 17e962e0..f36f2240 100644 --- a/src/integration/java/org/springframework/data/couchbase/repository/cdi/CouchbaseClientProducer.java +++ b/src/integration/java/org/springframework/data/couchbase/repository/cdi/CouchbaseClientProducer.java @@ -43,7 +43,7 @@ class CouchbaseClientProducer { @Produces public Bucket createCouchbaseClient(Cluster cluster) throws Exception { - CouchbaseBucketFactoryBean couchbaseFactoryBean = new CouchbaseBucketFactoryBean(cluster, "protected", "protected", "password"); + CouchbaseBucketFactoryBean couchbaseFactoryBean = new CouchbaseBucketFactoryBean(cluster, "default"); couchbaseFactoryBean.afterPropertiesSet(); return couchbaseFactoryBean.getObject(); } diff --git a/src/integration/java/org/springframework/data/couchbase/repository/cdi/CouchbaseClusterInfoProducer.java b/src/integration/java/org/springframework/data/couchbase/repository/cdi/CouchbaseClusterInfoProducer.java index bd8239bc..6c66c677 100644 --- a/src/integration/java/org/springframework/data/couchbase/repository/cdi/CouchbaseClusterInfoProducer.java +++ b/src/integration/java/org/springframework/data/couchbase/repository/cdi/CouchbaseClusterInfoProducer.java @@ -36,7 +36,7 @@ class CouchbaseClusterInfoProducer { @Produces public ClusterInfo createClusterInfo(Cluster cluster) throws Exception { - return cluster.clusterManager("protected", "password").info(); + return cluster.clusterManager("default", "").info(); } } diff --git a/src/integration/java/org/springframework/data/couchbase/repository/extending/base/RepositoryBaseTest.java b/src/integration/java/org/springframework/data/couchbase/repository/extending/base/RepositoryBaseTest.java index e2e2db0e..3494223e 100644 --- a/src/integration/java/org/springframework/data/couchbase/repository/extending/base/RepositoryBaseTest.java +++ b/src/integration/java/org/springframework/data/couchbase/repository/extending/base/RepositoryBaseTest.java @@ -35,15 +35,16 @@ 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.ContainerResourceRunner; import org.springframework.data.couchbase.config.AbstractCouchbaseConfiguration; import org.springframework.data.couchbase.core.CouchbaseOperations; import org.springframework.data.couchbase.repository.User; +import org.springframework.data.couchbase.repository.UserRepository; import org.springframework.data.couchbase.repository.config.EnableCouchbaseRepositories; import org.springframework.data.couchbase.repository.extending.base.impl.MyRepository; import org.springframework.data.couchbase.repository.extending.base.impl.MyRepositoryImpl; import org.springframework.data.couchbase.repository.support.IndexManager; import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; /** * This tests custom implementation of base repository. @@ -51,7 +52,7 @@ import org.springframework.test.context.ContextConfiguration; * @author Simon Baslé */ @SuppressWarnings("SpringJavaAutowiringInspection") -@RunWith(ContainerResourceRunner.class) +@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration public class RepositoryBaseTest { @@ -92,12 +93,12 @@ public class RepositoryBaseTest { @Override protected String getBucketName() { - return "protected"; + return "default"; } @Override protected String getBucketPassword() { - return "password"; + return ""; } @Bean diff --git a/src/integration/java/org/springframework/data/couchbase/repository/extending/method/RepositoryCustomMethodTest.java b/src/integration/java/org/springframework/data/couchbase/repository/extending/method/RepositoryCustomMethodTest.java index 0c7de7ee..b1d33d4b 100644 --- a/src/integration/java/org/springframework/data/couchbase/repository/extending/method/RepositoryCustomMethodTest.java +++ b/src/integration/java/org/springframework/data/couchbase/repository/extending/method/RepositoryCustomMethodTest.java @@ -17,12 +17,17 @@ package org.springframework.data.couchbase.repository.extending.method; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotEquals; + import java.util.Arrays; import java.util.List; + import org.junit.After; import org.junit.Before; +import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.data.couchbase.config.AbstractCouchbaseConfiguration; @@ -56,12 +61,12 @@ public class RepositoryCustomMethodTest { @Override protected String getBucketName() { - return "protected"; + return "default"; } @Override protected String getBucketPassword() { - return "password"; + return ""; } //this is for dev so it is ok to auto-create indexes diff --git a/src/integration/java/org/springframework/data/couchbase/repository/feature/FeatureDetectionRepositoryTests.java b/src/integration/java/org/springframework/data/couchbase/repository/feature/FeatureDetectionRepositoryTests.java index 6bc71071..29786de9 100644 --- a/src/integration/java/org/springframework/data/couchbase/repository/feature/FeatureDetectionRepositoryTests.java +++ b/src/integration/java/org/springframework/data/couchbase/repository/feature/FeatureDetectionRepositoryTests.java @@ -30,8 +30,6 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; -; -import org.springframework.data.couchbase.ContainerResourceRunner; import org.springframework.data.couchbase.core.CouchbaseOperations; import org.springframework.data.couchbase.core.UnsupportedCouchbaseFeatureException; import org.springframework.data.couchbase.repository.User; @@ -41,13 +39,14 @@ import org.springframework.data.couchbase.repository.support.CouchbaseRepository import org.springframework.data.couchbase.repository.support.IndexManager; import org.springframework.data.repository.core.support.RepositoryFactorySupport; import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; /** * An integration test that validates feature checking with Java Config. * * @author Simon Baslé */ -@RunWith(ContainerResourceRunner.class) +@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = FeatureDetectionTestApplicationConfig.class) public class FeatureDetectionRepositoryTests { diff --git a/src/integration/java/org/springframework/data/couchbase/repository/feature/FeatureDetectionTestApplicationConfig.java b/src/integration/java/org/springframework/data/couchbase/repository/feature/FeatureDetectionTestApplicationConfig.java index e3764bbd..dd5d7bf3 100644 --- a/src/integration/java/org/springframework/data/couchbase/repository/feature/FeatureDetectionTestApplicationConfig.java +++ b/src/integration/java/org/springframework/data/couchbase/repository/feature/FeatureDetectionTestApplicationConfig.java @@ -9,8 +9,10 @@ import com.couchbase.client.java.document.json.JsonObject; import com.couchbase.client.java.env.CouchbaseEnvironment; import com.couchbase.client.java.env.DefaultCouchbaseEnvironment; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.core.env.Environment; import org.springframework.data.couchbase.config.AbstractCouchbaseConfiguration; import org.springframework.data.couchbase.core.CouchbaseTemplate; import org.springframework.data.couchbase.core.WriteResultChecking; @@ -19,29 +21,32 @@ import org.springframework.data.couchbase.repository.support.IndexManager; @Configuration public class FeatureDetectionTestApplicationConfig extends AbstractCouchbaseConfiguration { + @Autowired + private Environment springEnv; + @Bean public String couchbaseAdminUser() { - return "Administrator"; + return springEnv.getProperty("couchbase.adminUser", "Administrator"); } @Bean public String couchbaseAdminPassword() { - return "password"; + return springEnv.getProperty("couchbase.adminUser", "password"); } @Override protected List getBootstrapHosts() { - return Collections.singletonList("127.0.0.1"); + return Collections.singletonList(springEnv.getProperty("couchbase.host", "127.0.0.1")); } @Override protected String getBucketName() { - return "protected"; + return springEnv.getProperty("couchbase.bucket", "default"); } @Override protected String getBucketPassword() { - return "password"; + return springEnv.getProperty("couchbase.password", ""); } diff --git a/src/integration/java/org/springframework/data/couchbase/repository/index/IndexedRepositoryTests.java b/src/integration/java/org/springframework/data/couchbase/repository/index/IndexedRepositoryTests.java index d1dadafd..5c720300 100644 --- a/src/integration/java/org/springframework/data/couchbase/repository/index/IndexedRepositoryTests.java +++ b/src/integration/java/org/springframework/data/couchbase/repository/index/IndexedRepositoryTests.java @@ -30,8 +30,6 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; -; -import org.springframework.data.couchbase.ContainerResourceRunner; import org.springframework.data.couchbase.IntegrationTestApplicationConfig; import org.springframework.data.couchbase.core.CouchbaseOperations; import org.springframework.data.couchbase.repository.config.RepositoryOperationsMapping; @@ -40,6 +38,7 @@ import org.springframework.data.couchbase.repository.support.IndexManager; import org.springframework.data.repository.core.support.RepositoryFactorySupport; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.TestExecutionListeners; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; /** * This tests automatic index creation features in the Couchbase connector. @@ -47,7 +46,7 @@ import org.springframework.test.context.TestExecutionListeners; * * @author Simon Baslé */ -@RunWith(ContainerResourceRunner.class) +@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = IntegrationTestApplicationConfig.class) @TestExecutionListeners(IndexedRepositoryTestListener.class) public class IndexedRepositoryTests { diff --git a/src/integration/java/org/springframework/data/couchbase/repository/spel/SpelRepositoryTests.java b/src/integration/java/org/springframework/data/couchbase/repository/spel/SpelRepositoryTests.java index a58f262e..e06075e8 100644 --- a/src/integration/java/org/springframework/data/couchbase/repository/spel/SpelRepositoryTests.java +++ b/src/integration/java/org/springframework/data/couchbase/repository/spel/SpelRepositoryTests.java @@ -23,23 +23,28 @@ import static org.junit.Assert.*; import java.util.List; import com.couchbase.client.java.Bucket; +import org.hamcrest.Matchers; +import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; -; -import org.springframework.data.couchbase.ContainerResourceRunner; import org.springframework.data.couchbase.repository.SimpleCouchbaseRepositoryListener; import org.springframework.data.couchbase.repository.User; import org.springframework.data.couchbase.repository.config.RepositoryOperationsMapping; +import org.springframework.data.couchbase.repository.support.CouchbaseRepositoryFactory; import org.springframework.data.couchbase.repository.support.IndexManager; +import org.springframework.data.repository.core.support.RepositoryFactorySupport; +import org.springframework.data.repository.query.EvaluationContextProvider; +import org.springframework.data.repository.query.spi.EvaluationContextExtension; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.TestExecutionListeners; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; /** * @author Simon Baslé */ -@RunWith(ContainerResourceRunner.class) +@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = SpelConfig.class) @TestExecutionListeners(SimpleCouchbaseRepositoryListener.class) public class SpelRepositoryTests { diff --git a/src/integration/java/org/springframework/data/couchbase/repository/wiring/RepositoryTemplateWiringTests.java b/src/integration/java/org/springframework/data/couchbase/repository/wiring/RepositoryTemplateWiringTests.java index df8ae202..9a8038bc 100644 --- a/src/integration/java/org/springframework/data/couchbase/repository/wiring/RepositoryTemplateWiringTests.java +++ b/src/integration/java/org/springframework/data/couchbase/repository/wiring/RepositoryTemplateWiringTests.java @@ -17,8 +17,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.ContainerResourceRunner; import org.springframework.data.couchbase.config.AbstractCouchbaseConfiguration; import org.springframework.data.couchbase.core.CouchbaseOperations; import org.springframework.data.couchbase.core.CouchbaseTemplate; @@ -30,6 +28,7 @@ import org.springframework.data.couchbase.repository.config.RepositoryOperations import org.springframework.data.couchbase.repository.support.IndexManager; import org.springframework.stereotype.Repository; import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; /** * This test case demonstrates (with a bit of mocking) that the framework will take the @@ -40,7 +39,7 @@ import org.springframework.test.context.ContextConfiguration; * @author Mark Paluch */ @SuppressWarnings("SpringJavaAutowiringInspection") -@RunWith(ContainerResourceRunner.class) +@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration public class RepositoryTemplateWiringTests { @@ -93,12 +92,12 @@ public class RepositoryTemplateWiringTests { @Override protected String getBucketName() { - return "protected"; + return "default"; } @Override protected String getBucketPassword() { - return "password"; + return ""; } @Bean diff --git a/src/integration/java/org/springframework/data/couchbase/repository/xmlconfig/XmlRepositoryConfigurationTests.java b/src/integration/java/org/springframework/data/couchbase/repository/xmlconfig/XmlRepositoryConfigurationTests.java index d365be47..bae65dd8 100644 --- a/src/integration/java/org/springframework/data/couchbase/repository/xmlconfig/XmlRepositoryConfigurationTests.java +++ b/src/integration/java/org/springframework/data/couchbase/repository/xmlconfig/XmlRepositoryConfigurationTests.java @@ -6,21 +6,15 @@ import static org.junit.Assert.assertTrue; import org.junit.Before; import org.junit.Test; -import org.junit.runner.RunWith; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.beans.factory.support.BeanDefinitionReader; import org.springframework.beans.factory.support.DefaultListableBeanFactory; import org.springframework.beans.factory.xml.XmlBeanDefinitionReader; import org.springframework.core.io.ClassPathResource; -import org.springframework.data.couchbase.ContainerResourceRunner; -import org.springframework.test.context.ContextConfiguration; /** * @author Simon Baslé */ -@SuppressWarnings("SpringJavaAutowiringInspection") -@RunWith(ContainerResourceRunner.class) -@ContextConfiguration(classes = XmlRepositoryConfigurationTests.class) public class XmlRepositoryConfigurationTests { DefaultListableBeanFactory factory; diff --git a/src/integration/resources/configurations/couchbase-consistency.xml b/src/integration/resources/configurations/couchbase-consistency.xml index 735de4bb..f6817234 100644 --- a/src/integration/resources/configurations/couchbase-consistency.xml +++ b/src/integration/resources/configurations/couchbase-consistency.xml @@ -7,8 +7,8 @@ - - + + diff --git a/src/integration/resources/configurations/couchbase-multi-bucket-bean.xml b/src/integration/resources/configurations/couchbase-multi-bucket-bean.xml index a5552ccd..c2c2c487 100644 --- a/src/integration/resources/configurations/couchbase-multi-bucket-bean.xml +++ b/src/integration/resources/configurations/couchbase-multi-bucket-bean.xml @@ -8,10 +8,10 @@ - + - - + + diff --git a/src/integration/resources/configurations/couchbase-repository-bean.xml b/src/integration/resources/configurations/couchbase-repository-bean.xml index 55769b35..ab12dd65 100644 --- a/src/integration/resources/configurations/couchbase-repository-bean.xml +++ b/src/integration/resources/configurations/couchbase-repository-bean.xml @@ -7,8 +7,8 @@ - - + + diff --git a/src/integration/resources/configurations/couchbase-template-bean.xml b/src/integration/resources/configurations/couchbase-template-bean.xml index 99c5845d..eb759027 100644 --- a/src/integration/resources/configurations/couchbase-template-bean.xml +++ b/src/integration/resources/configurations/couchbase-template-bean.xml @@ -7,8 +7,8 @@ - - + + diff --git a/src/integration/resources/configurations/couchbase-template-with-translation-service-bean.xml b/src/integration/resources/configurations/couchbase-template-with-translation-service-bean.xml index 9690d792..588a61e9 100644 --- a/src/integration/resources/configurations/couchbase-template-with-translation-service-bean.xml +++ b/src/integration/resources/configurations/couchbase-template-with-translation-service-bean.xml @@ -7,8 +7,8 @@ - - + + diff --git a/src/integration/resources/configurations/couchbase-typekey.xml b/src/integration/resources/configurations/couchbase-typekey.xml index 1a1f7056..0c7078ea 100644 --- a/src/integration/resources/configurations/couchbase-typekey.xml +++ b/src/integration/resources/configurations/couchbase-typekey.xml @@ -7,8 +7,8 @@ - - + + diff --git a/src/integration/resources/namespace/couchbase.properties b/src/integration/resources/namespace/couchbase.properties new file mode 100644 index 00000000..8fcc7d11 --- /dev/null +++ b/src/integration/resources/namespace/couchbase.properties @@ -0,0 +1,3 @@ +couchbase.host=127.0.0.1 +couchbase.bucket=default +couchbase.password= diff --git a/src/integration/resources/server.properties b/src/integration/resources/server.properties deleted file mode 100644 index f430a57c..00000000 --- a/src/integration/resources/server.properties +++ /dev/null @@ -1,6 +0,0 @@ -#Couchbase server versions 4.5 and above are supported -server.version=5.1.0 -#resource can be set to container or omitted -#container just would require docker installed -#omitted indicates that there is a local couchbase server running -server.resource=container \ No newline at end of file diff --git a/src/main/java/org/springframework/data/couchbase/config/AbstractCouchbaseConfiguration.java b/src/main/java/org/springframework/data/couchbase/config/AbstractCouchbaseConfiguration.java index 688396ce..53431f51 100644 --- a/src/main/java/org/springframework/data/couchbase/config/AbstractCouchbaseConfiguration.java +++ b/src/main/java/org/springframework/data/couchbase/config/AbstractCouchbaseConfiguration.java @@ -55,13 +55,6 @@ public abstract class AbstractCouchbaseConfiguration */ protected abstract String getBucketName(); - /** - * The user of the bucket. Override the method for users in Couchbase Server 5.0+. - * - * @return user name. - */ - protected String getUsername() { return getBucketName(); } - /** * The password of the bucket (can be an empty string). * @@ -122,7 +115,7 @@ public abstract class AbstractCouchbaseConfiguration @Override @Bean(name = BeanNames.COUCHBASE_CLUSTER_INFO) public ClusterInfo couchbaseClusterInfo() throws Exception { - return couchbaseCluster().clusterManager(getUsername(), getBucketPassword()).info(); + return couchbaseCluster().clusterManager(getBucketName(), getBucketPassword()).info(); } /** @@ -134,13 +127,6 @@ public abstract class AbstractCouchbaseConfiguration @Bean(destroyMethod = "close", name = BeanNames.COUCHBASE_BUCKET) public Bucket couchbaseClient() throws Exception { //@Bean method can use another @Bean method in the same @Configuration by directly invoking it - Cluster cluster = couchbaseCluster(); - - if(!getUsername().contentEquals(getBucketName())){ - cluster.authenticate(getUsername(), getBucketPassword()); - } else if (!getBucketPassword().isEmpty()) { - return cluster.openBucket(getBucketName(), getBucketPassword()); - } - return cluster.openBucket(getBucketName()); + return couchbaseCluster().openBucket(getBucketName(), getBucketPassword()); } } \ No newline at end of file diff --git a/src/main/java/org/springframework/data/couchbase/config/AbstractReactiveCouchbaseConfiguration.java b/src/main/java/org/springframework/data/couchbase/config/AbstractReactiveCouchbaseConfiguration.java index 8855126b..8c2a662c 100644 --- a/src/main/java/org/springframework/data/couchbase/config/AbstractReactiveCouchbaseConfiguration.java +++ b/src/main/java/org/springframework/data/couchbase/config/AbstractReactiveCouchbaseConfiguration.java @@ -54,16 +54,9 @@ public abstract class AbstractReactiveCouchbaseConfiguration protected abstract String getBucketName(); /** - * The user of the bucket. Override the method for users in Couchbase Server 5.0+. + * The password of the bucket (can be an empty string). * - * @return the user name. - */ - protected String getUsername() { return getBucketName(); } - - /** - * The password of the bucket/User of the bucket (can be an empty string). - * - * @return the password of the bucket/user. + * @return the password of the bucket. */ protected abstract String getBucketPassword(); @@ -120,7 +113,7 @@ public abstract class AbstractReactiveCouchbaseConfiguration @Override @Bean(name = BeanNames.COUCHBASE_CLUSTER_INFO) public ClusterInfo couchbaseClusterInfo() throws Exception { - return couchbaseCluster().clusterManager(getUsername(), getBucketPassword()).info(); + return couchbaseCluster().clusterManager(getBucketName(), getBucketPassword()).info(); } /** @@ -132,13 +125,6 @@ public abstract class AbstractReactiveCouchbaseConfiguration @Bean(destroyMethod = "close", name = BeanNames.COUCHBASE_BUCKET) public Bucket couchbaseClient() throws Exception { //@Bean method can use another @Bean method in the same @Configuration by directly invoking it - Cluster cluster = couchbaseCluster(); - - if(!getUsername().contentEquals(getBucketName())){ - cluster.authenticate(getUsername(), getBucketPassword()); - } else if (!getBucketPassword().isEmpty()) { - return cluster.openBucket(getBucketName(), getBucketPassword()); - } - return cluster.openBucket(getBucketName()); + return couchbaseCluster().openBucket(getBucketName(), getBucketPassword()); } } \ No newline at end of file diff --git a/src/main/java/org/springframework/data/couchbase/config/CouchbaseBucketFactoryBean.java b/src/main/java/org/springframework/data/couchbase/config/CouchbaseBucketFactoryBean.java index 20814ab9..a4dd771e 100644 --- a/src/main/java/org/springframework/data/couchbase/config/CouchbaseBucketFactoryBean.java +++ b/src/main/java/org/springframework/data/couchbase/config/CouchbaseBucketFactoryBean.java @@ -30,30 +30,27 @@ import org.springframework.data.couchbase.core.CouchbaseExceptionTranslator; * {@link Cluster} reference. * * @author Simon Baslé - * @author Subhashni Balakrishnan */ public class CouchbaseBucketFactoryBean extends AbstractFactoryBean implements PersistenceExceptionTranslator { private final Cluster cluster; private final String bucketName; - private final String username; - private final String password; + private final String bucketPassword; private final PersistenceExceptionTranslator exceptionTranslator = new CouchbaseExceptionTranslator(); public CouchbaseBucketFactoryBean(Cluster cluster) { - this(cluster, null, null, null); + this(cluster, null, null); } public CouchbaseBucketFactoryBean(Cluster cluster, String bucketName) { - this(cluster, bucketName, bucketName, null); + this(cluster, bucketName, null); } - public CouchbaseBucketFactoryBean(Cluster cluster, String bucketName, String username, String password) { + public CouchbaseBucketFactoryBean(Cluster cluster, String bucketName, String bucketPassword) { this.cluster = cluster; this.bucketName = bucketName; - this.username = username; - this.password = password; + this.bucketPassword = bucketPassword; } @Override @@ -66,15 +63,11 @@ public class CouchbaseBucketFactoryBean extends AbstractFactoryBean impl if (bucketName == null) { return cluster.openBucket(); } - else if (password == null) { + else if (bucketPassword == null) { return cluster.openBucket(bucketName); } - else if (bucketName.contentEquals(username)) { - return cluster.openBucket(bucketName, password); - } else { - cluster.authenticate(username, password); - return cluster.openBucket(bucketName); + return cluster.openBucket(bucketName, bucketPassword); } } diff --git a/src/main/java/org/springframework/data/couchbase/config/CouchbaseBucketParser.java b/src/main/java/org/springframework/data/couchbase/config/CouchbaseBucketParser.java index 9d587e18..431b2456 100644 --- a/src/main/java/org/springframework/data/couchbase/config/CouchbaseBucketParser.java +++ b/src/main/java/org/springframework/data/couchbase/config/CouchbaseBucketParser.java @@ -30,7 +30,7 @@ import org.springframework.util.StringUtils; * The parser for XML definition of a {@link Bucket}, to be constructed from a {@link Cluster} reference. * If no reference is given, the default reference {@value BeanNames#COUCHBASE_CLUSTER} is used. * - * See attributes {@link #CLUSTER_REF_ATTR}, {@link #BUCKETNAME_ATTR}, {@link #USERNAME_ATTR} and {@link #BUCKETPASSWORD_ATTR}. + * See attributes {@link #CLUSTER_REF_ATTR}, {@link #BUCKETNAME_ATTR} and {@link #BUCKETPASSWORD_ATTR}. * * @author Simon Baslé */ @@ -46,13 +46,8 @@ public class CouchbaseBucketParser extends AbstractSingleBeanDefinitionParser { */ public static final String BUCKETNAME_ATTR = "bucketName"; - /* - * The username attribute in a bucket definition defines the user of the bucket to open. - */ - public static final String USERNAME_ATTR = "username"; - /** - * The bucketPassword attribute in a bucket definition defines the password of the bucket/user of the bucket to open. + * The bucketPassword attribute in a bucket definition defines the password of the bucket to open. */ public static final String BUCKETPASSWORD_ATTR = "bucketPassword"; @@ -100,14 +95,9 @@ public class CouchbaseBucketParser extends AbstractSingleBeanDefinitionParser { builder.addConstructorArgValue(bucketName); } - String username = element.getAttribute(USERNAME_ATTR); - if (StringUtils.hasText(username)) { - builder.addConstructorArgValue(username); - } - - String password = element.getAttribute(BUCKETPASSWORD_ATTR); - if (StringUtils.hasText(password)) { - builder.addConstructorArgValue(password); + String bucketPassword = element.getAttribute(BUCKETPASSWORD_ATTR); + if (StringUtils.hasText(bucketPassword)) { + builder.addConstructorArgValue(bucketPassword); } } } diff --git a/src/main/resources/org/springframework/data/couchbase/config/spring-couchbase-2.0.xsd b/src/main/resources/org/springframework/data/couchbase/config/spring-couchbase-2.0.xsd index b0673cca..d33e3b65 100644 --- a/src/main/resources/org/springframework/data/couchbase/config/spring-couchbase-2.0.xsd +++ b/src/main/resources/org/springframework/data/couchbase/config/spring-couchbase-2.0.xsd @@ -36,7 +36,6 @@ - diff --git a/src/test/java/org/springframework/data/couchbase/config/CouchbaseBucketParserTest.java b/src/test/java/org/springframework/data/couchbase/config/CouchbaseBucketParserTest.java index 79b2673e..dfa24b45 100644 --- a/src/test/java/org/springframework/data/couchbase/config/CouchbaseBucketParserTest.java +++ b/src/test/java/org/springframework/data/couchbase/config/CouchbaseBucketParserTest.java @@ -108,7 +108,7 @@ public class CouchbaseBucketParserTest { BeanDefinition def = factory.getBeanDefinition("bucketWithNameAndPassword"); assertThat(def, is(notNullValue())); - assertThat(def.getConstructorArgumentValues().getArgumentCount(), is(equalTo(4))); + assertThat(def.getConstructorArgumentValues().getArgumentCount(), is(equalTo(3))); assertThat(def.getPropertyValues().size(), is(equalTo(0))); ConstructorArgumentValues.ValueHolder holder = def.getConstructorArgumentValues() @@ -123,15 +123,8 @@ public class CouchbaseBucketParserTest { assertThat(nameHolder.getValue(), is(instanceOf(String.class))); assertThat(nameHolder.getValue().toString(), is((equalTo("test")))); - - ConstructorArgumentValues.ValueHolder usernameHolder = def.getConstructorArgumentValues() - .getArgumentValue(2, Object.class); - assertThat(usernameHolder.getValue(), is(instanceOf(String.class))); - assertThat(usernameHolder.getValue().toString(), is((equalTo("testuser")))); - - ConstructorArgumentValues.ValueHolder passwordHolder = def.getConstructorArgumentValues() - .getArgumentValue(3, Object.class); + .getArgumentValue(2, Object.class); assertThat(passwordHolder.getValue(), is(instanceOf(String.class))); assertThat(passwordHolder.getValue().toString(), is((equalTo("123")))); } diff --git a/src/test/resources/configurations/couchbaseBucket-bean.xml b/src/test/resources/configurations/couchbaseBucket-bean.xml index 31b9393e..2c7e9e4d 100644 --- a/src/test/resources/configurations/couchbaseBucket-bean.xml +++ b/src/test/resources/configurations/couchbaseBucket-bean.xml @@ -14,6 +14,6 @@ - + \ No newline at end of file