diff --git a/pom.xml b/pom.xml
index df2fa5f47..e340372a8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,11 +4,12 @@
4.0.0
org.springframework.data
- spring-data-couchbase
+ spring-data-couchbase-parent
5.4.0-SNAPSHOT
+ pom
- Spring Data Couchbase
- Spring Data integration for Couchbase
+ Spring Data Couchbase Parent
+ Spring Data integration for Couchbase - Parent
https://github.com/spring-projects/spring-data-couchbase
@@ -17,14 +18,12 @@
3.4.0-SNAPSHOT
+
3.7.4
3.4.0-SNAPSHOT
spring.data.couchbase
7.0.1.Final
- 3.1.0
- 2.10.13
- 2.13.4
4.0.0
@@ -42,53 +41,6 @@
-
- com.querydsl
- querydsl-apt
- ${querydsl}
- jakarta
-
-
- javax.inject
- javax.inject
-
-
-
-
-
- javax.inject
- javax.inject
- 1
- test
-
-
-
- org.springframework
- spring-context-support
-
-
-
- org.springframework
- spring-web
-
-
-
- org.springframework
- spring-tx
-
-
-
- ${project.groupId}
- spring-data-commons
- ${springdata.commons}
-
-
-
- com.couchbase.client
- java-client
- ${couchbase}
-
-
jakarta.enterprise
@@ -125,6 +77,7 @@
test
+
+
org.testcontainers
@@ -151,6 +107,7 @@
+
+
@@ -247,116 +207,96 @@
test
+
+
+ spring-data-couchbase
+ spring-data-couchbase-querydsl
+ spring-data-couchbase-testutils
+
+
- org.apache.maven.plugins
- maven-compiler-plugin
-
- none
-
-
-
- test-annotation-processing
- generate-test-sources
-
- testCompile
-
-
- only
-
- org.springframework.data.couchbase.repository.support.CouchbaseAnnotationProcessor
-
- target/generated-test-sources
-
- -Aquerydsl.logInfo=true
-
-
-
-
-
-
-
- org.apache.maven.plugins
maven-surefire-plugin
+ 3.3.0
- false
- false
+ false
+ **/*.scala
+ **/*Spec.class
**/*Test.java
- **/*Tests.java
-
- **/*IntegrationTest.java
- **/*IntegrationTests.java
-
+ flaky
org.apache.maven.plugins
maven-failsafe-plugin
+ 3.3.0
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+
+
+
- org.apache.maven.plugins
- maven-assembly-plugin
-
-
- org.apache.maven.plugins
- maven-javadoc-plugin
+ org.codehaus.mojo
+ exec-maven-plugin
+ 1.3.2
- true
+ true
+ java
-
- antora-process-resources
-
-
-
- src/main/antora/resources/antora-resources
- true
-
-
-
-
-
- antora
-
-
-
- org.antora
- antora-maven-plugin
-
-
-
-
diff --git a/spring-data-couchbase-querydsl/pom.xml b/spring-data-couchbase-querydsl/pom.xml
new file mode 100644
index 000000000..3f6466caa
--- /dev/null
+++ b/spring-data-couchbase-querydsl/pom.xml
@@ -0,0 +1,214 @@
+
+
+
+ 4.0.0
+
+ org.springframework.data
+ spring-data-couchbase-querydsl
+ 5.4.0-SNAPSHOT
+
+ Spring Data Couchbase Querydsl
+ Spring Data integration for Couchbase
+ https://github.com/spring-projects/spring-data-couchbase
+
+
+ org.springframework.data
+ spring-data-couchbase-parent
+ 5.4.0-SNAPSHOT
+
+
+
+ 3.7.4
+ 3.4.0-SNAPSHOT
+ spring.data.couchbase
+ 7.0.1.Final
+
+
+
+
+
+ org.testcontainers
+ testcontainers-bom
+ ${testcontainers}
+ pom
+ import
+
+
+
+
+
+
+
+ com.querydsl
+ querydsl-apt
+ ${querydsl}
+ jakarta
+
+
+ javax.inject
+ javax.inject
+
+
+
+
+
+ org.springframework.data
+ spring-data-couchbase
+ 5.4.0-SNAPSHOT
+
+
+
+ org.springframework.data
+ spring-data-couchbase-testutils
+ 0.0.99
+ test
+
+
+
+ javax.inject
+ javax.inject
+ 1
+ test
+
+
+
+ com.couchbase.client
+ java-client
+ ${couchbase}
+
+
+
+
+ jakarta.validation
+ jakarta.validation-api
+ ${validation}
+ true
+
+
+
+ jakarta.el
+ jakarta.el-api
+ ${jakarta.el}
+ provided
+ true
+
+
+
+ org.glassfish
+ jakarta.el
+ ${jakarta.el}
+ provided
+ true
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+ none
+
+
+
+ test-annotation-processing
+ generate-test-sources
+
+ testCompile
+
+
+ only
+
+ org.springframework.data.couchbase.repository.support.CouchbaseAnnotationProcessor
+
+ target/generated-test-sources
+
+ -Aquerydsl.logInfo=true
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+ false
+ false
+
+ **/*Test.java
+ **/*Tests.java
+
+
+ **/*IntegrationTest.java
+ **/*IntegrationTests.java
+
+
+
+
+ org.apache.maven.plugins
+ maven-failsafe-plugin
+
+ false
+
+ **/*IntegrationTest.java
+ **/*IntegrationTests.java
+
+
+
+
+
+ integration-test
+ verify
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+
+ true
+
+
+
+
+
+
+
+ antora-process-resources
+
+
+
+ src/main/antora/resources/antora-resources
+ true
+
+
+
+
+
+
+
+
+ spring-snapshot
+ https://repo.spring.io/snapshot
+
+ true
+
+
+ false
+
+
+
+ spring-milestone
+ https://repo.spring.io/milestone
+
+
+
diff --git a/src/main/java/org/springframework/data/couchbase/querydsl/document/AbstractCouchbaseQueryDSL.java b/spring-data-couchbase-querydsl/src/main/java/org/springframework/data/couchbase/querydsl/document/AbstractCouchbaseQueryDSL.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/querydsl/document/AbstractCouchbaseQueryDSL.java
rename to spring-data-couchbase-querydsl/src/main/java/org/springframework/data/couchbase/querydsl/document/AbstractCouchbaseQueryDSL.java
diff --git a/src/main/java/org/springframework/data/couchbase/querydsl/document/CouchbaseDocumentSerializer.java b/spring-data-couchbase-querydsl/src/main/java/org/springframework/data/couchbase/querydsl/document/CouchbaseDocumentSerializer.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/querydsl/document/CouchbaseDocumentSerializer.java
rename to spring-data-couchbase-querydsl/src/main/java/org/springframework/data/couchbase/querydsl/document/CouchbaseDocumentSerializer.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/support/CouchbaseAnnotationProcessor.java b/spring-data-couchbase-querydsl/src/main/java/org/springframework/data/couchbase/repository/support/CouchbaseAnnotationProcessor.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/support/CouchbaseAnnotationProcessor.java
rename to spring-data-couchbase-querydsl/src/main/java/org/springframework/data/couchbase/repository/support/CouchbaseAnnotationProcessor.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/support/QuerydslCouchbasePredicateExecutor.java b/spring-data-couchbase-querydsl/src/main/java/org/springframework/data/couchbase/repository/support/QuerydslCouchbasePredicateExecutor.java
similarity index 98%
rename from src/main/java/org/springframework/data/couchbase/repository/support/QuerydslCouchbasePredicateExecutor.java
rename to spring-data-couchbase-querydsl/src/main/java/org/springframework/data/couchbase/repository/support/QuerydslCouchbasePredicateExecutor.java
index 8b7cf9380..bdf7ec6ed 100644
--- a/src/main/java/org/springframework/data/couchbase/repository/support/QuerydslCouchbasePredicateExecutor.java
+++ b/spring-data-couchbase-querydsl/src/main/java/org/springframework/data/couchbase/repository/support/QuerydslCouchbasePredicateExecutor.java
@@ -44,6 +44,7 @@
/**
* Couchbase-specific {@link QuerydslPredicateExecutor} that allows execution {@link Predicate}s in various forms.
+ * This is referenced by reflection in {@link CouchbaseRepositoryFactory}
*
* @author Michael Reiche
* @since 5.0
@@ -57,6 +58,7 @@ public class QuerydslCouchbasePredicateExecutor extends QuerydslPredicateExec
* Creates a new {@link QuerydslCouchbasePredicateExecutor} for the given {@link CouchbaseEntityInformation} and
* {@link CouchbaseOperations}. Uses the {@link SimpleEntityPathResolver} to create an {@link EntityPath} for the
* given domain class.
+ * This is referenced by reflection in {@link CouchbaseRepositoryFactory}
*
* @param entityInformation must not be {@literal null}.
* @param couchbaseOperations must not be {@literal null}.
diff --git a/src/main/java/org/springframework/data/couchbase/repository/support/QuerydslPredicateExecutorSupport.java b/spring-data-couchbase-querydsl/src/main/java/org/springframework/data/couchbase/repository/support/QuerydslPredicateExecutorSupport.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/support/QuerydslPredicateExecutorSupport.java
rename to spring-data-couchbase-querydsl/src/main/java/org/springframework/data/couchbase/repository/support/QuerydslPredicateExecutorSupport.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/support/SpringDataCouchbaseQuery.java b/spring-data-couchbase-querydsl/src/main/java/org/springframework/data/couchbase/repository/support/SpringDataCouchbaseQuery.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/support/SpringDataCouchbaseQuery.java
rename to spring-data-couchbase-querydsl/src/main/java/org/springframework/data/couchbase/repository/support/SpringDataCouchbaseQuery.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/support/SpringDataCouchbaseQuerySupport.java b/spring-data-couchbase-querydsl/src/main/java/org/springframework/data/couchbase/repository/support/SpringDataCouchbaseQuerySupport.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/support/SpringDataCouchbaseQuerySupport.java
rename to spring-data-couchbase-querydsl/src/main/java/org/springframework/data/couchbase/repository/support/SpringDataCouchbaseQuerySupport.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/support/SpringDataCouchbaseSerializer.java b/spring-data-couchbase-querydsl/src/main/java/org/springframework/data/couchbase/repository/support/SpringDataCouchbaseSerializer.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/support/SpringDataCouchbaseSerializer.java
rename to spring-data-couchbase-querydsl/src/main/java/org/springframework/data/couchbase/repository/support/SpringDataCouchbaseSerializer.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/Airline.java b/spring-data-couchbase-querydsl/src/test/java/org/springframework/data/couchbase/domain/Airline.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/Airline.java
rename to spring-data-couchbase-querydsl/src/test/java/org/springframework/data/couchbase/domain/Airline.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/AirlineCollectioned.java b/spring-data-couchbase-querydsl/src/test/java/org/springframework/data/couchbase/domain/AirlineCollectioned.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/AirlineCollectioned.java
rename to spring-data-couchbase-querydsl/src/test/java/org/springframework/data/couchbase/domain/AirlineCollectioned.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/AirlineCollectionedRepository.java b/spring-data-couchbase-querydsl/src/test/java/org/springframework/data/couchbase/domain/AirlineCollectionedRepository.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/AirlineCollectionedRepository.java
rename to spring-data-couchbase-querydsl/src/test/java/org/springframework/data/couchbase/domain/AirlineCollectionedRepository.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/AirlineRepository.java b/spring-data-couchbase-querydsl/src/test/java/org/springframework/data/couchbase/domain/AirlineRepository.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/AirlineRepository.java
rename to spring-data-couchbase-querydsl/src/test/java/org/springframework/data/couchbase/domain/AirlineRepository.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/ComparableEntity.java b/spring-data-couchbase-querydsl/src/test/java/org/springframework/data/couchbase/domain/ComparableEntity.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/ComparableEntity.java
rename to spring-data-couchbase-querydsl/src/test/java/org/springframework/data/couchbase/domain/ComparableEntity.java
diff --git a/spring-data-couchbase-querydsl/src/test/java/org/springframework/data/couchbase/domain/Config.java b/spring-data-couchbase-querydsl/src/test/java/org/springframework/data/couchbase/domain/Config.java
new file mode 100644
index 000000000..a318af578
--- /dev/null
+++ b/spring-data-couchbase-querydsl/src/test/java/org/springframework/data/couchbase/domain/Config.java
@@ -0,0 +1,207 @@
+/*
+ * Copyright 2012-2024 the original author or authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.springframework.data.couchbase.domain;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.springframework.cache.annotation.EnableCaching;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.data.auditing.DateTimeProvider;
+import org.springframework.data.couchbase.CouchbaseClientFactory;
+import org.springframework.data.couchbase.SimpleCouchbaseClientFactory;
+import org.springframework.data.couchbase.cache.CouchbaseCacheManager;
+import org.springframework.data.couchbase.config.AbstractCouchbaseConfiguration;
+import org.springframework.data.couchbase.core.CouchbaseTemplate;
+import org.springframework.data.couchbase.core.ReactiveCouchbaseTemplate;
+import org.springframework.data.couchbase.core.convert.CouchbaseCustomConversions;
+import org.springframework.data.couchbase.core.convert.MappingCouchbaseConverter;
+import org.springframework.data.couchbase.core.convert.translation.JacksonTranslationService;
+import org.springframework.data.couchbase.core.convert.translation.TranslationService;
+import org.springframework.data.couchbase.core.mapping.CouchbaseMappingContext;
+
+import org.springframework.data.couchbase.repository.auditing.EnableCouchbaseAuditing;
+import org.springframework.data.couchbase.repository.auditing.EnableReactiveCouchbaseAuditing;
+import org.springframework.data.couchbase.repository.config.EnableCouchbaseRepositories;
+import org.springframework.data.couchbase.repository.config.EnableReactiveCouchbaseRepositories;
+import org.springframework.data.couchbase.repository.config.ReactiveRepositoryOperationsMapping;
+import org.springframework.data.couchbase.repository.config.RepositoryOperationsMapping;
+
+import com.couchbase.client.core.deps.com.fasterxml.jackson.databind.DeserializationFeature;
+import com.couchbase.client.core.deps.io.netty.handler.ssl.util.InsecureTrustManagerFactory;
+import com.couchbase.client.core.env.SecurityConfig;
+import com.couchbase.client.java.env.ClusterEnvironment;
+import com.couchbase.client.java.json.JacksonTransformers;
+
+/**
+ * @author Michael Nitschinger
+ * @author Michael Reiche
+ * @author Jorge Rodriguez Martin
+ * @since 3.0
+ */
+@Configuration
+@EnableCouchbaseRepositories
+@EnableReactiveCouchbaseRepositories
+@EnableCouchbaseAuditing(dateTimeProviderRef = "dateTimeProviderRef")
+@EnableReactiveCouchbaseAuditing(dateTimeProviderRef = "dateTimeProviderRef")
+@EnableCaching
+public class Config extends AbstractCouchbaseConfiguration {
+ String bucketname = "travel-sample";
+ String username = "Administrator";
+ String password = "password";
+ String connectionString = "127.0.0.1";
+
+ // if running a clusterAwareIntegrationTests, use those properties
+ static Class clusterAware = null;
+
+ static {
+ try {
+ clusterAware = Class.forName("org.springframework.data.couchbase.util.ClusterAwareIntegrationTests");
+ if (clusterAware.getMethod("config").invoke(null) == null)
+ clusterAware = null;
+ } catch (ClassNotFoundException | NoSuchMethodException | IllegalAccessException | InvocationTargetException e) {
+ e.printStackTrace();
+ }
+ }
+
+ String clusterGet(String methodName, String defaultValue) {
+ if (clusterAware != null) {
+ try {
+ return (String) clusterAware.getMethod(methodName).invoke(null);
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+ return defaultValue;
+ }
+
+ @Override
+ public String getConnectionString() {
+ return clusterGet("connectionString", connectionString);
+ }
+
+ @Override
+ public String getUserName() {
+ return clusterGet("username", username);
+ }
+
+ @Override
+ public String getPassword() {
+ return clusterGet("password", password);
+ }
+
+ @Override
+ public String getBucketName() {
+ return clusterGet("bucketName", bucketname);
+ }
+
+ @Override
+ protected void configureEnvironment(ClusterEnvironment.Builder builder) {
+ if (getConnectionString().contains("cloud.couchbase.com")) {
+ builder.securityConfig(
+ SecurityConfig.builder().trustManagerFactory(InsecureTrustManagerFactory.INSTANCE).enableTls(true));
+ }
+ }
+
+
+ @Override
+ public void configureReactiveRepositoryOperationsMapping(ReactiveRepositoryOperationsMapping baseMapping) {
+ try {
+ // comment out references to 'protected' and 'mybucket' - they are only to show how multi-bucket would work
+ // ReactiveCouchbaseTemplate personTemplate = myReactiveCouchbaseTemplate(myCouchbaseClientFactory("protected"),
+ // (MappingCouchbaseConverter) (baseMapping.getDefault().getConverter()));
+ // baseMapping.mapEntity(Person.class, personTemplate); // Person goes in "protected" bucket
+ // ReactiveCouchbaseTemplate userTemplate = myReactiveCouchbaseTemplate(myCouchbaseClientFactory("mybucket"),
+ // (MappingCouchbaseConverter) (baseMapping.getDefault().getConverter()));
+ // baseMapping.mapEntity(User.class, userTemplate); // User goes in "mybucket"
+ // everything else goes in getBucketName() ( which is travel-sample )
+ } catch (Exception e) {
+ throw e;
+ }
+ }
+
+ @Override
+ public void configureRepositoryOperationsMapping(RepositoryOperationsMapping baseMapping) {
+ try {
+ // comment out references to 'protected' and 'mybucket' - they are only to show how multi-bucket would work
+ // CouchbaseTemplate personTemplate = myCouchbaseTemplate(myCouchbaseClientFactory("protected"),
+ // (MappingCouchbaseConverter) (baseMapping.getDefault().getConverter()));
+ // baseMapping.mapEntity(Person.class, personTemplate); // Person goes in "protected" bucket
+ // MappingCouchbaseConverter cvtr = (MappingCouchbaseConverter)baseMapping.getDefault().getConverter();
+ // CouchbaseTemplate userTemplate = myCouchbaseTemplate(myCouchbaseClientFactory("mybucket"),
+ // (MappingCouchbaseConverter) (baseMapping.getDefault().getConverter()));
+ // baseMapping.mapEntity(User.class, userTemplate); // User goes in "mybucket"
+ // everything else goes in getBucketName() ( which is travel-sample )
+ } catch (Exception e) {
+ throw e;
+ }
+ }
+
+ // do not use reactiveCouchbaseTemplate for the name of this method, otherwise the value of that bean
+ // will be used instead of the result of this call (the client factory arg is different)
+ public ReactiveCouchbaseTemplate myReactiveCouchbaseTemplate(CouchbaseClientFactory couchbaseClientFactory,
+ MappingCouchbaseConverter mappingCouchbaseConverter) {
+ return new ReactiveCouchbaseTemplate(couchbaseClientFactory, mappingCouchbaseConverter,
+ new JacksonTranslationService(), getDefaultConsistency());
+ }
+
+ // do not use couchbaseTemplate for the name of this method, otherwise the value of that been
+ // will be used instead of the result from this call (the client factory arg is different)
+ public CouchbaseTemplate myCouchbaseTemplate(CouchbaseClientFactory couchbaseClientFactory,
+ MappingCouchbaseConverter mappingCouchbaseConverter) {
+ return new CouchbaseTemplate(couchbaseClientFactory, mappingCouchbaseConverter, new JacksonTranslationService(),
+ getDefaultConsistency());
+ }
+
+ // do not use couchbaseClientFactory for the name of this method, otherwise the value of that bean will
+ // will be used instead of this call being made ( bucketname is an arg here, instead of using bucketName() )
+ public CouchbaseClientFactory myCouchbaseClientFactory(String bucketName) {
+ return new SimpleCouchbaseClientFactory(getConnectionString(), authenticator(), bucketName);
+ }
+
+
+
+ @Override
+ @Bean(name = "couchbaseTranslationService")
+ public TranslationService couchbaseTranslationService() {
+ final JacksonTranslationService jacksonTranslationService = new JacksonTranslationService();
+ jacksonTranslationService.afterPropertiesSet();
+
+ // for sdk3, we need to ask the mapper _it_ uses to ignore extra fields...
+ JacksonTransformers.MAPPER.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ return jacksonTranslationService;
+ }
+
+ @Bean
+ public CouchbaseCacheManager cacheManager(CouchbaseTemplate couchbaseTemplate) throws Exception {
+ CouchbaseCacheManager.CouchbaseCacheManagerBuilder builder = CouchbaseCacheManager.CouchbaseCacheManagerBuilder
+ .fromConnectionFactory(couchbaseTemplate.getCouchbaseClientFactory());
+ return builder.build();
+ }
+
+ @Override
+ public String typeKey() {
+ return "t"; // this will override '_class', is passed in to new CustomMappingCouchbaseConverter
+ }
+
+ static String scopeName = null;
+
+ @Override
+ protected String getScopeName() {
+ return scopeName;
+ }
+}
diff --git a/src/test/java/org/springframework/data/couchbase/domain/NaiveAuditorAware.java b/spring-data-couchbase-querydsl/src/test/java/org/springframework/data/couchbase/domain/NaiveAuditorAware.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/NaiveAuditorAware.java
rename to spring-data-couchbase-querydsl/src/test/java/org/springframework/data/couchbase/domain/NaiveAuditorAware.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/ReactiveNaiveAuditorAware.java b/spring-data-couchbase-querydsl/src/test/java/org/springframework/data/couchbase/domain/ReactiveNaiveAuditorAware.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/ReactiveNaiveAuditorAware.java
rename to spring-data-couchbase-querydsl/src/test/java/org/springframework/data/couchbase/domain/ReactiveNaiveAuditorAware.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/time/AuditingDateTimeProvider.java b/spring-data-couchbase-querydsl/src/test/java/org/springframework/data/couchbase/domain/time/AuditingDateTimeProvider.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/time/AuditingDateTimeProvider.java
rename to spring-data-couchbase-querydsl/src/test/java/org/springframework/data/couchbase/domain/time/AuditingDateTimeProvider.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/time/CurrentDateTimeService.java b/spring-data-couchbase-querydsl/src/test/java/org/springframework/data/couchbase/domain/time/CurrentDateTimeService.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/time/CurrentDateTimeService.java
rename to spring-data-couchbase-querydsl/src/test/java/org/springframework/data/couchbase/domain/time/CurrentDateTimeService.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/time/DateTimeService.java b/spring-data-couchbase-querydsl/src/test/java/org/springframework/data/couchbase/domain/time/DateTimeService.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/time/DateTimeService.java
rename to spring-data-couchbase-querydsl/src/test/java/org/springframework/data/couchbase/domain/time/DateTimeService.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/time/FixedDateTimeService.java b/spring-data-couchbase-querydsl/src/test/java/org/springframework/data/couchbase/domain/time/FixedDateTimeService.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/time/FixedDateTimeService.java
rename to spring-data-couchbase-querydsl/src/test/java/org/springframework/data/couchbase/domain/time/FixedDateTimeService.java
diff --git a/src/test/java/org/springframework/data/couchbase/repository/query/CouchbaseRepositoryCollectionQuerydslIntegrationTests.java b/spring-data-couchbase-querydsl/src/test/java/org/springframework/data/couchbase/repository/query/CouchbaseRepositoryCollectionQuerydslIntegrationTests.java
similarity index 97%
rename from src/test/java/org/springframework/data/couchbase/repository/query/CouchbaseRepositoryCollectionQuerydslIntegrationTests.java
rename to spring-data-couchbase-querydsl/src/test/java/org/springframework/data/couchbase/repository/query/CouchbaseRepositoryCollectionQuerydslIntegrationTests.java
index eeba5536a..2513535ec 100644
--- a/src/test/java/org/springframework/data/couchbase/repository/query/CouchbaseRepositoryCollectionQuerydslIntegrationTests.java
+++ b/spring-data-couchbase-querydsl/src/test/java/org/springframework/data/couchbase/repository/query/CouchbaseRepositoryCollectionQuerydslIntegrationTests.java
@@ -24,10 +24,12 @@
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
+import org.springframework.data.auditing.DateTimeProvider;
import org.springframework.data.couchbase.core.CouchbaseTemplate;
import org.springframework.data.couchbase.core.mapping.event.ValidatingCouchbaseEventListener;
import org.springframework.data.couchbase.core.query.QueryCriteriaDefinition;
import org.springframework.data.couchbase.domain.*;
+import org.springframework.data.couchbase.domain.time.AuditingDateTimeProvider;
import org.springframework.data.couchbase.repository.auditing.EnableCouchbaseAuditing;
import org.springframework.data.couchbase.repository.auditing.EnableReactiveCouchbaseAuditing;
import org.springframework.data.couchbase.repository.config.EnableCouchbaseRepositories;
@@ -621,6 +623,21 @@ public LocalValidatorFactoryBean validator() {
public ValidatingCouchbaseEventListener validationEventListener() {
return new ValidatingCouchbaseEventListener(validator());
}
+
+ @Bean(name = "auditorAwareRef")
+ public NaiveAuditorAware testAuditorAware() {
+ return new NaiveAuditorAware();
+ }
+
+ @Bean(name = "reactiveAuditorAwareRef")
+ public ReactiveNaiveAuditorAware testReactiveAuditorAware() {
+ return new ReactiveNaiveAuditorAware();
+ }
+
+ @Bean(name = "dateTimeProviderRef")
+ public DateTimeProvider testDateTimeProvider() {
+ return new AuditingDateTimeProvider();
+ }
}
String bq(Predicate predicate) {
diff --git a/src/test/java/org/springframework/data/couchbase/repository/query/CouchbaseRepositoryQuerydslIntegrationTests.java b/spring-data-couchbase-querydsl/src/test/java/org/springframework/data/couchbase/repository/query/CouchbaseRepositoryQuerydslIntegrationTests.java
similarity index 97%
rename from src/test/java/org/springframework/data/couchbase/repository/query/CouchbaseRepositoryQuerydslIntegrationTests.java
rename to spring-data-couchbase-querydsl/src/test/java/org/springframework/data/couchbase/repository/query/CouchbaseRepositoryQuerydslIntegrationTests.java
index 95d0cd912..da649d28e 100644
--- a/src/test/java/org/springframework/data/couchbase/repository/query/CouchbaseRepositoryQuerydslIntegrationTests.java
+++ b/spring-data-couchbase-querydsl/src/test/java/org/springframework/data/couchbase/repository/query/CouchbaseRepositoryQuerydslIntegrationTests.java
@@ -39,12 +39,16 @@
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
+import org.springframework.data.auditing.DateTimeProvider;
import org.springframework.data.couchbase.core.CouchbaseTemplate;
import org.springframework.data.couchbase.core.mapping.event.ValidatingCouchbaseEventListener;
import org.springframework.data.couchbase.core.query.QueryCriteriaDefinition;
import org.springframework.data.couchbase.domain.Airline;
import org.springframework.data.couchbase.domain.AirlineRepository;
+import org.springframework.data.couchbase.domain.NaiveAuditorAware;
import org.springframework.data.couchbase.domain.QAirline;
+import org.springframework.data.couchbase.domain.ReactiveNaiveAuditorAware;
+import org.springframework.data.couchbase.domain.time.AuditingDateTimeProvider;
import org.springframework.data.couchbase.repository.auditing.EnableCouchbaseAuditing;
import org.springframework.data.couchbase.repository.auditing.EnableReactiveCouchbaseAuditing;
import org.springframework.data.couchbase.repository.config.EnableCouchbaseRepositories;
@@ -633,6 +637,20 @@ public LocalValidatorFactoryBean validator() {
public ValidatingCouchbaseEventListener validationEventListener() {
return new ValidatingCouchbaseEventListener(validator());
}
+ @Bean(name = "auditorAwareRef")
+ public NaiveAuditorAware testAuditorAware() {
+ return new NaiveAuditorAware();
+ }
+
+ @Bean(name = "reactiveAuditorAwareRef")
+ public ReactiveNaiveAuditorAware testReactiveAuditorAware() {
+ return new ReactiveNaiveAuditorAware();
+ }
+
+ @Bean(name = "dateTimeProviderRef")
+ public DateTimeProvider testDateTimeProvider() {
+ return new AuditingDateTimeProvider();
+ }
}
String bq(Predicate predicate) {
diff --git a/src/test/resources/integration.properties b/spring-data-couchbase-querydsl/src/test/resources/integration.properties
similarity index 96%
rename from src/test/resources/integration.properties
rename to spring-data-couchbase-querydsl/src/test/resources/integration.properties
index a4c5e6f41..510356617 100644
--- a/src/test/resources/integration.properties
+++ b/spring-data-couchbase-querydsl/src/test/resources/integration.properties
@@ -12,6 +12,7 @@ cluster.mocked.numReplicas=1
cluster.unmanaged.seed=127.0.0.1:8091
cluster.adminUsername=Administrator
cluster.adminPassword=password
+#cluster.bucket=my_bucket
#cluster.unmanaged.seed=cb.zsibzkbgllfbcj8g.cloud.couchbase.com
#cluster.adminUsername=user
#cluster.adminPassword=Couch0base!
diff --git a/spring-data-couchbase-testutils/pom.xml b/spring-data-couchbase-testutils/pom.xml
new file mode 100644
index 000000000..71e756aaa
--- /dev/null
+++ b/spring-data-couchbase-testutils/pom.xml
@@ -0,0 +1,283 @@
+
+
+
+ 4.0.0
+
+ org.springframework.data
+ spring-data-couchbase-testutils
+ 0.0.99
+
+ Spring Data Couchbase Test-Utils
+ Spring Data integration for Couchbase
+ https://github.com/spring-projects/spring-data-couchbase
+
+
+ org.springframework.data
+ spring-data-couchbase-parent
+ 5.4.0-SNAPSHOT
+
+
+
+ 3.7.4
+ 3.4.0-SNAPSHOT
+ 2.10.13
+ 2.13.4
+ 4.0.0
+ 5.9.1
+
+
+
+
+
+ org.testcontainers
+ testcontainers-bom
+ ${testcontainers}
+ pom
+ import
+
+
+
+
+
+
+
+ org.junit.jupiter
+ junit-jupiter-api
+ ${junit.version}
+
+
+
+ com.querydsl
+ querydsl-apt
+ ${querydsl}
+ jakarta
+
+
+ javax.inject
+ javax.inject
+
+
+
+
+
+ javax.inject
+ javax.inject
+ 1
+ test
+
+
+
+ org.springframework
+ spring-context-support
+
+
+
+ org.springframework
+ spring-web
+
+
+
+ org.springframework
+ spring-tx
+
+
+
+ org.springframework.data
+ spring-data-commons
+ ${springdata.commons}
+
+
+
+ com.couchbase.client
+ java-client
+ ${couchbase}
+
+
+
+
+ jakarta.enterprise
+ jakarta.enterprise.cdi-api
+ ${cdi}
+ provided
+ true
+
+
+
+ org.springframework
+ spring-test
+ ${spring}
+
+
+
+ org.hibernate.validator
+ hibernate-validator
+ 7.0.1.Final
+ test
+
+
+
+ org.apache.httpcomponents
+ httpclient
+ 4.5.13
+ test
+
+
+
+ io.projectreactor
+ reactor-test
+ test
+
+
+
+ com.fasterxml.jackson.datatype
+ jackson-datatype-joda
+ ${jackson-joda}
+ test
+
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+
+
+
+ joda-time
+ joda-time
+ ${jodatime}
+ true
+
+
+
+ org.testcontainers
+ testcontainers
+
+
+
+
+ jakarta.validation
+ jakarta.validation-api
+ ${validation}
+ true
+
+
+
+ jakarta.el
+ jakarta.el-api
+ ${jakarta.el}
+ provided
+ true
+
+
+
+ org.glassfish
+ jakarta.el
+ ${jakarta.el}
+ provided
+ true
+
+
+
+
+
+ org.apache.geronimo.specs
+ geronimo-jcdi_2.0_spec
+ 1.0.1
+ test
+
+
+
+ javax.interceptor
+ javax.interceptor-api
+ 1.2.1
+ test
+
+
+
+ org.apache.openwebbeans
+ openwebbeans-se
+ ${webbeans}
+ test
+
+
+
+ com.couchbase.mock
+ CouchbaseMock
+ 1.5.25
+
+
+
+ com.squareup.okhttp3
+ okhttp
+ 4.8.1
+
+
+
+ com.squareup.okhttp3
+ okhttp-tls
+ 4.8.1
+
+
+
+
+ org.jetbrains.kotlin
+ kotlin-stdlib
+ ${kotlin}
+ true
+
+
+
+ org.jetbrains.kotlin
+ kotlin-reflect
+ ${kotlin}
+ true
+
+
+
+ org.jetbrains.kotlin
+ kotlin-test
+ ${kotlin}
+ test
+
+
+
+ org.awaitility
+ awaitility
+ 4.0.3
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-source-plugin
+
+
+ attach-sources
+
+ jar
+
+
+
+
+
+
+
+
+
+ spring-snapshot
+ https://repo.spring.io/snapshot
+
+ true
+
+
+ false
+
+
+
+ spring-milestone
+ https://repo.spring.io/milestone
+
+
+
diff --git a/src/test/java/org/springframework/data/couchbase/util/Capabilities.java b/spring-data-couchbase-testutils/src/main/java/org/springframework/data/couchbase/util/Capabilities.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/util/Capabilities.java
rename to spring-data-couchbase-testutils/src/main/java/org/springframework/data/couchbase/util/Capabilities.java
diff --git a/src/test/java/org/springframework/data/couchbase/util/ClusterAwareIntegrationTests.java b/spring-data-couchbase-testutils/src/main/java/org/springframework/data/couchbase/util/ClusterAwareIntegrationTests.java
similarity index 63%
rename from src/test/java/org/springframework/data/couchbase/util/ClusterAwareIntegrationTests.java
rename to spring-data-couchbase-testutils/src/main/java/org/springframework/data/couchbase/util/ClusterAwareIntegrationTests.java
index c21b54ad5..dff86e5f1 100644
--- a/src/test/java/org/springframework/data/couchbase/util/ClusterAwareIntegrationTests.java
+++ b/spring-data-couchbase-testutils/src/main/java/org/springframework/data/couchbase/util/ClusterAwareIntegrationTests.java
@@ -28,6 +28,7 @@
import java.util.UUID;
import java.util.stream.Collectors;
+import com.couchbase.client.java.ClusterOptions;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeAll;
@@ -36,8 +37,6 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.couchbase.CouchbaseClientFactory;
-import org.springframework.data.couchbase.SimpleCouchbaseClientFactory;
import com.couchbase.client.core.deps.io.netty.handler.ssl.util.InsecureTrustManagerFactory;
import com.couchbase.client.core.env.Authenticator;
@@ -56,7 +55,6 @@
* Parent class which drives all dynamic integration tests based on the configured cluster setup.
*
* @author Michael Reiche
- *
* @since 2.0.0
*/
@ExtendWith(ClusterInvocationProvider.class)
@@ -71,28 +69,24 @@ public abstract class ClusterAwareIntegrationTests {
static void setup(TestClusterConfig config) {
testClusterConfig = config;
// Disabling cleanupLostAttempts to simplify output during development
- ClusterEnvironment env = ClusterEnvironment.builder()
- .transactionsConfig(TransactionsConfig.cleanupConfig(TransactionsCleanupConfig.cleanupLostAttempts(false)))
- .build();
+ ClusterEnvironment env = ClusterEnvironment.builder().transactionsConfig(
+ TransactionsConfig.cleanupConfig(TransactionsCleanupConfig.cleanupLostAttempts(false))).build();
String connectString = connectionString();
- Cluster tmpCluster = null;
- try (CouchbaseClientFactory couchbaseClientFactory = new SimpleCouchbaseClientFactory(connectString,
- authenticator(), bucketName(), null, env)) {
- tmpCluster = couchbaseClientFactory.getCluster();
- couchbaseClientFactory.getCluster().queryIndexes().createPrimaryIndex(bucketName(), CreatePrimaryQueryIndexOptions
+ Cluster tmpCluster = null;
+ try (Cluster cluster = Cluster.connect(connectString,
+ ClusterOptions.clusterOptions(authenticator()).environment(env))) {
+ cluster.queryIndexes().createPrimaryIndex(bucketName(), CreatePrimaryQueryIndexOptions
.createPrimaryQueryIndexOptions().ignoreIfExists(true).timeout(Duration.ofSeconds(300)));
// this is for the N1qlJoin test
List fieldList = new ArrayList<>();
fieldList.add("parentId");
- couchbaseClientFactory.getCluster().queryIndexes().createIndex(bucketName(), "parent_idx", fieldList,
- CreateQueryIndexOptions.createQueryIndexOptions().ignoreIfExists(true).timeout(Duration.ofSeconds(300)));
+ cluster.queryIndexes().createIndex(bucketName(), "parent_idx", fieldList, CreateQueryIndexOptions
+ .createQueryIndexOptions().ignoreIfExists(true).timeout(Duration.ofSeconds(300)));
// .with("_class", "org.springframework.data.couchbase.domain.Address"));
- logCluster(couchbaseClientFactory.getCluster(), "$");
+ logCluster(cluster, "$");
} catch (IndexFailureException ife) {
LOGGER.warn("IndexFailureException occurred - ignoring: ", ife);
- logDisconnect(tmpCluster, "IndexFailureException");
- } catch (IOException ioe) {
- throw new RuntimeException(ioe);
+ logDisconnect(tmpCluster, "IndexFailureException");
}
}
@@ -156,86 +150,88 @@ public static String connectionString() {
*/
protected static ClusterEnvironment.Builder environment() {
return config().isUsingCloud()
- ? ClusterEnvironment.builder()
- .securityConfig(SecurityConfig.trustManagerFactory(InsecureTrustManagerFactory.INSTANCE).enableTls(true))
+ ? ClusterEnvironment.builder().securityConfig(
+ SecurityConfig.trustManagerFactory(InsecureTrustManagerFactory.INSTANCE).enableTls(true))
: ClusterEnvironment.builder();
}
protected static Set seedNodes() {
- return config().nodes().stream().map(cfg -> SeedNode.create(cfg.hostname(),
- Optional.ofNullable(config().isUsingCloud() ? cfg.ports().get(Services.KV_TLS) : cfg.ports().get(Services.KV)),
- Optional.ofNullable(
- config().isUsingCloud() ? cfg.ports().get(Services.MANAGER_TLS) : cfg.ports().get(Services.MANAGER))))
+ return config().nodes().stream()
+ .map(cfg -> SeedNode.create(cfg.hostname(),
+ Optional.ofNullable(config().isUsingCloud() ? cfg.ports().get(Services.KV_TLS)
+ : cfg.ports().get(Services.KV)),
+ Optional.ofNullable(config().isUsingCloud() ? cfg.ports().get(Services.MANAGER_TLS)
+ : cfg.ports().get(Services.MANAGER))))
.collect(Collectors.toSet());
}
- static Set flagged = new HashSet<>();
+ static Set flagged = new HashSet<>();
- @AfterEach
- public void afterEach() {
- if (clusterToDisconnect == null && !flagged.contains(this.getClass().getSimpleName())) {
- flagged.add(this.getClass().getSimpleName());
- logMessage("CoreDisconnected:\"coreId\":\"" + this.getClass().getSimpleName() + "\"");
- }
- }
+ @AfterEach
+ public void afterEach() {
+ if (clusterToDisconnect == null && !flagged.contains(this.getClass().getSimpleName())) {
+ flagged.add(this.getClass().getSimpleName());
+ logMessage("CoreDisconnected:\"coreId\":\"" + this.getClass().getSimpleName() + "\"");
+ }
+ }
- @AfterAll
- public static void afterAll() {
- //if (clusterToDisconnect != null) {
- // logDisconnect(clusterToDisconnect, "$");
- // clusterToDisconnect = null;
- //} else {
- // already flaged by afterEach
- //}
- logMessage("CoreDisconnected:\"coreId\":\"------------------\"");
- callSuperAfterAll(new Object() {});
- }
+ @AfterAll
+ public static void afterAll() {
+ // if (clusterToDisconnect != null) {
+ // logDisconnect(clusterToDisconnect, "$");
+ // clusterToDisconnect = null;
+ // } else {
+ // already flaged by afterEach
+ // }
+ logMessage("CoreDisconnected:\"coreId\":\"------------------\"");
+ callSuperAfterAll(new Object() {});
+ }
- static Set disconnectedMap = new HashSet<>();
+ static Set disconnectedMap = new HashSet<>();
- public static void logCluster(Cluster cluster, String s) {
- if (cluster == null || disconnectedMap.contains(cluster.core().context().id())) {
- org.slf4j.LoggerFactory.getLogger("com.couchbase.core").info("CoreDisconnectedAutoAlready:\"coreId\":\""
- + String.format("0x%16x", 0) + "auto missed<" + s + ">\"");
- } else {
- disconnectedMap.add(cluster.core().context().id());
- org.slf4j.LoggerFactory.getLogger("com.couchbase.core").info("CoreDisconnectedAuto:\"coreId\":\""
- + String.format("0x%x", cluster.core().context().id()) + "(" + s + ")\"");
- //cluster.environment().shutdown(Duration.ofSeconds(60)); needs to happend after auto disconnect()
- }
- }
+ public static void logCluster(Cluster cluster, String s) {
+ if (cluster == null || disconnectedMap.contains(cluster.core().context().id())) {
+ org.slf4j.LoggerFactory.getLogger("com.couchbase.core").info("CoreDisconnectedAutoAlready:\"coreId\":\""
+ + String.format("0x%16x", 0) + "auto missed<" + s + ">\"");
+ } else {
+ disconnectedMap.add(cluster.core().context().id());
+ org.slf4j.LoggerFactory.getLogger("com.couchbase.core").info("CoreDisconnectedAuto:\"coreId\":\""
+ + String.format("0x%x", cluster.core().context().id()) + "(" + s + ")\"");
+ // cluster.environment().shutdown(Duration.ofSeconds(60)); needs to happend after auto disconnect()
+ }
+ }
- public static void logDisconnect(Cluster cluster, String s) {
- if (cluster == null || disconnectedMap.contains(cluster.core().context().id())) {
- org.slf4j.LoggerFactory.getLogger("com.couchbase.core").info(
- "CoreDisconnectedAlready:\"coreId\":\"" + String.format("0x%16x", 0) + " missed{" + s + "}\"");
- } else {
- disconnectedMap.add(cluster.core().context().id());
- org.slf4j.LoggerFactory.getLogger("com.couchbase.core").info("CoreDisconnected:\"coreId\":\""
- + String.format("0x%x", cluster.core().context().id()) + "[" + s + "]\"");
- cluster.disconnect();
- cluster.environment().shutdown(Duration.ofSeconds(60));
- }
- }
+ public static void logDisconnect(Cluster cluster, String s) {
+ if (cluster == null || disconnectedMap.contains(cluster.core().context().id())) {
+ org.slf4j.LoggerFactory.getLogger("com.couchbase.core").info(
+ "CoreDisconnectedAlready:\"coreId\":\"" + String.format("0x%16x", 0) + " missed{" + s + "}\"");
+ } else {
+ disconnectedMap.add(cluster.core().context().id());
+ org.slf4j.LoggerFactory.getLogger("com.couchbase.core").info("CoreDisconnected:\"coreId\":\""
+ + String.format("0x%x", cluster.core().context().id()) + "[" + s + "]\"");
+ cluster.disconnect();
+ cluster.environment().shutdown(Duration.ofSeconds(60));
+ }
+ }
- public static void logMessage(String message) {
- org.slf4j.LoggerFactory.getLogger("com.couchbase.core").info(message);
- }
+ public static void logMessage(String message) {
+ org.slf4j.LoggerFactory.getLogger("com.couchbase.core").info(message);
+ }
@BeforeAll()
public static void beforeAll() {}
@BeforeEach
- public void beforeEach() {
- clusterToDisconnect = cluster;
- }
+ public void beforeEach() {
+ clusterToDisconnect = cluster;
+ }
/**
* This should probably be the first call in the @BeforeAll method of a test class. This will call super @BeforeAll
* methods when called as callSuperBeforeAll(new Object() {}); this trickery is necessary because super.beforeAll()
- * cannot be used because it is a static method. it is possible and likely that the beforeAll() method of should still
- * be called even when a test class defines its own beforeAll() method which would hide the beforeAll() of the super
- * class. This trickery is not necessary for before/AfterEach, as those are not static methods
+ * cannot be used because it is a static method. it is possible and likely that the beforeAll() method of should
+ * still be called even when a test class defines its own beforeAll() method which would hide the beforeAll() of the
+ * super class. This trickery is not necessary for before/AfterEach, as those are not static methods
*
* @Author Michael Reiche
* @param createdHere - an object from a class defined in the calling class
diff --git a/src/test/java/org/springframework/data/couchbase/util/ClusterInvocationProvider.java b/spring-data-couchbase-testutils/src/main/java/org/springframework/data/couchbase/util/ClusterInvocationProvider.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/util/ClusterInvocationProvider.java
rename to spring-data-couchbase-testutils/src/main/java/org/springframework/data/couchbase/util/ClusterInvocationProvider.java
diff --git a/src/test/java/org/springframework/data/couchbase/util/ClusterType.java b/spring-data-couchbase-testutils/src/main/java/org/springframework/data/couchbase/util/ClusterType.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/util/ClusterType.java
rename to spring-data-couchbase-testutils/src/main/java/org/springframework/data/couchbase/util/ClusterType.java
diff --git a/src/test/java/org/springframework/data/couchbase/util/CollectionAwareDefaultScopeIntegrationTests.java b/spring-data-couchbase-testutils/src/main/java/org/springframework/data/couchbase/util/CollectionAwareDefaultScopeIntegrationTests.java
similarity index 71%
rename from src/test/java/org/springframework/data/couchbase/util/CollectionAwareDefaultScopeIntegrationTests.java
rename to spring-data-couchbase-testutils/src/main/java/org/springframework/data/couchbase/util/CollectionAwareDefaultScopeIntegrationTests.java
index 15d977ebd..fd65085e1 100644
--- a/src/test/java/org/springframework/data/couchbase/util/CollectionAwareDefaultScopeIntegrationTests.java
+++ b/spring-data-couchbase-testutils/src/main/java/org/springframework/data/couchbase/util/CollectionAwareDefaultScopeIntegrationTests.java
@@ -21,7 +21,6 @@
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
-import org.springframework.data.couchbase.domain.Config;
import com.couchbase.client.core.error.IndexExistsException;
import com.couchbase.client.core.service.ServiceType;
@@ -46,10 +45,9 @@ public class CollectionAwareDefaultScopeIntegrationTests extends JavaIntegration
@BeforeAll
public static void beforeAll() {
- callSuperBeforeAll(new Object() {
- });
+ callSuperBeforeAll(new Object() {});
Cluster cluster = Cluster.connect(connectionString(),
- ClusterOptions.clusterOptions(authenticator()).environment(environment().build()));
+ ClusterOptions.clusterOptions(authenticator()).environment(environment().build()));
Bucket bucket = cluster.bucket(config().bucketname());
bucket.waitUntilReady(Duration.ofSeconds(30));
waitForService(bucket, ServiceType.QUERY);
@@ -66,33 +64,31 @@ public static void beforeAll() {
try {
// needs an index for this N1ql Join
- // create index ix2 on my_bucket(parent_id) where `_class` = 'org.springframework.data.couchbase.domain.Address';
+ // create index ix2 on my_bucket(parent_id) where `_class` =
+ // 'org.springframework.data.couchbase.domain.Address';
List fieldList = new ArrayList<>();
fieldList.add("parentId");
- cluster.query("CREATE INDEX `parent_idx` ON default:`" + bucketName() + "`." + scopeName + "." + collectionName2
- + "(parentId)");
+ cluster.query("CREATE INDEX `parent_idx` ON default:`" + bucketName() + "`." + scopeName + "."
+ + collectionName2 + "(parentId)");
} catch (IndexExistsException ife) {
LOGGER.warn("IndexFailureException occurred - ignoring: ", ife.toString());
}
- logDisconnect(cluster, CollectionAwareDefaultScopeIntegrationTests.class.getSimpleName());
- Config.setScopeName(scopeName);
- // ApplicationContext ac = new AnnotationConfigApplicationContext();
- // System.out.println(ac);
+ logDisconnect(cluster, CollectionAwareDefaultScopeIntegrationTests.class.getSimpleName());
+ // ApplicationContext ac = new AnnotationConfigApplicationContext();
+ // System.out.println(ac);
// the Config class has been modified, these need to be loaded again
- // couchbaseTemplate = (CouchbaseTemplate) ac.getBean(COUCHBASE_TEMPLATE);
- // reactiveCouchbaseTemplate = (ReactiveCouchbaseTemplate) ac.getBean(REACTIVE_COUCHBASE_TEMPLATE);
+ // couchbaseTemplate = (CouchbaseTemplate) ac.getBean(COUCHBASE_TEMPLATE);
+ // reactiveCouchbaseTemplate = (ReactiveCouchbaseTemplate) ac.getBean(REACTIVE_COUCHBASE_TEMPLATE);
}
@AfterAll
public static void afterAll() {
- Config.setScopeName(null);
- // ApplicationContext ac = new AnnotationConfigApplicationContext(Config.class);
+ // ApplicationContext ac = new AnnotationConfigApplicationContext(Config.class);
// the Config class has been modified, these need to be loaded again
- // couchbaseTemplate = (CouchbaseTemplate) ac.getBean(COUCHBASE_TEMPLATE);
- // reactiveCouchbaseTemplate = (ReactiveCouchbaseTemplate) ac.getBean(REACTIVE_COUCHBASE_TEMPLATE);
- callSuperAfterAll(new Object() {
- });
+ // couchbaseTemplate = (CouchbaseTemplate) ac.getBean(COUCHBASE_TEMPLATE);
+ // reactiveCouchbaseTemplate = (ReactiveCouchbaseTemplate) ac.getBean(REACTIVE_COUCHBASE_TEMPLATE);
+ callSuperAfterAll(new Object() {});
}
}
diff --git a/src/test/java/org/springframework/data/couchbase/util/CollectionAwareIntegrationTests.java b/spring-data-couchbase-testutils/src/main/java/org/springframework/data/couchbase/util/CollectionAwareIntegrationTests.java
similarity index 75%
rename from src/test/java/org/springframework/data/couchbase/util/CollectionAwareIntegrationTests.java
rename to spring-data-couchbase-testutils/src/main/java/org/springframework/data/couchbase/util/CollectionAwareIntegrationTests.java
index c85265203..5e84fe6cc 100644
--- a/src/test/java/org/springframework/data/couchbase/util/CollectionAwareIntegrationTests.java
+++ b/spring-data-couchbase-testutils/src/main/java/org/springframework/data/couchbase/util/CollectionAwareIntegrationTests.java
@@ -21,7 +21,6 @@
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
-import org.springframework.data.couchbase.domain.Config;
import com.couchbase.client.core.error.IndexExistsException;
import com.couchbase.client.core.service.ServiceType;
@@ -64,31 +63,30 @@ public static void beforeAll() {
try {
// needs an index for this N1ql Join
- // create index ix2 on my_bucket(parent_id) where `_class` = 'org.springframework.data.couchbase.domain.Address';
+ // create index ix2 on my_bucket(parent_id) where `_class` =
+ // 'org.springframework.data.couchbase.domain.Address';
List fieldList = new ArrayList<>();
fieldList.add("parentId");
- cluster.query("CREATE INDEX `parent_idx` ON default:`" + bucketName() + "`." + scopeName + "." + collectionName2
- + "(parentId)");
+ cluster.query("CREATE INDEX `parent_idx` ON default:`" + bucketName() + "`." + scopeName + "."
+ + collectionName2 + "(parentId)");
} catch (IndexExistsException ife) {
LOGGER.warn("IndexFailureException occurred - ignoring: ", ife.toString());
}
- logDisconnect(cluster, CollectionAwareIntegrationTests.class.getSimpleName());
- Config.setScopeName(scopeName);
- // ApplicationContext ac = new AnnotationConfigApplicationContext(Config.class);
- // System.out.println(ac);
+ logDisconnect(cluster, CollectionAwareIntegrationTests.class.getSimpleName());
+ // ApplicationContext ac = new AnnotationConfigApplicationContext(Config.class);
+ // System.out.println(ac);
// the Config class has been modified, these need to be loaded again
- // couchbaseTemplate = (CouchbaseTemplate) ac.getBean(COUCHBASE_TEMPLATE);
- // reactiveCouchbaseTemplate = (ReactiveCouchbaseTemplate) ac.getBean(REACTIVE_COUCHBASE_TEMPLATE);
+ // couchbaseTemplate = (CouchbaseTemplate) ac.getBean(COUCHBASE_TEMPLATE);
+ // reactiveCouchbaseTemplate = (ReactiveCouchbaseTemplate) ac.getBean(REACTIVE_COUCHBASE_TEMPLATE);
}
@AfterAll
public static void afterAll() {
- Config.setScopeName(null);
- // ApplicationContext ac = new AnnotationConfigApplicationContext(Config.class);
+ // ApplicationContext ac = new AnnotationConfigApplicationContext(Config.class);
// the Config class has been modified, these need to be loaded again
- // couchbaseTemplate = (CouchbaseTemplate) ac.getBean(COUCHBASE_TEMPLATE);
- // reactiveCouchbaseTemplate = (ReactiveCouchbaseTemplate) ac.getBean(REACTIVE_COUCHBASE_TEMPLATE);
+ // couchbaseTemplate = (CouchbaseTemplate) ac.getBean(COUCHBASE_TEMPLATE);
+ // reactiveCouchbaseTemplate = (ReactiveCouchbaseTemplate) ac.getBean(REACTIVE_COUCHBASE_TEMPLATE);
callSuperAfterAll(new Object() {});
}
}
diff --git a/src/test/java/org/springframework/data/couchbase/util/IgnoreWhen.java b/spring-data-couchbase-testutils/src/main/java/org/springframework/data/couchbase/util/IgnoreWhen.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/util/IgnoreWhen.java
rename to spring-data-couchbase-testutils/src/main/java/org/springframework/data/couchbase/util/IgnoreWhen.java
diff --git a/src/test/java/org/springframework/data/couchbase/util/JavaIntegrationTests.java b/spring-data-couchbase-testutils/src/main/java/org/springframework/data/couchbase/util/JavaIntegrationTests.java
similarity index 96%
rename from src/test/java/org/springframework/data/couchbase/util/JavaIntegrationTests.java
rename to spring-data-couchbase-testutils/src/main/java/org/springframework/data/couchbase/util/JavaIntegrationTests.java
index fbd438302..5fc30964c 100644
--- a/src/test/java/org/springframework/data/couchbase/util/JavaIntegrationTests.java
+++ b/spring-data-couchbase-testutils/src/main/java/org/springframework/data/couchbase/util/JavaIntegrationTests.java
@@ -25,7 +25,6 @@
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.springframework.data.couchbase.util.Util.waitUntilCondition;
-import java.io.IOException;
import java.time.Duration;
import java.util.Collections;
import java.util.LinkedHashMap;
@@ -42,9 +41,6 @@
import org.junit.jupiter.api.function.Executable;
import org.junit.platform.commons.util.UnrecoverableExceptions;
import org.opentest4j.AssertionFailedError;
-import org.springframework.data.couchbase.CouchbaseClientFactory;
-import org.springframework.data.couchbase.SimpleCouchbaseClientFactory;
-import org.springframework.data.couchbase.domain.Config;
import org.springframework.data.couchbase.transactions.SimulateFailureException;
import com.couchbase.client.core.diagnostics.PingResult;
@@ -92,15 +88,13 @@ public class JavaIntegrationTests extends ClusterAwareIntegrationTests {
@BeforeAll
public static void beforeAll() {
- Config.setScopeName(null);
+ //Config.setScopeName(null);
callSuperBeforeAll(new Object() {});
- try (CouchbaseClientFactory couchbaseClientFactory = new SimpleCouchbaseClientFactory(connectionString(),
- authenticator(), bucketName())) {
- couchbaseClientFactory.getCluster().queryIndexes().createPrimaryIndex(bucketName(),
+ try (Cluster cluster = Cluster.connect(connectionString(),
+ username(), password())) {
+ cluster.queryIndexes().createPrimaryIndex(bucketName(),
CreatePrimaryQueryIndexOptions.createPrimaryQueryIndexOptions().ignoreIfExists(true));
- logCluster(couchbaseClientFactory.getCluster(), "-");
- } catch (IOException ioe) {
- throw new RuntimeException(ioe);
+ logCluster(cluster, "-");
}
}
diff --git a/src/test/java/org/springframework/data/couchbase/util/MockTestCluster.java b/spring-data-couchbase-testutils/src/main/java/org/springframework/data/couchbase/util/MockTestCluster.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/util/MockTestCluster.java
rename to spring-data-couchbase-testutils/src/main/java/org/springframework/data/couchbase/util/MockTestCluster.java
diff --git a/src/test/java/org/springframework/data/couchbase/util/Services.java b/spring-data-couchbase-testutils/src/main/java/org/springframework/data/couchbase/util/Services.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/util/Services.java
rename to spring-data-couchbase-testutils/src/main/java/org/springframework/data/couchbase/util/Services.java
diff --git a/src/test/java/org/springframework/data/couchbase/transactions/SimulateFailureException.java b/spring-data-couchbase-testutils/src/main/java/org/springframework/data/couchbase/util/SimulateFailureException.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/transactions/SimulateFailureException.java
rename to spring-data-couchbase-testutils/src/main/java/org/springframework/data/couchbase/util/SimulateFailureException.java
diff --git a/src/test/java/org/springframework/data/couchbase/util/TestCluster.java b/spring-data-couchbase-testutils/src/main/java/org/springframework/data/couchbase/util/TestCluster.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/util/TestCluster.java
rename to spring-data-couchbase-testutils/src/main/java/org/springframework/data/couchbase/util/TestCluster.java
diff --git a/src/test/java/org/springframework/data/couchbase/util/TestClusterConfig.java b/spring-data-couchbase-testutils/src/main/java/org/springframework/data/couchbase/util/TestClusterConfig.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/util/TestClusterConfig.java
rename to spring-data-couchbase-testutils/src/main/java/org/springframework/data/couchbase/util/TestClusterConfig.java
diff --git a/src/test/java/org/springframework/data/couchbase/util/TestNodeConfig.java b/spring-data-couchbase-testutils/src/main/java/org/springframework/data/couchbase/util/TestNodeConfig.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/util/TestNodeConfig.java
rename to spring-data-couchbase-testutils/src/main/java/org/springframework/data/couchbase/util/TestNodeConfig.java
diff --git a/src/test/java/org/springframework/data/couchbase/util/UnmanagedTestCluster.java b/spring-data-couchbase-testutils/src/main/java/org/springframework/data/couchbase/util/UnmanagedTestCluster.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/util/UnmanagedTestCluster.java
rename to spring-data-couchbase-testutils/src/main/java/org/springframework/data/couchbase/util/UnmanagedTestCluster.java
diff --git a/src/test/java/org/springframework/data/couchbase/util/Util.java b/spring-data-couchbase-testutils/src/main/java/org/springframework/data/couchbase/util/Util.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/util/Util.java
rename to spring-data-couchbase-testutils/src/main/java/org/springframework/data/couchbase/util/Util.java
diff --git a/spring-data-couchbase/CI.adoc b/spring-data-couchbase/CI.adoc
new file mode 100644
index 000000000..afbba5f8a
--- /dev/null
+++ b/spring-data-couchbase/CI.adoc
@@ -0,0 +1,34 @@
+= Continuous Integration
+
+image:https://jenkins.spring.io/buildStatus/icon?job=spring-data-couchbase%2Fmain&subject=Moore%20(main)["Spring Data Couchbase", link="https://jenkins.spring
+.io/view/SpringData/job/spring-data-couchbase/"]
+image:https://jenkins.spring.io/buildStatus/icon?job=spring-data-couchbase%2F3.1.x&subject=Lovelace%20(3.1.x)["Spring Data Couchbase", link="https://jenkins.spring
+.io/view/SpringData/job/spring-data-couchbase/"]
+image:https://jenkins.spring.io/buildStatus/icon?job=spring-data-couchbase%2F2.2.x&subject=Ingalls%20(2.2.x)["Spring Data Couchbase", link="https://jenkins.spring
+.io/view/SpringData/job/spring-data-couchbase/"]
+
+== Running CI tasks locally
+
+Since this pipeline is purely Docker-based, it's easy to:
+
+* Debug what went wrong on your local machine.
+* Test out a a tweak to your `test.sh` script before sending it out.
+* Experiment against a new image before submitting your pull request.
+
+All of these use cases are great reasons to essentially run what the CI server does on your local machine.
+
+IMPORTANT: To do this you must have Docker installed on your machine.
+
+1. `docker run -it --mount type=bind,source="$(pwd)",target=/spring-data-couchbase-github -v /usr/bin/docker:/usr/bin/docker -v /var/run/docker.sock:/var/run/docker.sock adoptopenjdk/openjdk8:latest /bin/bash`
++
+This will launch the Docker image and mount your source code at `spring-data-couchbase-github`.
++
+2. `cd spring-data-couchbase-github`
++
+Next, test everything from inside the container:
++
+3. `./mvnw -Pci clean dependency:list test -Dsort -B` (or whatever test configuration you must use)
+
+Since the container is binding to your source, you can make edits from your IDE and continue to run build jobs.
+
+NOTE: Docker containers can eat up disk space fast! From time to time, run `docker system prune` to clean out old images.
diff --git a/spring-data-couchbase/CONTRIBUTING.adoc b/spring-data-couchbase/CONTRIBUTING.adoc
new file mode 100644
index 000000000..740e8bd0b
--- /dev/null
+++ b/spring-data-couchbase/CONTRIBUTING.adoc
@@ -0,0 +1,3 @@
+= Spring Data contribution guidelines
+
+You find the contribution guidelines for Spring Data projects https://github.com/spring-projects/spring-data-build/blob/main/CONTRIBUTING.adoc[here].
diff --git a/spring-data-couchbase/Jenkinsfile b/spring-data-couchbase/Jenkinsfile
new file mode 100644
index 000000000..d1245b878
--- /dev/null
+++ b/spring-data-couchbase/Jenkinsfile
@@ -0,0 +1,130 @@
+def p = [:]
+node {
+ checkout scm
+ p = readProperties interpolate: true, file: 'ci/pipeline.properties'
+}
+
+pipeline {
+ agent none
+
+ triggers {
+ pollSCM 'H/10 * * * *'
+ upstream(upstreamProjects: "spring-data-commons/main", threshold: hudson.model.Result.SUCCESS)
+ }
+
+ options {
+ disableConcurrentBuilds()
+ buildDiscarder(logRotator(numToKeepStr: '14'))
+ }
+
+ stages {
+ stage("test: baseline (main)") {
+ when {
+ beforeAgent(true)
+ anyOf {
+ branch(pattern: "main|(\\d\\.\\d\\.x)", comparator: "REGEXP")
+ not { triggeredBy 'UpstreamCause' }
+ }
+ }
+ agent {
+ label 'data'
+ }
+ options { timeout(time: 30, unit: 'MINUTES') }
+ environment {
+ ARTIFACTORY = credentials("${p['artifactory.credentials']}")
+ DEVELOCITY_ACCESS_KEY = credentials("${p['develocity.access-key']}")
+ }
+ steps {
+ script {
+ docker.withRegistry(p['docker.proxy.registry'], p['docker.proxy.credentials']) {
+ docker.image(p['docker.java.main.image']).inside(p['docker.java.inside.docker']) {
+ sh "PROFILE=ci JENKINS_USER_NAME=${p['jenkins.user.name']} ci/test.sh"
+ sh "JENKINS_USER_NAME=${p['jenkins.user.name']} ci/clean.sh"
+ }
+ }
+ }
+ }
+ }
+
+ stage("Test other configurations") {
+ when {
+ beforeAgent(true)
+ allOf {
+ branch(pattern: "main|(\\d\\.\\d\\.x)", comparator: "REGEXP")
+ not { triggeredBy 'UpstreamCause' }
+ }
+ }
+ parallel {
+ stage("test: baseline (next)") {
+ agent {
+ label 'data'
+ }
+ options { timeout(time: 30, unit: 'MINUTES') }
+ environment {
+ ARTIFACTORY = credentials("${p['artifactory.credentials']}")
+ DEVELOCITY_ACCESS_KEY = credentials("${p['develocity.access-key']}")
+ }
+ steps {
+ script {
+ docker.withRegistry(p['docker.proxy.registry'], p['docker.proxy.credentials']) {
+ docker.image(p['docker.java.next.image']).inside(p['docker.java.inside.docker']) {
+ sh "PROFILE=ci JENKINS_USER_NAME=${p['jenkins.user.name']} ci/test.sh"
+ sh "JENKINS_USER_NAME=${p['jenkins.user.name']} ci/clean.sh"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ stage('Release to artifactory') {
+ when {
+ beforeAgent(true)
+ anyOf {
+ branch(pattern: "main|(\\d\\.\\d\\.x)", comparator: "REGEXP")
+ not { triggeredBy 'UpstreamCause' }
+ }
+ }
+ agent {
+ label 'data'
+ }
+ options { timeout(time: 20, unit: 'MINUTES') }
+ environment {
+ ARTIFACTORY = credentials("${p['artifactory.credentials']}")
+ DEVELOCITY_ACCESS_KEY = credentials("${p['develocity.access-key']}")
+ }
+ steps {
+ script {
+ docker.withRegistry(p['docker.proxy.registry'], p['docker.proxy.credentials']) {
+ docker.image(p['docker.java.main.image']).inside(p['docker.java.inside.docker']) {
+ sh 'MAVEN_OPTS="-Duser.name=' + "${p['jenkins.user.name']}" + ' -Duser.home=/tmp/jenkins-home" ' +
+ "./mvnw -s settings.xml -Pci,artifactory " +
+ "-Ddevelocity.storage.directory=/tmp/jenkins-home/.develocity-root " +
+ "-Dartifactory.server=${p['artifactory.url']} " +
+ "-Dartifactory.username=${ARTIFACTORY_USR} " +
+ "-Dartifactory.password=${ARTIFACTORY_PSW} " +
+ "-Dartifactory.staging-repository=${p['artifactory.repository.snapshot']} " +
+ "-Dartifactory.build-name=spring-data-couchbase " +
+ "-Dartifactory.build-number=spring-data-couchbase-${BRANCH_NAME}-build-${BUILD_NUMBER} " +
+ "-Dmaven.repo.local=/tmp/jenkins-home/.m2/spring-data-couchbase " +
+ "-Dmaven.test.skip=true clean deploy -U -B"
+ }
+ }
+ }
+ }
+ }
+ }
+
+ post {
+ changed {
+ script {
+ emailext(
+ subject: "[${currentBuild.fullDisplayName}] ${currentBuild.currentResult}",
+ mimeType: 'text/html',
+ recipientProviders: [[$class: 'CulpritsRecipientProvider'], [$class: 'RequesterRecipientProvider']],
+ body: "${currentBuild.fullDisplayName} is reported as ${currentBuild.currentResult}")
+ }
+ }
+ }
+}
diff --git a/spring-data-couchbase/LICENSE.txt b/spring-data-couchbase/LICENSE.txt
new file mode 100644
index 000000000..ff7737963
--- /dev/null
+++ b/spring-data-couchbase/LICENSE.txt
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ https://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "{}"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright {yyyy} {name of copyright owner}
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ https://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/spring-data-couchbase/README.adoc b/spring-data-couchbase/README.adoc
new file mode 100644
index 000000000..14d6c6e26
--- /dev/null
+++ b/spring-data-couchbase/README.adoc
@@ -0,0 +1,209 @@
+= Spring Data Couchbase image:https://jenkins.spring.io/buildStatus/icon?job=spring-data-couchbase%2Fmain&subject=Build[link=https://jenkins.spring.io/view/SpringData/job/spring-data-couchbase/] https://gitter.im/spring-projects/spring-data[image:https://badges.gitter.im/spring-projects/spring-data.svg[Gitter]] image:https://img.shields.io/badge/Revved%20up%20by-Develocity-06A0CE?logo=Gradle&labelColor=02303A["Revved up by Develocity", link="https://ge.spring.io/scans?search.rootProjectNames=Spring Data Couchbase"]
+
+The primary goal of the https://www.springsource.org/spring-data[Spring Data] project is to make it easier to build
+Spring-powered applications that use new data access technologies such as non-relational databases, map-reduce
+frameworks, and cloud based data services.
+
+The Spring Data Couchbase project aims to provide a familiar and consistent Spring-based programming model for Couchbase
+Server as a document database and cache while retaining store-specific features and capabilities. Key functional areas
+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.
+
+This project is lead and maintained by Couchbase, Inc.
+
+== Features
+
+* Spring configuration support using Java based `@Configuration` classes or an XML namespace for the Couchbase driver (Java SDK version 2.x).
+* `CouchbaseTemplate` helper class that increases productivity performing common Couchbase operations. Includes integrated object mapping between documents and POJOs.
+* Exception translation into Spring’s portable Data Access Exception hierarchy.
+* Feature Rich Object Mapping integrated with Spring’s Conversion Service.
+* Annotation based mapping metadata but extensible to support other metadata formats.
+* Automatic implementation of `Repository` interfaces including support for custom finder methods (backed by Couchbase’s query language, `N1QL`) and `PagingAndSortingRepository`.
+* For Couchbase server versions < 4.0, repositories can still be backed by Couchbase Views.
+* Support for geospatial and multidimensional querying (backed by Couchbase Spatial Views)
+* JMX administration and monitoring
+* Can serve as the backend for `@Cacheable` support, to cache any objects you need for high performance access (see sibling Spring Cache project in Couchbase’s github, https://github.com/couchbaselabs/couchbase-spring-cache[couchbaselabs/couchbase-spring-cache]).
+
+== Version compatibility
+
+`Spring-Data Couchbase` is the Spring Data connector for the `Couchbase Java SDK 2.x` generation.
+
+Both the SDK and this Spring Data community project are major version changes with lots of differences from their respective previous versions.
+
+Notably, this version is compatible with `Couchbase Server 4.0`, bringing support for the `N1QL` query language.
+
+== Code of Conduct
+
+This project is governed by the https://github.com/spring-projects/.github/blob/e3cc2ff230d8f1dca06535aa6b5a4a23815861d4/CODE_OF_CONDUCT.md[Spring Code of Conduct].By participating, you are expected to uphold this code of conduct.Please report unacceptable behavior to spring-code-of-conduct@pivotal.io.
+
+== Getting Started
+
+Here is a quick teaser of an application using Spring Data Repositories in Java:
+
+[source,java]
+----
+public interface PersonRepository extends CrudRepository {
+
+ List findByLastname(String lastname);
+
+ List findByFirstnameLike(String firstname);
+}
+
+@Service
+public class MyService {
+
+ private final PersonRepository repository;
+
+ public MyService(PersonRepository repository) {
+ this.repository = repository;
+ }
+
+ public void doWork() {
+
+ repository.deleteAll();
+
+ Person person = new Person();
+ person.setFirstname("Couch");
+ person.setLastname("Base");
+ repository.save(person);
+
+ List lastNameResults = repository.findByLastname("Base");
+ List firstNameResults = repository.findByFirstnameLike("Cou*");
+ }
+}
+
+@Configuration
+@EnableCouchbaseRepositories
+public class Config extends AbstractCouchbaseConfiguration {
+
+ @Override
+ protected List getBootstrapHosts() {
+ return Arrays.asList("host1", "host2");
+ }
+
+ @Override
+ protected String getBucketName() {
+ return "default";
+ }
+
+ @Override
+ protected String getPassword() {
+ return "";
+ }
+}
+----
+
+=== Maven configuration
+
+Add the Maven dependency:
+
+[source,xml]
+----
+
+ org.springframework.data
+ spring-data-couchbase
+ ${version}
+
+----
+
+If you'd rather like the latest snapshots of the upcoming major version, use our Maven snapshot repository and declare the appropriate dependency version.
+
+[source,xml]
+----
+
+ org.springframework.data
+ spring-data-couchbase
+ ${version}-SNAPSHOT
+
+
+
+ spring-snapshot
+ Spring Snapshot Repository
+ https://repo.spring.io/snapshot
+
+----
+
+== Getting Help
+
+Having trouble with Spring Data? We’d love to help!
+
+* Check the
+https://docs.spring.io/spring-data/couchbase/docs/current/reference/html/[reference documentation], and https://docs.spring.io/spring-data/couchbase/docs/current/api/[Javadocs].
+* Learn the Spring basics – Spring Data builds on Spring Framework, check the https://spring.io[spring.io] web-site for a wealth of reference documentation.
+If you are just starting out with Spring, try one of the https://spring.io/guides[guides].
+* Ask a question - we monitor https://stackoverflow.com[stackoverflow.com] for questions tagged with https://stackoverflow.com/tags/spring-data[`spring-data-couchbase`].
+You can also chat with the community on https://gitter.im/spring-projects/spring-data[Gitter].
+* Report bugs with Spring Data Couchbase at https://jira.spring.io/browse/DATACOUCH[jira.spring.io/browse/DATACOUCH].
+
+== Reporting Issues
+
+Spring Data uses GitHub as issue tracking system to record bugs and feature requests.
+If you want to raise an issue, please follow the recommendations below:
+
+* Before you log a bug, please search the
+https://github.com/spring-projects/spring-data-couchbase/issues[issue tracker] to see if someone has already reported the problem.
+* If the issue does not already exist, https://github.com/spring-projects/spring-data-couchbase/issues/new[create a new issue].
+* Please provide as much information as possible with the issue report, we like to know the version of Spring Data that you are using and JVM version.
+* If you need to paste code, or include a stack trace use Markdown +++```+++ escapes before and after your text.
+* If possible try to create a test-case or project that replicates the issue.
+Attach a link to your code or a compressed file containing your code.
+
+== Building from Source
+
+You don’t need to build from source to use Spring Data (binaries in https://repo.spring.io[repo.spring.io]), but if you want to try out the latest and greatest, Spring Data can be easily built with the https://github.com/takari/maven-wrapper[maven wrapper].
+You also need JDK 17 or above.
+
+[source,bash]
+----
+ $ ./mvnw clean install
+----
+
+If you want to build with the regular `mvn` command, you will need https://maven.apache.org/run-maven/index.html[Maven v3.5.0 or above].
+
+_Also see link:CONTRIBUTING.adoc[CONTRIBUTING.adoc] if you wish to submit pull requests, and in particular please sign the https://cla.pivotal.io/sign/spring[Contributor’s Agreement] before your first non-trivial change._
+
+=== Building reference documentation
+
+Building the documentation builds also the project without running tests.
+
+[source,bash]
+----
+ $ ./mvnw clean install -Pantora
+----
+
+The generated documentation is available from `target/antora/site/index.html`.
+
+=== Building and staging reference documentation for review
+
+[source,bash]
+----
+ export MY_GIT_USER=
+ mvn generate-resources
+ docs=`pwd`/target/site/reference/html
+ pushd /tmp
+ mkdir $$
+ cd $$
+ # see https://docs.github.com/en/pages/getting-started-with-github-pages/creating-a-github-pages-site
+ # this examples uses a repository named "staged"
+ git clone git@github.com:${MY_GIT_USER}/staged.git -b gh-pages
+ cd staged
+ cp -R $docs/* .
+ git add .
+ git commit --message "stage for review"
+ git push origin gh-pages
+ popd
+----
+
+The generated documentation is available from `target/site/reference/html/index.html`.
+
+== Examples
+
+* https://github.com/spring-projects/spring-data-examples/[Spring Data Examples] contains example projects that explain specific features in more detail.
+
+== License
+
+Spring Data Couchbase is Open Source software released under the https://www.apache.org/licenses/LICENSE-2.0.html[Apache 2.0 license].
diff --git a/spring-data-couchbase/SECURITY.adoc b/spring-data-couchbase/SECURITY.adoc
new file mode 100644
index 000000000..2d8106fbe
--- /dev/null
+++ b/spring-data-couchbase/SECURITY.adoc
@@ -0,0 +1,9 @@
+# Security Policy
+
+## Supported Versions
+
+Please see the https://spring.io/projects/spring-data-couchbase[Spring Data Couchbase] project page for supported versions.
+
+## Reporting a Vulnerability
+
+Please don't raise security vulnerabilities here. Head over to https://pivotal.io/security to learn how to disclose them responsibly.
diff --git a/spring-data-couchbase/package.json b/spring-data-couchbase/package.json
new file mode 100644
index 000000000..057a40fe8
--- /dev/null
+++ b/spring-data-couchbase/package.json
@@ -0,0 +1,10 @@
+{
+ "dependencies": {
+ "antora": "3.2.0-alpha.6",
+ "@antora/atlas-extension": "1.0.0-alpha.2",
+ "@antora/collector-extension": "1.0.0-alpha.7",
+ "@asciidoctor/tabs": "1.0.0-beta.6",
+ "@springio/antora-extensions": "1.13.0",
+ "@springio/asciidoctor-extensions": "1.0.0-alpha.11"
+ }
+}
diff --git a/spring-data-couchbase/pom.xml b/spring-data-couchbase/pom.xml
new file mode 100644
index 000000000..566302df3
--- /dev/null
+++ b/spring-data-couchbase/pom.xml
@@ -0,0 +1,345 @@
+
+
+
+ 4.0.0
+
+ org.springframework.data
+ spring-data-couchbase
+ 5.4.0-SNAPSHOT
+
+ Spring Data Couchbase
+ Spring Data integration for Couchbase
+ https://github.com/spring-projects/spring-data-couchbase
+
+
+ org.springframework.data
+ spring-data-couchbase-parent
+ 5.4.0-SNAPSHOT
+
+
+
+ 3.7.4
+ 3.4.0-SNAPSHOT
+ spring.data.couchbase
+ 7.0.1.Final
+ 3.1.0
+ 2.10.13
+ 2.13.4
+
+
+
+
+
+ org.testcontainers
+ testcontainers-bom
+ ${testcontainers}
+ pom
+ import
+
+
+
+
+
+
+
+ org.springframework
+ spring-context-support
+
+
+
+ org.springframework
+ spring-web
+
+
+
+ org.springframework
+ spring-tx
+
+
+
+ ${project.groupId}
+ spring-data-commons
+ ${springdata.commons}
+
+
+
+ com.couchbase.client
+ java-client
+ ${couchbase}
+
+
+
+
+ jakarta.enterprise
+ jakarta.enterprise.cdi-api
+ ${cdi}
+ provided
+ true
+
+
+
+ org.springframework
+ spring-test
+ ${spring}
+ test
+
+
+
+ org.hibernate.validator
+ hibernate-validator
+ 7.0.1.Final
+ test
+
+
+
+ org.apache.httpcomponents
+ httpclient
+ 4.5.13
+ test
+
+
+
+ io.projectreactor
+ reactor-test
+ test
+
+
+
+ com.fasterxml.jackson.datatype
+ jackson-datatype-joda
+ ${jackson-joda}
+ test
+
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+
+
+
+ joda-time
+ joda-time
+ ${jodatime}
+ true
+
+
+
+ org.testcontainers
+ testcontainers
+ test
+
+
+
+
+ jakarta.validation
+ jakarta.validation-api
+ ${validation}
+ true
+
+
+
+ jakarta.el
+ jakarta.el-api
+ ${jakarta.el}
+ provided
+ true
+
+
+
+ org.glassfish
+ jakarta.el
+ ${jakarta.el}
+ provided
+ true
+
+
+
+
+
+ org.apache.geronimo.specs
+ geronimo-jcdi_2.0_spec
+ 1.0.1
+ test
+
+
+
+ javax.interceptor
+ javax.interceptor-api
+ 1.2.1
+ test
+
+
+
+ org.apache.openwebbeans
+ openwebbeans-se
+ ${webbeans}
+ test
+
+
+
+ com.couchbase.mock
+ CouchbaseMock
+ 1.5.25
+ test
+
+
+
+ com.squareup.okhttp3
+ okhttp
+ 4.8.1
+ test
+
+
+
+ com.squareup.okhttp3
+ okhttp-tls
+ 4.8.1
+ test
+
+
+
+
+ org.jetbrains.kotlin
+ kotlin-stdlib
+ ${kotlin}
+ true
+
+
+
+ org.jetbrains.kotlin
+ kotlin-reflect
+ ${kotlin}
+ true
+
+
+
+ org.jetbrains.kotlin
+ kotlin-test
+ ${kotlin}
+ test
+
+
+
+ org.awaitility
+ awaitility
+ 4.0.3
+ test
+
+
+
+ com.couchbase.client
+ couchbase-encryption
+ ${couchbase.encryption}
+ test
+
+
+
+ org.springframework.data
+ spring-data-couchbase-testutils
+ 0.0.99
+ test
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+ none
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+ false
+ false
+
+ **/*Test.java
+ **/*Tests.java
+
+
+ **/*IntegrationTest.java
+ **/*IntegrationTests.java
+
+
+
+
+ org.apache.maven.plugins
+ maven-failsafe-plugin
+
+ false
+
+ **/*IntegrationTest.java
+ **/*IntegrationTests.java
+
+
+
+
+
+ integration-test
+ verify
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+
+ true
+
+
+
+
+
+
+
+ antora-process-resources
+
+
+
+ src/main/antora/resources/antora-resources
+ true
+
+
+
+
+
+ antora
+
+
+
+ org.antora
+ antora-maven-plugin
+
+
+
+
+
+
+
+
+ spring-snapshot
+ https://repo.spring.io/snapshot
+
+ true
+
+
+ false
+
+
+
+ spring-milestone
+ https://repo.spring.io/milestone
+
+
+
diff --git a/spring-data-couchbase/settings.xml b/spring-data-couchbase/settings.xml
new file mode 100644
index 000000000..b3227cc11
--- /dev/null
+++ b/spring-data-couchbase/settings.xml
@@ -0,0 +1,29 @@
+
+
+
+
+ spring-plugins-release
+ ${env.ARTIFACTORY_USR}
+ ${env.ARTIFACTORY_PSW}
+
+
+ spring-libs-snapshot
+ ${env.ARTIFACTORY_USR}
+ ${env.ARTIFACTORY_PSW}
+
+
+ spring-libs-milestone
+ ${env.ARTIFACTORY_USR}
+ ${env.ARTIFACTORY_PSW}
+
+
+ spring-libs-release
+ ${env.ARTIFACTORY_USR}
+ ${env.ARTIFACTORY_PSW}
+
+
+
+
\ No newline at end of file
diff --git a/src/main/antora/.github/workflows/deploy-docs.yml b/spring-data-couchbase/src/main/antora/.github/workflows/deploy-docs.yml
similarity index 100%
rename from src/main/antora/.github/workflows/deploy-docs.yml
rename to spring-data-couchbase/src/main/antora/.github/workflows/deploy-docs.yml
diff --git a/src/main/antora/antora-playbook.yml b/spring-data-couchbase/src/main/antora/antora-playbook.yml
similarity index 100%
rename from src/main/antora/antora-playbook.yml
rename to spring-data-couchbase/src/main/antora/antora-playbook.yml
diff --git a/src/main/antora/antora.yml b/spring-data-couchbase/src/main/antora/antora.yml
similarity index 100%
rename from src/main/antora/antora.yml
rename to spring-data-couchbase/src/main/antora/antora.yml
diff --git a/src/main/antora/modules/ROOT/nav.adoc b/spring-data-couchbase/src/main/antora/modules/ROOT/nav.adoc
similarity index 100%
rename from src/main/antora/modules/ROOT/nav.adoc
rename to spring-data-couchbase/src/main/antora/modules/ROOT/nav.adoc
diff --git a/src/main/antora/modules/ROOT/pages/commons/migrating.adoc b/spring-data-couchbase/src/main/antora/modules/ROOT/pages/commons/migrating.adoc
similarity index 100%
rename from src/main/antora/modules/ROOT/pages/commons/migrating.adoc
rename to spring-data-couchbase/src/main/antora/modules/ROOT/pages/commons/migrating.adoc
diff --git a/src/main/antora/modules/ROOT/pages/commons/upgrade.adoc b/spring-data-couchbase/src/main/antora/modules/ROOT/pages/commons/upgrade.adoc
similarity index 100%
rename from src/main/antora/modules/ROOT/pages/commons/upgrade.adoc
rename to spring-data-couchbase/src/main/antora/modules/ROOT/pages/commons/upgrade.adoc
diff --git a/src/main/antora/modules/ROOT/pages/couchbase.adoc b/spring-data-couchbase/src/main/antora/modules/ROOT/pages/couchbase.adoc
similarity index 100%
rename from src/main/antora/modules/ROOT/pages/couchbase.adoc
rename to spring-data-couchbase/src/main/antora/modules/ROOT/pages/couchbase.adoc
diff --git a/src/main/antora/modules/ROOT/pages/couchbase/ansijoins.adoc b/spring-data-couchbase/src/main/antora/modules/ROOT/pages/couchbase/ansijoins.adoc
similarity index 100%
rename from src/main/antora/modules/ROOT/pages/couchbase/ansijoins.adoc
rename to spring-data-couchbase/src/main/antora/modules/ROOT/pages/couchbase/ansijoins.adoc
diff --git a/src/main/antora/modules/ROOT/pages/couchbase/autokeygeneration.adoc b/spring-data-couchbase/src/main/antora/modules/ROOT/pages/couchbase/autokeygeneration.adoc
similarity index 100%
rename from src/main/antora/modules/ROOT/pages/couchbase/autokeygeneration.adoc
rename to spring-data-couchbase/src/main/antora/modules/ROOT/pages/couchbase/autokeygeneration.adoc
diff --git a/src/main/antora/modules/ROOT/pages/couchbase/caching.adoc b/spring-data-couchbase/src/main/antora/modules/ROOT/pages/couchbase/caching.adoc
similarity index 100%
rename from src/main/antora/modules/ROOT/pages/couchbase/caching.adoc
rename to spring-data-couchbase/src/main/antora/modules/ROOT/pages/couchbase/caching.adoc
diff --git a/src/main/antora/modules/ROOT/pages/couchbase/collections.adoc b/spring-data-couchbase/src/main/antora/modules/ROOT/pages/couchbase/collections.adoc
similarity index 100%
rename from src/main/antora/modules/ROOT/pages/couchbase/collections.adoc
rename to spring-data-couchbase/src/main/antora/modules/ROOT/pages/couchbase/collections.adoc
diff --git a/src/main/antora/modules/ROOT/pages/couchbase/configuration.adoc b/spring-data-couchbase/src/main/antora/modules/ROOT/pages/couchbase/configuration.adoc
similarity index 100%
rename from src/main/antora/modules/ROOT/pages/couchbase/configuration.adoc
rename to spring-data-couchbase/src/main/antora/modules/ROOT/pages/couchbase/configuration.adoc
diff --git a/src/main/antora/modules/ROOT/pages/couchbase/entity.adoc b/spring-data-couchbase/src/main/antora/modules/ROOT/pages/couchbase/entity.adoc
similarity index 100%
rename from src/main/antora/modules/ROOT/pages/couchbase/entity.adoc
rename to spring-data-couchbase/src/main/antora/modules/ROOT/pages/couchbase/entity.adoc
diff --git a/src/main/antora/modules/ROOT/pages/couchbase/fieldlevelencryption.adoc b/spring-data-couchbase/src/main/antora/modules/ROOT/pages/couchbase/fieldlevelencryption.adoc
similarity index 100%
rename from src/main/antora/modules/ROOT/pages/couchbase/fieldlevelencryption.adoc
rename to spring-data-couchbase/src/main/antora/modules/ROOT/pages/couchbase/fieldlevelencryption.adoc
diff --git a/src/main/antora/modules/ROOT/pages/couchbase/reactiverepository.adoc b/spring-data-couchbase/src/main/antora/modules/ROOT/pages/couchbase/reactiverepository.adoc
similarity index 100%
rename from src/main/antora/modules/ROOT/pages/couchbase/reactiverepository.adoc
rename to spring-data-couchbase/src/main/antora/modules/ROOT/pages/couchbase/reactiverepository.adoc
diff --git a/src/main/antora/modules/ROOT/pages/couchbase/repository.adoc b/spring-data-couchbase/src/main/antora/modules/ROOT/pages/couchbase/repository.adoc
similarity index 100%
rename from src/main/antora/modules/ROOT/pages/couchbase/repository.adoc
rename to spring-data-couchbase/src/main/antora/modules/ROOT/pages/couchbase/repository.adoc
diff --git a/src/main/antora/modules/ROOT/pages/couchbase/template.adoc b/spring-data-couchbase/src/main/antora/modules/ROOT/pages/couchbase/template.adoc
similarity index 100%
rename from src/main/antora/modules/ROOT/pages/couchbase/template.adoc
rename to spring-data-couchbase/src/main/antora/modules/ROOT/pages/couchbase/template.adoc
diff --git a/src/main/antora/modules/ROOT/pages/couchbase/transactions.adoc b/spring-data-couchbase/src/main/antora/modules/ROOT/pages/couchbase/transactions.adoc
similarity index 100%
rename from src/main/antora/modules/ROOT/pages/couchbase/transactions.adoc
rename to spring-data-couchbase/src/main/antora/modules/ROOT/pages/couchbase/transactions.adoc
diff --git a/src/main/antora/modules/ROOT/pages/index.adoc b/spring-data-couchbase/src/main/antora/modules/ROOT/pages/index.adoc
similarity index 100%
rename from src/main/antora/modules/ROOT/pages/index.adoc
rename to spring-data-couchbase/src/main/antora/modules/ROOT/pages/index.adoc
diff --git a/src/main/antora/modules/ROOT/pages/repositories.adoc b/spring-data-couchbase/src/main/antora/modules/ROOT/pages/repositories.adoc
similarity index 100%
rename from src/main/antora/modules/ROOT/pages/repositories.adoc
rename to spring-data-couchbase/src/main/antora/modules/ROOT/pages/repositories.adoc
diff --git a/src/main/antora/modules/ROOT/pages/repositories/core-concepts.adoc b/spring-data-couchbase/src/main/antora/modules/ROOT/pages/repositories/core-concepts.adoc
similarity index 100%
rename from src/main/antora/modules/ROOT/pages/repositories/core-concepts.adoc
rename to spring-data-couchbase/src/main/antora/modules/ROOT/pages/repositories/core-concepts.adoc
diff --git a/src/main/antora/modules/ROOT/pages/repositories/core-domain-events.adoc b/spring-data-couchbase/src/main/antora/modules/ROOT/pages/repositories/core-domain-events.adoc
similarity index 100%
rename from src/main/antora/modules/ROOT/pages/repositories/core-domain-events.adoc
rename to spring-data-couchbase/src/main/antora/modules/ROOT/pages/repositories/core-domain-events.adoc
diff --git a/src/main/antora/modules/ROOT/pages/repositories/core-extensions.adoc b/spring-data-couchbase/src/main/antora/modules/ROOT/pages/repositories/core-extensions.adoc
similarity index 100%
rename from src/main/antora/modules/ROOT/pages/repositories/core-extensions.adoc
rename to spring-data-couchbase/src/main/antora/modules/ROOT/pages/repositories/core-extensions.adoc
diff --git a/src/main/antora/modules/ROOT/pages/repositories/create-instances.adoc b/spring-data-couchbase/src/main/antora/modules/ROOT/pages/repositories/create-instances.adoc
similarity index 100%
rename from src/main/antora/modules/ROOT/pages/repositories/create-instances.adoc
rename to spring-data-couchbase/src/main/antora/modules/ROOT/pages/repositories/create-instances.adoc
diff --git a/src/main/antora/modules/ROOT/pages/repositories/custom-implementations.adoc b/spring-data-couchbase/src/main/antora/modules/ROOT/pages/repositories/custom-implementations.adoc
similarity index 100%
rename from src/main/antora/modules/ROOT/pages/repositories/custom-implementations.adoc
rename to spring-data-couchbase/src/main/antora/modules/ROOT/pages/repositories/custom-implementations.adoc
diff --git a/src/main/antora/modules/ROOT/pages/repositories/definition.adoc b/spring-data-couchbase/src/main/antora/modules/ROOT/pages/repositories/definition.adoc
similarity index 100%
rename from src/main/antora/modules/ROOT/pages/repositories/definition.adoc
rename to spring-data-couchbase/src/main/antora/modules/ROOT/pages/repositories/definition.adoc
diff --git a/src/main/antora/modules/ROOT/pages/repositories/null-handling.adoc b/spring-data-couchbase/src/main/antora/modules/ROOT/pages/repositories/null-handling.adoc
similarity index 100%
rename from src/main/antora/modules/ROOT/pages/repositories/null-handling.adoc
rename to spring-data-couchbase/src/main/antora/modules/ROOT/pages/repositories/null-handling.adoc
diff --git a/src/main/antora/modules/ROOT/pages/repositories/projections.adoc b/spring-data-couchbase/src/main/antora/modules/ROOT/pages/repositories/projections.adoc
similarity index 100%
rename from src/main/antora/modules/ROOT/pages/repositories/projections.adoc
rename to spring-data-couchbase/src/main/antora/modules/ROOT/pages/repositories/projections.adoc
diff --git a/src/main/antora/modules/ROOT/pages/repositories/query-keywords-reference.adoc b/spring-data-couchbase/src/main/antora/modules/ROOT/pages/repositories/query-keywords-reference.adoc
similarity index 100%
rename from src/main/antora/modules/ROOT/pages/repositories/query-keywords-reference.adoc
rename to spring-data-couchbase/src/main/antora/modules/ROOT/pages/repositories/query-keywords-reference.adoc
diff --git a/src/main/antora/modules/ROOT/pages/repositories/query-methods-details.adoc b/spring-data-couchbase/src/main/antora/modules/ROOT/pages/repositories/query-methods-details.adoc
similarity index 100%
rename from src/main/antora/modules/ROOT/pages/repositories/query-methods-details.adoc
rename to spring-data-couchbase/src/main/antora/modules/ROOT/pages/repositories/query-methods-details.adoc
diff --git a/src/main/antora/modules/ROOT/pages/repositories/query-return-types-reference.adoc b/spring-data-couchbase/src/main/antora/modules/ROOT/pages/repositories/query-return-types-reference.adoc
similarity index 100%
rename from src/main/antora/modules/ROOT/pages/repositories/query-return-types-reference.adoc
rename to spring-data-couchbase/src/main/antora/modules/ROOT/pages/repositories/query-return-types-reference.adoc
diff --git a/src/main/antora/resources/antora-resources/antora.yml b/spring-data-couchbase/src/main/antora/resources/antora-resources/antora.yml
similarity index 100%
rename from src/main/antora/resources/antora-resources/antora.yml
rename to spring-data-couchbase/src/main/antora/resources/antora-resources/antora.yml
diff --git a/src/main/java/org/springframework/data/couchbase/CouchbaseClientFactory.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/CouchbaseClientFactory.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/CouchbaseClientFactory.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/CouchbaseClientFactory.java
diff --git a/src/main/java/org/springframework/data/couchbase/SimpleCouchbaseClientFactory.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/SimpleCouchbaseClientFactory.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/SimpleCouchbaseClientFactory.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/SimpleCouchbaseClientFactory.java
diff --git a/src/main/java/org/springframework/data/couchbase/cache/CacheKeyPrefix.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/cache/CacheKeyPrefix.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/cache/CacheKeyPrefix.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/cache/CacheKeyPrefix.java
diff --git a/src/main/java/org/springframework/data/couchbase/cache/CouchbaseCache.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/cache/CouchbaseCache.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/cache/CouchbaseCache.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/cache/CouchbaseCache.java
diff --git a/src/main/java/org/springframework/data/couchbase/cache/CouchbaseCacheConfiguration.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/cache/CouchbaseCacheConfiguration.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/cache/CouchbaseCacheConfiguration.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/cache/CouchbaseCacheConfiguration.java
diff --git a/src/main/java/org/springframework/data/couchbase/cache/CouchbaseCacheManager.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/cache/CouchbaseCacheManager.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/cache/CouchbaseCacheManager.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/cache/CouchbaseCacheManager.java
diff --git a/src/main/java/org/springframework/data/couchbase/cache/CouchbaseCacheWriter.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/cache/CouchbaseCacheWriter.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/cache/CouchbaseCacheWriter.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/cache/CouchbaseCacheWriter.java
diff --git a/src/main/java/org/springframework/data/couchbase/cache/DefaultCouchbaseCacheWriter.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/cache/DefaultCouchbaseCacheWriter.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/cache/DefaultCouchbaseCacheWriter.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/cache/DefaultCouchbaseCacheWriter.java
diff --git a/src/main/java/org/springframework/data/couchbase/config/AbstractCouchbaseConfiguration.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/config/AbstractCouchbaseConfiguration.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/config/AbstractCouchbaseConfiguration.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/config/AbstractCouchbaseConfiguration.java
diff --git a/src/main/java/org/springframework/data/couchbase/config/BeanNames.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/config/BeanNames.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/config/BeanNames.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/config/BeanNames.java
diff --git a/src/main/java/org/springframework/data/couchbase/config/package-info.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/config/package-info.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/config/package-info.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/config/package-info.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/AbstractTemplateSupport.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/AbstractTemplateSupport.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/AbstractTemplateSupport.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/AbstractTemplateSupport.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/CollectionCallback.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/CollectionCallback.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/CollectionCallback.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/CollectionCallback.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/CouchbaseDataIntegrityViolationException.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/CouchbaseDataIntegrityViolationException.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/CouchbaseDataIntegrityViolationException.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/CouchbaseDataIntegrityViolationException.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/CouchbaseExceptionTranslator.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/CouchbaseExceptionTranslator.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/CouchbaseExceptionTranslator.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/CouchbaseExceptionTranslator.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/CouchbaseOperations.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/CouchbaseOperations.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/CouchbaseOperations.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/CouchbaseOperations.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/CouchbaseQueryExecutionException.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/CouchbaseQueryExecutionException.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/CouchbaseQueryExecutionException.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/CouchbaseQueryExecutionException.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/CouchbaseTemplate.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/CouchbaseTemplate.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/CouchbaseTemplate.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/CouchbaseTemplate.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/CouchbaseTemplateSupport.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/CouchbaseTemplateSupport.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/CouchbaseTemplateSupport.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/CouchbaseTemplateSupport.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/ExecutableExistsByIdOperation.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ExecutableExistsByIdOperation.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/ExecutableExistsByIdOperation.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ExecutableExistsByIdOperation.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/ExecutableExistsByIdOperationSupport.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ExecutableExistsByIdOperationSupport.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/ExecutableExistsByIdOperationSupport.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ExecutableExistsByIdOperationSupport.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/ExecutableFindByAnalyticsOperation.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ExecutableFindByAnalyticsOperation.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/ExecutableFindByAnalyticsOperation.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ExecutableFindByAnalyticsOperation.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/ExecutableFindByAnalyticsOperationSupport.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ExecutableFindByAnalyticsOperationSupport.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/ExecutableFindByAnalyticsOperationSupport.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ExecutableFindByAnalyticsOperationSupport.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/ExecutableFindByIdOperation.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ExecutableFindByIdOperation.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/ExecutableFindByIdOperation.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ExecutableFindByIdOperation.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/ExecutableFindByIdOperationSupport.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ExecutableFindByIdOperationSupport.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/ExecutableFindByIdOperationSupport.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ExecutableFindByIdOperationSupport.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/ExecutableFindByQueryOperation.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ExecutableFindByQueryOperation.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/ExecutableFindByQueryOperation.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ExecutableFindByQueryOperation.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/ExecutableFindByQueryOperationSupport.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ExecutableFindByQueryOperationSupport.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/ExecutableFindByQueryOperationSupport.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ExecutableFindByQueryOperationSupport.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/ExecutableFindFromReplicasByIdOperation.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ExecutableFindFromReplicasByIdOperation.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/ExecutableFindFromReplicasByIdOperation.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ExecutableFindFromReplicasByIdOperation.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/ExecutableFindFromReplicasByIdOperationSupport.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ExecutableFindFromReplicasByIdOperationSupport.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/ExecutableFindFromReplicasByIdOperationSupport.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ExecutableFindFromReplicasByIdOperationSupport.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/ExecutableInsertByIdOperation.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ExecutableInsertByIdOperation.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/ExecutableInsertByIdOperation.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ExecutableInsertByIdOperation.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/ExecutableInsertByIdOperationSupport.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ExecutableInsertByIdOperationSupport.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/ExecutableInsertByIdOperationSupport.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ExecutableInsertByIdOperationSupport.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/ExecutableMutateInByIdOperation.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ExecutableMutateInByIdOperation.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/ExecutableMutateInByIdOperation.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ExecutableMutateInByIdOperation.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/ExecutableMutateInByIdOperationSupport.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ExecutableMutateInByIdOperationSupport.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/ExecutableMutateInByIdOperationSupport.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ExecutableMutateInByIdOperationSupport.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/ExecutableRangeScanOperation.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ExecutableRangeScanOperation.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/ExecutableRangeScanOperation.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ExecutableRangeScanOperation.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/ExecutableRangeScanOperationSupport.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ExecutableRangeScanOperationSupport.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/ExecutableRangeScanOperationSupport.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ExecutableRangeScanOperationSupport.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/ExecutableRemoveByIdOperation.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ExecutableRemoveByIdOperation.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/ExecutableRemoveByIdOperation.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ExecutableRemoveByIdOperation.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/ExecutableRemoveByIdOperationSupport.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ExecutableRemoveByIdOperationSupport.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/ExecutableRemoveByIdOperationSupport.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ExecutableRemoveByIdOperationSupport.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/ExecutableRemoveByQueryOperation.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ExecutableRemoveByQueryOperation.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/ExecutableRemoveByQueryOperation.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ExecutableRemoveByQueryOperation.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/ExecutableRemoveByQueryOperationSupport.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ExecutableRemoveByQueryOperationSupport.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/ExecutableRemoveByQueryOperationSupport.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ExecutableRemoveByQueryOperationSupport.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/ExecutableReplaceByIdOperation.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ExecutableReplaceByIdOperation.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/ExecutableReplaceByIdOperation.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ExecutableReplaceByIdOperation.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/ExecutableReplaceByIdOperationSupport.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ExecutableReplaceByIdOperationSupport.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/ExecutableReplaceByIdOperationSupport.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ExecutableReplaceByIdOperationSupport.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/ExecutableUpsertByIdOperation.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ExecutableUpsertByIdOperation.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/ExecutableUpsertByIdOperation.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ExecutableUpsertByIdOperation.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/ExecutableUpsertByIdOperationSupport.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ExecutableUpsertByIdOperationSupport.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/ExecutableUpsertByIdOperationSupport.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ExecutableUpsertByIdOperationSupport.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/FluentCouchbaseOperations.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/FluentCouchbaseOperations.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/FluentCouchbaseOperations.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/FluentCouchbaseOperations.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/NonReactiveSupportWrapper.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/NonReactiveSupportWrapper.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/NonReactiveSupportWrapper.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/NonReactiveSupportWrapper.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/OperationCancellationException.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/OperationCancellationException.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/OperationCancellationException.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/OperationCancellationException.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/OperationInterruptedException.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/OperationInterruptedException.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/OperationInterruptedException.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/OperationInterruptedException.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/ReactiveCouchbaseOperations.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveCouchbaseOperations.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/ReactiveCouchbaseOperations.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveCouchbaseOperations.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/ReactiveCouchbaseTemplate.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveCouchbaseTemplate.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/ReactiveCouchbaseTemplate.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveCouchbaseTemplate.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/ReactiveCouchbaseTemplateSupport.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveCouchbaseTemplateSupport.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/ReactiveCouchbaseTemplateSupport.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveCouchbaseTemplateSupport.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/ReactiveExistsByIdOperation.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveExistsByIdOperation.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/ReactiveExistsByIdOperation.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveExistsByIdOperation.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/ReactiveExistsByIdOperationSupport.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveExistsByIdOperationSupport.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/ReactiveExistsByIdOperationSupport.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveExistsByIdOperationSupport.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/ReactiveFindByAnalyticsOperation.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveFindByAnalyticsOperation.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/ReactiveFindByAnalyticsOperation.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveFindByAnalyticsOperation.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/ReactiveFindByAnalyticsOperationSupport.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveFindByAnalyticsOperationSupport.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/ReactiveFindByAnalyticsOperationSupport.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveFindByAnalyticsOperationSupport.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/ReactiveFindByIdOperation.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveFindByIdOperation.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/ReactiveFindByIdOperation.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveFindByIdOperation.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/ReactiveFindByIdOperationSupport.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveFindByIdOperationSupport.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/ReactiveFindByIdOperationSupport.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveFindByIdOperationSupport.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/ReactiveFindByQueryOperation.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveFindByQueryOperation.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/ReactiveFindByQueryOperation.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveFindByQueryOperation.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/ReactiveFindByQueryOperationSupport.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveFindByQueryOperationSupport.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/ReactiveFindByQueryOperationSupport.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveFindByQueryOperationSupport.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/ReactiveFindFromReplicasByIdOperation.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveFindFromReplicasByIdOperation.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/ReactiveFindFromReplicasByIdOperation.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveFindFromReplicasByIdOperation.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/ReactiveFindFromReplicasByIdOperationSupport.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveFindFromReplicasByIdOperationSupport.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/ReactiveFindFromReplicasByIdOperationSupport.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveFindFromReplicasByIdOperationSupport.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/ReactiveFluentCouchbaseOperations.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveFluentCouchbaseOperations.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/ReactiveFluentCouchbaseOperations.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveFluentCouchbaseOperations.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/ReactiveInsertByIdOperation.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveInsertByIdOperation.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/ReactiveInsertByIdOperation.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveInsertByIdOperation.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/ReactiveInsertByIdOperationSupport.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveInsertByIdOperationSupport.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/ReactiveInsertByIdOperationSupport.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveInsertByIdOperationSupport.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/ReactiveMutateInByIdOperation.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveMutateInByIdOperation.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/ReactiveMutateInByIdOperation.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveMutateInByIdOperation.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/ReactiveMutateInByIdOperationSupport.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveMutateInByIdOperationSupport.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/ReactiveMutateInByIdOperationSupport.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveMutateInByIdOperationSupport.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/ReactiveRangeScanOperation.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveRangeScanOperation.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/ReactiveRangeScanOperation.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveRangeScanOperation.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/ReactiveRangeScanOperationSupport.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveRangeScanOperationSupport.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/ReactiveRangeScanOperationSupport.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveRangeScanOperationSupport.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/ReactiveRemoveByIdOperation.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveRemoveByIdOperation.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/ReactiveRemoveByIdOperation.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveRemoveByIdOperation.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/ReactiveRemoveByIdOperationSupport.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveRemoveByIdOperationSupport.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/ReactiveRemoveByIdOperationSupport.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveRemoveByIdOperationSupport.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/ReactiveRemoveByQueryOperation.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveRemoveByQueryOperation.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/ReactiveRemoveByQueryOperation.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveRemoveByQueryOperation.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/ReactiveRemoveByQueryOperationSupport.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveRemoveByQueryOperationSupport.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/ReactiveRemoveByQueryOperationSupport.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveRemoveByQueryOperationSupport.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/ReactiveReplaceByIdOperation.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveReplaceByIdOperation.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/ReactiveReplaceByIdOperation.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveReplaceByIdOperation.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/ReactiveReplaceByIdOperationSupport.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveReplaceByIdOperationSupport.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/ReactiveReplaceByIdOperationSupport.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveReplaceByIdOperationSupport.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/ReactiveTemplateSupport.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveTemplateSupport.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/ReactiveTemplateSupport.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveTemplateSupport.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/ReactiveUpsertByIdOperation.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveUpsertByIdOperation.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/ReactiveUpsertByIdOperation.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveUpsertByIdOperation.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/ReactiveUpsertByIdOperationSupport.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveUpsertByIdOperationSupport.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/ReactiveUpsertByIdOperationSupport.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/ReactiveUpsertByIdOperationSupport.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/RemoveResult.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/RemoveResult.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/RemoveResult.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/RemoveResult.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/TemplateSupport.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/TemplateSupport.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/TemplateSupport.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/TemplateSupport.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/TransactionalSupport.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/TransactionalSupport.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/TransactionalSupport.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/TransactionalSupport.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/UnsupportedCouchbaseFeatureException.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/UnsupportedCouchbaseFeatureException.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/UnsupportedCouchbaseFeatureException.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/UnsupportedCouchbaseFeatureException.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/convert/AbstractCouchbaseConverter.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/AbstractCouchbaseConverter.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/convert/AbstractCouchbaseConverter.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/AbstractCouchbaseConverter.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/convert/BooleanToEnumConverterFactory.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/BooleanToEnumConverterFactory.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/convert/BooleanToEnumConverterFactory.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/BooleanToEnumConverterFactory.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/convert/ConverterHasNoConversion.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/ConverterHasNoConversion.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/convert/ConverterHasNoConversion.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/ConverterHasNoConversion.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/convert/ConverterRegistration.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/ConverterRegistration.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/convert/ConverterRegistration.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/ConverterRegistration.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/convert/CouchbaseConversionContext.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/CouchbaseConversionContext.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/convert/CouchbaseConversionContext.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/CouchbaseConversionContext.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/convert/CouchbaseConverter.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/CouchbaseConverter.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/convert/CouchbaseConverter.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/CouchbaseConverter.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/convert/CouchbaseCustomConversions.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/CouchbaseCustomConversions.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/convert/CouchbaseCustomConversions.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/CouchbaseCustomConversions.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/convert/CouchbaseDocumentPropertyAccessor.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/CouchbaseDocumentPropertyAccessor.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/convert/CouchbaseDocumentPropertyAccessor.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/CouchbaseDocumentPropertyAccessor.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/convert/CouchbaseJsr310Converters.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/CouchbaseJsr310Converters.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/convert/CouchbaseJsr310Converters.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/CouchbaseJsr310Converters.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/convert/CouchbasePropertyValueConverterFactory.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/CouchbasePropertyValueConverterFactory.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/convert/CouchbasePropertyValueConverterFactory.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/CouchbasePropertyValueConverterFactory.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/convert/CouchbaseTypeMapper.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/CouchbaseTypeMapper.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/convert/CouchbaseTypeMapper.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/CouchbaseTypeMapper.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/convert/CouchbaseWriter.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/CouchbaseWriter.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/convert/CouchbaseWriter.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/CouchbaseWriter.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/convert/CryptoConverter.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/CryptoConverter.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/convert/CryptoConverter.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/CryptoConverter.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/convert/CustomConversions.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/CustomConversions.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/convert/CustomConversions.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/CustomConversions.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/convert/DateConverters.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/DateConverters.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/convert/DateConverters.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/DateConverters.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/convert/DefaultCouchbaseTypeMapper.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/DefaultCouchbaseTypeMapper.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/convert/DefaultCouchbaseTypeMapper.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/DefaultCouchbaseTypeMapper.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/convert/IntegerToEnumConverterFactory.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/IntegerToEnumConverterFactory.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/convert/IntegerToEnumConverterFactory.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/IntegerToEnumConverterFactory.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/convert/JsonValueConverter.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/JsonValueConverter.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/convert/JsonValueConverter.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/JsonValueConverter.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/convert/MappingCouchbaseConverter.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/MappingCouchbaseConverter.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/convert/MappingCouchbaseConverter.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/MappingCouchbaseConverter.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/convert/OtherConverters.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/OtherConverters.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/convert/OtherConverters.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/OtherConverters.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/convert/StringToEnumConverterFactory.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/StringToEnumConverterFactory.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/convert/StringToEnumConverterFactory.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/StringToEnumConverterFactory.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/convert/TypeAwareTypeInformationMapper.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/TypeAwareTypeInformationMapper.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/convert/TypeAwareTypeInformationMapper.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/TypeAwareTypeInformationMapper.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/convert/join/N1qlJoinResolver.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/join/N1qlJoinResolver.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/convert/join/N1qlJoinResolver.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/join/N1qlJoinResolver.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/convert/package-info.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/package-info.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/convert/package-info.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/package-info.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/convert/translation/JacksonTranslationService.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/translation/JacksonTranslationService.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/convert/translation/JacksonTranslationService.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/translation/JacksonTranslationService.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/convert/translation/TranslationService.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/translation/TranslationService.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/convert/translation/TranslationService.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/translation/TranslationService.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/convert/translation/package-info.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/translation/package-info.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/convert/translation/package-info.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/translation/package-info.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/index/CompositeQueryIndex.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/index/CompositeQueryIndex.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/index/CompositeQueryIndex.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/index/CompositeQueryIndex.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/index/CompositeQueryIndexes.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/index/CompositeQueryIndexes.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/index/CompositeQueryIndexes.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/index/CompositeQueryIndexes.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/index/CouchbasePersistentEntityIndexCreator.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/index/CouchbasePersistentEntityIndexCreator.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/index/CouchbasePersistentEntityIndexCreator.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/index/CouchbasePersistentEntityIndexCreator.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/index/CouchbasePersistentEntityIndexResolver.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/index/CouchbasePersistentEntityIndexResolver.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/index/CouchbasePersistentEntityIndexResolver.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/index/CouchbasePersistentEntityIndexResolver.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/index/IndexDefinition.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/index/IndexDefinition.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/index/IndexDefinition.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/index/IndexDefinition.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/index/QueryIndexDirection.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/index/QueryIndexDirection.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/index/QueryIndexDirection.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/index/QueryIndexDirection.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/index/QueryIndexResolver.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/index/QueryIndexResolver.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/index/QueryIndexResolver.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/index/QueryIndexResolver.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/index/QueryIndexed.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/index/QueryIndexed.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/index/QueryIndexed.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/index/QueryIndexed.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/mapping/BasicCouchbasePersistentEntity.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/BasicCouchbasePersistentEntity.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/mapping/BasicCouchbasePersistentEntity.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/BasicCouchbasePersistentEntity.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/mapping/BasicCouchbasePersistentProperty.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/BasicCouchbasePersistentProperty.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/mapping/BasicCouchbasePersistentProperty.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/BasicCouchbasePersistentProperty.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/mapping/CouchbaseDocument.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/CouchbaseDocument.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/mapping/CouchbaseDocument.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/CouchbaseDocument.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/mapping/CouchbaseList.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/CouchbaseList.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/mapping/CouchbaseList.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/CouchbaseList.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/mapping/CouchbaseMappingContext.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/CouchbaseMappingContext.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/mapping/CouchbaseMappingContext.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/CouchbaseMappingContext.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/mapping/CouchbasePersistentEntity.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/CouchbasePersistentEntity.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/mapping/CouchbasePersistentEntity.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/CouchbasePersistentEntity.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/mapping/CouchbasePersistentProperty.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/CouchbasePersistentProperty.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/mapping/CouchbasePersistentProperty.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/CouchbasePersistentProperty.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/mapping/CouchbaseSimpleTypes.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/CouchbaseSimpleTypes.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/mapping/CouchbaseSimpleTypes.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/CouchbaseSimpleTypes.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/mapping/CouchbaseStorable.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/CouchbaseStorable.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/mapping/CouchbaseStorable.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/CouchbaseStorable.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/mapping/Document.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/Document.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/mapping/Document.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/Document.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/mapping/Durability.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/Durability.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/mapping/Durability.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/Durability.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/mapping/Expiration.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/Expiration.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/mapping/Expiration.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/Expiration.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/mapping/Expiry.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/Expiry.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/mapping/Expiry.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/Expiry.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/mapping/Field.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/Field.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/mapping/Field.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/Field.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/mapping/KeySettings.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/KeySettings.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/mapping/KeySettings.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/KeySettings.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/mapping/event/AbstractCouchbaseEventListener.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/event/AbstractCouchbaseEventListener.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/mapping/event/AbstractCouchbaseEventListener.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/event/AbstractCouchbaseEventListener.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/mapping/event/AfterConvertCallback.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/event/AfterConvertCallback.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/mapping/event/AfterConvertCallback.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/event/AfterConvertCallback.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/mapping/event/AfterDeleteEvent.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/event/AfterDeleteEvent.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/mapping/event/AfterDeleteEvent.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/event/AfterDeleteEvent.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/mapping/event/AfterSaveEvent.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/event/AfterSaveEvent.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/mapping/event/AfterSaveEvent.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/event/AfterSaveEvent.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/mapping/event/AuditingEntityCallback.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/event/AuditingEntityCallback.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/mapping/event/AuditingEntityCallback.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/event/AuditingEntityCallback.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/mapping/event/AuditingEventListener.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/event/AuditingEventListener.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/mapping/event/AuditingEventListener.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/event/AuditingEventListener.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/mapping/event/BeforeConvertCallback.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/event/BeforeConvertCallback.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/mapping/event/BeforeConvertCallback.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/event/BeforeConvertCallback.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/mapping/event/BeforeConvertEvent.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/event/BeforeConvertEvent.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/mapping/event/BeforeConvertEvent.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/event/BeforeConvertEvent.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/mapping/event/BeforeDeleteEvent.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/event/BeforeDeleteEvent.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/mapping/event/BeforeDeleteEvent.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/event/BeforeDeleteEvent.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/mapping/event/BeforeSaveEvent.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/event/BeforeSaveEvent.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/mapping/event/BeforeSaveEvent.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/event/BeforeSaveEvent.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/mapping/event/CouchbaseMappingEvent.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/event/CouchbaseMappingEvent.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/mapping/event/CouchbaseMappingEvent.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/event/CouchbaseMappingEvent.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/mapping/event/LoggingEventListener.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/event/LoggingEventListener.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/mapping/event/LoggingEventListener.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/event/LoggingEventListener.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/mapping/event/ReactiveAfterConvertCallback.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/event/ReactiveAfterConvertCallback.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/mapping/event/ReactiveAfterConvertCallback.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/event/ReactiveAfterConvertCallback.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/mapping/event/ReactiveAuditingEntityCallback.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/event/ReactiveAuditingEntityCallback.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/mapping/event/ReactiveAuditingEntityCallback.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/event/ReactiveAuditingEntityCallback.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/mapping/event/ReactiveBeforeConvertCallback.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/event/ReactiveBeforeConvertCallback.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/mapping/event/ReactiveBeforeConvertCallback.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/event/ReactiveBeforeConvertCallback.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/mapping/event/ValidatingCouchbaseEventListener.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/event/ValidatingCouchbaseEventListener.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/mapping/event/ValidatingCouchbaseEventListener.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/event/ValidatingCouchbaseEventListener.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/mapping/event/package-info.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/event/package-info.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/mapping/event/package-info.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/event/package-info.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/mapping/id/GeneratedValue.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/id/GeneratedValue.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/mapping/id/GeneratedValue.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/id/GeneratedValue.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/mapping/id/GenerationStrategy.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/id/GenerationStrategy.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/mapping/id/GenerationStrategy.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/id/GenerationStrategy.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/mapping/id/IdAttribute.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/id/IdAttribute.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/mapping/id/IdAttribute.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/id/IdAttribute.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/mapping/id/IdPrefix.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/id/IdPrefix.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/mapping/id/IdPrefix.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/id/IdPrefix.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/mapping/id/IdSuffix.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/id/IdSuffix.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/mapping/id/IdSuffix.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/id/IdSuffix.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/mapping/package-info.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/package-info.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/mapping/package-info.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/mapping/package-info.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/package-info.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/package-info.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/package-info.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/package-info.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/query/AnalyticsQuery.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/query/AnalyticsQuery.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/query/AnalyticsQuery.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/query/AnalyticsQuery.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/query/Consistency.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/query/Consistency.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/query/Consistency.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/query/Consistency.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/query/Dimensional.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/query/Dimensional.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/query/Dimensional.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/query/Dimensional.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/query/FetchType.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/query/FetchType.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/query/FetchType.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/query/FetchType.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/query/HashSide.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/query/HashSide.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/query/HashSide.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/query/HashSide.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/query/Meta.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/query/Meta.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/query/Meta.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/query/Meta.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/query/N1QLExpression.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/query/N1QLExpression.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/query/N1QLExpression.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/query/N1QLExpression.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/query/N1QLQuery.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/query/N1QLQuery.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/query/N1QLQuery.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/query/N1QLQuery.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/query/N1qlJoin.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/query/N1qlJoin.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/query/N1qlJoin.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/query/N1qlJoin.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/query/N1qlPrimaryIndexed.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/query/N1qlPrimaryIndexed.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/query/N1qlPrimaryIndexed.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/query/N1qlPrimaryIndexed.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/query/N1qlSecondaryIndexed.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/query/N1qlSecondaryIndexed.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/query/N1qlSecondaryIndexed.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/query/N1qlSecondaryIndexed.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/query/OptionsBuilder.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/query/OptionsBuilder.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/query/OptionsBuilder.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/query/OptionsBuilder.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/query/Query.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/query/Query.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/query/Query.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/query/Query.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/query/QueryCriteria.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/query/QueryCriteria.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/query/QueryCriteria.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/query/QueryCriteria.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/query/QueryCriteriaDefinition.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/query/QueryCriteriaDefinition.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/query/QueryCriteriaDefinition.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/query/QueryCriteriaDefinition.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/query/StringQuery.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/query/StringQuery.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/query/StringQuery.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/query/StringQuery.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/query/View.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/query/View.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/query/View.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/query/View.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/query/ViewIndexed.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/query/ViewIndexed.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/query/ViewIndexed.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/query/ViewIndexed.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/query/WithConsistency.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/query/WithConsistency.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/query/WithConsistency.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/query/WithConsistency.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/query/package-info.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/query/package-info.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/query/package-info.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/query/package-info.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/support/AnyId.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/AnyId.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/support/AnyId.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/AnyId.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/support/AnyIdReactive.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/AnyIdReactive.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/support/AnyIdReactive.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/AnyIdReactive.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/support/ConsistentWith.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/ConsistentWith.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/support/ConsistentWith.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/ConsistentWith.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/support/InCollection.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/InCollection.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/support/InCollection.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/InCollection.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/support/InScope.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/InScope.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/support/InScope.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/InScope.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/support/OneAndAll.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/OneAndAll.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/support/OneAndAll.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/OneAndAll.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/support/OneAndAllEntity.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/OneAndAllEntity.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/support/OneAndAllEntity.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/OneAndAllEntity.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/support/OneAndAllEntityReactive.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/OneAndAllEntityReactive.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/support/OneAndAllEntityReactive.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/OneAndAllEntityReactive.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/support/OneAndAllExists.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/OneAndAllExists.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/support/OneAndAllExists.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/OneAndAllExists.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/support/OneAndAllExistsReactive.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/OneAndAllExistsReactive.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/support/OneAndAllExistsReactive.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/OneAndAllExistsReactive.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/support/OneAndAllId.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/OneAndAllId.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/support/OneAndAllId.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/OneAndAllId.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/support/OneAndAllIdReactive.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/OneAndAllIdReactive.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/support/OneAndAllIdReactive.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/OneAndAllIdReactive.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/support/OneAndAllReactive.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/OneAndAllReactive.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/support/OneAndAllReactive.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/OneAndAllReactive.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/support/PseudoArgs.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/PseudoArgs.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/support/PseudoArgs.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/PseudoArgs.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/support/TemplateUtils.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/TemplateUtils.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/support/TemplateUtils.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/TemplateUtils.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/support/WithAnalyticsConsistency.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/WithAnalyticsConsistency.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/support/WithAnalyticsConsistency.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/WithAnalyticsConsistency.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/support/WithAnalyticsOptions.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/WithAnalyticsOptions.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/support/WithAnalyticsOptions.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/WithAnalyticsOptions.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/support/WithAnalyticsQuery.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/WithAnalyticsQuery.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/support/WithAnalyticsQuery.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/WithAnalyticsQuery.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/support/WithBatchByteLimit.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/WithBatchByteLimit.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/support/WithBatchByteLimit.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/WithBatchByteLimit.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/support/WithBatchItemLimit.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/WithBatchItemLimit.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/support/WithBatchItemLimit.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/WithBatchItemLimit.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/support/WithConsistency.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/WithConsistency.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/support/WithConsistency.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/WithConsistency.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/support/WithDistinct.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/WithDistinct.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/support/WithDistinct.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/WithDistinct.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/support/WithDurability.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/WithDurability.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/support/WithDurability.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/WithDurability.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/support/WithExistsOptions.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/WithExistsOptions.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/support/WithExistsOptions.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/WithExistsOptions.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/support/WithExpiry.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/WithExpiry.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/support/WithExpiry.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/WithExpiry.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/support/WithGetAnyReplicaOptions.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/WithGetAnyReplicaOptions.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/support/WithGetAnyReplicaOptions.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/WithGetAnyReplicaOptions.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/support/WithGetOptions.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/WithGetOptions.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/support/WithGetOptions.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/WithGetOptions.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/support/WithInsertOptions.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/WithInsertOptions.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/support/WithInsertOptions.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/WithInsertOptions.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/support/WithLock.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/WithLock.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/support/WithLock.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/WithLock.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/support/WithMutateInOptions.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/WithMutateInOptions.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/support/WithMutateInOptions.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/WithMutateInOptions.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/support/WithMutateInPaths.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/WithMutateInPaths.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/support/WithMutateInPaths.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/WithMutateInPaths.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/support/WithProjecting.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/WithProjecting.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/support/WithProjecting.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/WithProjecting.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/support/WithProjection.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/WithProjection.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/support/WithProjection.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/WithProjection.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/support/WithProjectionId.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/WithProjectionId.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/support/WithProjectionId.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/WithProjectionId.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/support/WithQuery.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/WithQuery.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/support/WithQuery.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/WithQuery.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/support/WithQueryOptions.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/WithQueryOptions.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/support/WithQueryOptions.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/WithQueryOptions.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/support/WithRemoveOptions.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/WithRemoveOptions.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/support/WithRemoveOptions.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/WithRemoveOptions.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/support/WithReplaceOptions.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/WithReplaceOptions.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/support/WithReplaceOptions.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/WithReplaceOptions.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/support/WithScanOptions.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/WithScanOptions.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/support/WithScanOptions.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/WithScanOptions.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/support/WithScanSort.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/WithScanSort.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/support/WithScanSort.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/WithScanSort.java
diff --git a/src/main/java/org/springframework/data/couchbase/core/support/WithUpsertOptions.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/WithUpsertOptions.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/core/support/WithUpsertOptions.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/support/WithUpsertOptions.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/Collection.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/Collection.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/Collection.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/Collection.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/CouchbaseRepository.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/CouchbaseRepository.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/CouchbaseRepository.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/CouchbaseRepository.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/DynamicProxyable.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/DynamicProxyable.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/DynamicProxyable.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/DynamicProxyable.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/Options.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/Options.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/Options.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/Options.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/Query.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/Query.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/Query.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/Query.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/ReactiveCouchbaseRepository.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/ReactiveCouchbaseRepository.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/ReactiveCouchbaseRepository.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/ReactiveCouchbaseRepository.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/ScanConsistency.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/ScanConsistency.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/ScanConsistency.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/ScanConsistency.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/Scope.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/Scope.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/Scope.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/Scope.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/auditing/CouchbaseAuditingRegistrar.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/auditing/CouchbaseAuditingRegistrar.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/auditing/CouchbaseAuditingRegistrar.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/auditing/CouchbaseAuditingRegistrar.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/auditing/EnableCouchbaseAuditing.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/auditing/EnableCouchbaseAuditing.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/auditing/EnableCouchbaseAuditing.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/auditing/EnableCouchbaseAuditing.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/auditing/EnableReactiveCouchbaseAuditing.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/auditing/EnableReactiveCouchbaseAuditing.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/auditing/EnableReactiveCouchbaseAuditing.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/auditing/EnableReactiveCouchbaseAuditing.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/auditing/PersistentEntitiesFactoryBean.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/auditing/PersistentEntitiesFactoryBean.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/auditing/PersistentEntitiesFactoryBean.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/auditing/PersistentEntitiesFactoryBean.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/auditing/ReactiveCouchbaseAuditingRegistrar.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/auditing/ReactiveCouchbaseAuditingRegistrar.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/auditing/ReactiveCouchbaseAuditingRegistrar.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/auditing/ReactiveCouchbaseAuditingRegistrar.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/cdi/CouchbaseRepositoryBean.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/cdi/CouchbaseRepositoryBean.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/cdi/CouchbaseRepositoryBean.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/cdi/CouchbaseRepositoryBean.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/cdi/CouchbaseRepositoryExtension.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/cdi/CouchbaseRepositoryExtension.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/cdi/CouchbaseRepositoryExtension.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/cdi/CouchbaseRepositoryExtension.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/config/CouchbaseRepositoriesRegistrar.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/config/CouchbaseRepositoriesRegistrar.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/config/CouchbaseRepositoriesRegistrar.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/config/CouchbaseRepositoriesRegistrar.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/config/CouchbaseRepositoryConfigurationExtension.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/config/CouchbaseRepositoryConfigurationExtension.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/config/CouchbaseRepositoryConfigurationExtension.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/config/CouchbaseRepositoryConfigurationExtension.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/config/EnableCouchbaseRepositories.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/config/EnableCouchbaseRepositories.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/config/EnableCouchbaseRepositories.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/config/EnableCouchbaseRepositories.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/config/EnableReactiveCouchbaseRepositories.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/config/EnableReactiveCouchbaseRepositories.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/config/EnableReactiveCouchbaseRepositories.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/config/EnableReactiveCouchbaseRepositories.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/config/ReactiveCouchbaseRepositoriesRegistrar.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/config/ReactiveCouchbaseRepositoriesRegistrar.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/config/ReactiveCouchbaseRepositoriesRegistrar.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/config/ReactiveCouchbaseRepositoriesRegistrar.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/config/ReactiveCouchbaseRepositoryConfigurationExtension.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/config/ReactiveCouchbaseRepositoryConfigurationExtension.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/config/ReactiveCouchbaseRepositoryConfigurationExtension.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/config/ReactiveCouchbaseRepositoryConfigurationExtension.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/config/ReactiveRepositoryOperationsMapping.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/config/ReactiveRepositoryOperationsMapping.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/config/ReactiveRepositoryOperationsMapping.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/config/ReactiveRepositoryOperationsMapping.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/config/RepositoryOperationsMapping.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/config/RepositoryOperationsMapping.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/config/RepositoryOperationsMapping.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/config/RepositoryOperationsMapping.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/config/package-info.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/config/package-info.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/config/package-info.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/config/package-info.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/package-info.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/package-info.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/package-info.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/package-info.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/query/AbstractCouchbaseQuery.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/AbstractCouchbaseQuery.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/query/AbstractCouchbaseQuery.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/AbstractCouchbaseQuery.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/query/AbstractCouchbaseQueryBase.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/AbstractCouchbaseQueryBase.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/query/AbstractCouchbaseQueryBase.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/AbstractCouchbaseQueryBase.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/query/AbstractN1qlBasedQuery.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/AbstractN1qlBasedQuery.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/query/AbstractN1qlBasedQuery.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/AbstractN1qlBasedQuery.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/query/AbstractReactiveCouchbaseQuery.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/AbstractReactiveCouchbaseQuery.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/query/AbstractReactiveCouchbaseQuery.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/AbstractReactiveCouchbaseQuery.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/query/ConvertingIterator.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/ConvertingIterator.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/query/ConvertingIterator.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/ConvertingIterator.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/query/CouchbaseEntityInformation.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/CouchbaseEntityInformation.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/query/CouchbaseEntityInformation.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/CouchbaseEntityInformation.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/query/CouchbasePartTree.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/CouchbasePartTree.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/query/CouchbasePartTree.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/CouchbasePartTree.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/query/CouchbaseQueryExecution.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/CouchbaseQueryExecution.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/query/CouchbaseQueryExecution.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/CouchbaseQueryExecution.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/query/CouchbaseQueryMethod.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/CouchbaseQueryMethod.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/query/CouchbaseQueryMethod.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/CouchbaseQueryMethod.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/query/CouchbaseRepositoryQuery.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/CouchbaseRepositoryQuery.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/query/CouchbaseRepositoryQuery.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/CouchbaseRepositoryQuery.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/query/CountFragment.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/CountFragment.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/query/CountFragment.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/CountFragment.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/query/N1qlCountQueryCreator.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/N1qlCountQueryCreator.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/query/N1qlCountQueryCreator.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/N1qlCountQueryCreator.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/query/N1qlMutateQueryCreator.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/N1qlMutateQueryCreator.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/query/N1qlMutateQueryCreator.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/N1qlMutateQueryCreator.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/query/N1qlQueryCreator.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/N1qlQueryCreator.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/query/N1qlQueryCreator.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/N1qlQueryCreator.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/query/N1qlRepositoryQueryExecutor.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/N1qlRepositoryQueryExecutor.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/query/N1qlRepositoryQueryExecutor.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/N1qlRepositoryQueryExecutor.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/query/OldN1qlQueryCreator.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/OldN1qlQueryCreator.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/query/OldN1qlQueryCreator.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/OldN1qlQueryCreator.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/query/PartTreeCouchbaseQuery.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/PartTreeCouchbaseQuery.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/query/PartTreeCouchbaseQuery.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/PartTreeCouchbaseQuery.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/query/PartTreeN1qlBasedQuery.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/PartTreeN1qlBasedQuery.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/query/PartTreeN1qlBasedQuery.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/PartTreeN1qlBasedQuery.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/query/PartTreeN1qlQueryCreator.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/PartTreeN1qlQueryCreator.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/query/PartTreeN1qlQueryCreator.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/PartTreeN1qlQueryCreator.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/query/ReactiveAbstractN1qlBasedQuery.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/ReactiveAbstractN1qlBasedQuery.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/query/ReactiveAbstractN1qlBasedQuery.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/ReactiveAbstractN1qlBasedQuery.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/query/ReactiveCouchbaseParameterAccessor.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/ReactiveCouchbaseParameterAccessor.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/query/ReactiveCouchbaseParameterAccessor.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/ReactiveCouchbaseParameterAccessor.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/query/ReactiveCouchbaseQueryExecution.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/ReactiveCouchbaseQueryExecution.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/query/ReactiveCouchbaseQueryExecution.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/ReactiveCouchbaseQueryExecution.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/query/ReactiveCouchbaseQueryMethod.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/ReactiveCouchbaseQueryMethod.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/query/ReactiveCouchbaseQueryMethod.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/ReactiveCouchbaseQueryMethod.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/query/ReactiveCouchbaseRepositoryQuery.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/ReactiveCouchbaseRepositoryQuery.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/query/ReactiveCouchbaseRepositoryQuery.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/ReactiveCouchbaseRepositoryQuery.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/query/ReactiveN1qlRepositoryQueryExecutor.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/ReactiveN1qlRepositoryQueryExecutor.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/query/ReactiveN1qlRepositoryQueryExecutor.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/ReactiveN1qlRepositoryQueryExecutor.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/query/ReactivePartTreeCouchbaseQuery.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/ReactivePartTreeCouchbaseQuery.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/query/ReactivePartTreeCouchbaseQuery.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/ReactivePartTreeCouchbaseQuery.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/query/ReactivePartTreeN1qlBasedQuery.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/ReactivePartTreeN1qlBasedQuery.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/query/ReactivePartTreeN1qlBasedQuery.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/ReactivePartTreeN1qlBasedQuery.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/query/ReactiveStringBasedCouchbaseQuery.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/ReactiveStringBasedCouchbaseQuery.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/query/ReactiveStringBasedCouchbaseQuery.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/ReactiveStringBasedCouchbaseQuery.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/query/ResultProcessingConverter.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/ResultProcessingConverter.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/query/ResultProcessingConverter.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/ResultProcessingConverter.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/query/StringBasedCouchbaseQuery.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/StringBasedCouchbaseQuery.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/query/StringBasedCouchbaseQuery.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/StringBasedCouchbaseQuery.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/query/StringBasedN1qlQueryParser.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/StringBasedN1qlQueryParser.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/query/StringBasedN1qlQueryParser.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/StringBasedN1qlQueryParser.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/query/StringN1qlQueryCreator.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/StringN1qlQueryCreator.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/query/StringN1qlQueryCreator.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/StringN1qlQueryCreator.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/query/package-info.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/package-info.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/query/package-info.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/package-info.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/query/support/AwtPointInShapeEvaluator.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/support/AwtPointInShapeEvaluator.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/query/support/AwtPointInShapeEvaluator.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/support/AwtPointInShapeEvaluator.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/query/support/GeoUtils.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/support/GeoUtils.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/query/support/GeoUtils.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/support/GeoUtils.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/query/support/N1qlQueryCreatorUtils.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/support/N1qlQueryCreatorUtils.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/query/support/N1qlQueryCreatorUtils.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/support/N1qlQueryCreatorUtils.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/query/support/N1qlUtils.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/support/N1qlUtils.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/query/support/N1qlUtils.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/support/N1qlUtils.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/query/support/PointInShapeEvaluator.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/support/PointInShapeEvaluator.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/query/support/PointInShapeEvaluator.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/support/PointInShapeEvaluator.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/query/support/package-info.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/support/package-info.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/query/support/package-info.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/query/support/package-info.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/support/BasicQuery.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/support/BasicQuery.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/support/BasicQuery.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/support/BasicQuery.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/support/CouchbaseRepositoryBase.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/support/CouchbaseRepositoryBase.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/support/CouchbaseRepositoryBase.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/support/CouchbaseRepositoryBase.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/support/CouchbaseRepositoryFactory.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/support/CouchbaseRepositoryFactory.java
similarity index 90%
rename from src/main/java/org/springframework/data/couchbase/repository/support/CouchbaseRepositoryFactory.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/support/CouchbaseRepositoryFactory.java
index 871528943..6e21a1956 100644
--- a/src/main/java/org/springframework/data/couchbase/repository/support/CouchbaseRepositoryFactory.java
+++ b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/support/CouchbaseRepositoryFactory.java
@@ -19,6 +19,8 @@
import static org.springframework.data.querydsl.QuerydslUtils.QUERY_DSL_PRESENT;
import java.io.Serializable;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Optional;
@@ -208,8 +210,26 @@ protected RepositoryComposition.RepositoryFragments getRepositoryFragments(Repos
"Cannot combine Querydsl and reactive repository support in a single interface");
}
- return RepositoryComposition.RepositoryFragments
- .just(new QuerydslCouchbasePredicateExecutor<>(getEntityInformation(metadata.getDomainType()), operations));
+ Constructor> constructor = null;
+
+ try {
+ Class> clazz = Class.forName(
+ "org.springframework.data.couchbase.repository.support.QuerydslCouchbasePredicateExecutor");
+ constructor = clazz.getConstructor(CouchbaseEntityInformation.class, CouchbaseOperations.class);
+ } catch (ClassNotFoundException e) {
+ // spring-data-couchbase-querydsl is not present
+ } catch (NoSuchMethodException e) {
+ throw new RuntimeException(e);
+ }
+
+ if( constructor != null) {
+ try {
+ return RepositoryComposition.RepositoryFragments
+ .just(constructor.newInstance(getEntityInformation(metadata.getDomainType()), operations));
+ } catch (InstantiationException | IllegalAccessException|InvocationTargetException e) {
+ throw new RuntimeException(e);
+ }
+ }
}
return RepositoryComposition.RepositoryFragments.empty();
diff --git a/src/main/java/org/springframework/data/couchbase/repository/support/CouchbaseRepositoryFactoryBean.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/support/CouchbaseRepositoryFactoryBean.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/support/CouchbaseRepositoryFactoryBean.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/support/CouchbaseRepositoryFactoryBean.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/support/CrudMethodMetadata.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/support/CrudMethodMetadata.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/support/CrudMethodMetadata.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/support/CrudMethodMetadata.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/support/CrudMethodMetadataPostProcessor.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/support/CrudMethodMetadataPostProcessor.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/support/CrudMethodMetadataPostProcessor.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/support/CrudMethodMetadataPostProcessor.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/support/DBRef.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/support/DBRef.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/support/DBRef.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/support/DBRef.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/support/DynamicInvocationHandler.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/support/DynamicInvocationHandler.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/support/DynamicInvocationHandler.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/support/DynamicInvocationHandler.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/support/FetchableFluentQuerySupport.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/support/FetchableFluentQuerySupport.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/support/FetchableFluentQuerySupport.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/support/FetchableFluentQuerySupport.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/support/FindMethod.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/support/FindMethod.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/support/FindMethod.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/support/FindMethod.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/support/MappingCouchbaseEntityInformation.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/support/MappingCouchbaseEntityInformation.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/support/MappingCouchbaseEntityInformation.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/support/MappingCouchbaseEntityInformation.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/support/ReactiveCouchbaseRepositoryFactory.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/support/ReactiveCouchbaseRepositoryFactory.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/support/ReactiveCouchbaseRepositoryFactory.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/support/ReactiveCouchbaseRepositoryFactory.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/support/ReactiveCouchbaseRepositoryFactoryBean.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/support/ReactiveCouchbaseRepositoryFactoryBean.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/support/ReactiveCouchbaseRepositoryFactoryBean.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/support/ReactiveCouchbaseRepositoryFactoryBean.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/support/SimpleCouchbaseRepository.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/support/SimpleCouchbaseRepository.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/support/SimpleCouchbaseRepository.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/support/SimpleCouchbaseRepository.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/support/SimpleReactiveCouchbaseRepository.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/support/SimpleReactiveCouchbaseRepository.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/support/SimpleReactiveCouchbaseRepository.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/support/SimpleReactiveCouchbaseRepository.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/support/Util.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/support/Util.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/support/Util.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/support/Util.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/support/ViewMetadataProvider.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/support/ViewMetadataProvider.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/support/ViewMetadataProvider.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/support/ViewMetadataProvider.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/support/ViewPostProcessor.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/support/ViewPostProcessor.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/support/ViewPostProcessor.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/support/ViewPostProcessor.java
diff --git a/src/main/java/org/springframework/data/couchbase/repository/support/package-info.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/support/package-info.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/repository/support/package-info.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/support/package-info.java
diff --git a/src/main/java/org/springframework/data/couchbase/transaction/CouchbaseCallbackTransactionManager.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/transaction/CouchbaseCallbackTransactionManager.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/transaction/CouchbaseCallbackTransactionManager.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/transaction/CouchbaseCallbackTransactionManager.java
diff --git a/src/main/java/org/springframework/data/couchbase/transaction/CouchbaseResourceHolder.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/transaction/CouchbaseResourceHolder.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/transaction/CouchbaseResourceHolder.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/transaction/CouchbaseResourceHolder.java
diff --git a/src/main/java/org/springframework/data/couchbase/transaction/CouchbaseResourceOwner.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/transaction/CouchbaseResourceOwner.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/transaction/CouchbaseResourceOwner.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/transaction/CouchbaseResourceOwner.java
diff --git a/src/main/java/org/springframework/data/couchbase/transaction/CouchbaseTransactionDefinition.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/transaction/CouchbaseTransactionDefinition.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/transaction/CouchbaseTransactionDefinition.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/transaction/CouchbaseTransactionDefinition.java
diff --git a/src/main/java/org/springframework/data/couchbase/transaction/CouchbaseTransactionInterceptor.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/transaction/CouchbaseTransactionInterceptor.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/transaction/CouchbaseTransactionInterceptor.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/transaction/CouchbaseTransactionInterceptor.java
diff --git a/src/main/java/org/springframework/data/couchbase/transaction/CouchbaseTransactionStatus.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/transaction/CouchbaseTransactionStatus.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/transaction/CouchbaseTransactionStatus.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/transaction/CouchbaseTransactionStatus.java
diff --git a/src/main/java/org/springframework/data/couchbase/transaction/CouchbaseTransactionalOperator.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/transaction/CouchbaseTransactionalOperator.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/transaction/CouchbaseTransactionalOperator.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/transaction/CouchbaseTransactionalOperator.java
diff --git a/src/main/java/org/springframework/data/couchbase/transaction/error/TransactionRollbackRequestedException.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/transaction/error/TransactionRollbackRequestedException.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/transaction/error/TransactionRollbackRequestedException.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/transaction/error/TransactionRollbackRequestedException.java
diff --git a/src/main/java/org/springframework/data/couchbase/transaction/error/TransactionSystemAmbiguousException.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/transaction/error/TransactionSystemAmbiguousException.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/transaction/error/TransactionSystemAmbiguousException.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/transaction/error/TransactionSystemAmbiguousException.java
diff --git a/src/main/java/org/springframework/data/couchbase/transaction/error/TransactionSystemCouchbaseException.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/transaction/error/TransactionSystemCouchbaseException.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/transaction/error/TransactionSystemCouchbaseException.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/transaction/error/TransactionSystemCouchbaseException.java
diff --git a/src/main/java/org/springframework/data/couchbase/transaction/error/TransactionSystemUnambiguousException.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/transaction/error/TransactionSystemUnambiguousException.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/transaction/error/TransactionSystemUnambiguousException.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/transaction/error/TransactionSystemUnambiguousException.java
diff --git a/src/main/java/org/springframework/data/couchbase/transaction/error/UncategorizedTransactionDataAccessException.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/transaction/error/UncategorizedTransactionDataAccessException.java
similarity index 100%
rename from src/main/java/org/springframework/data/couchbase/transaction/error/UncategorizedTransactionDataAccessException.java
rename to spring-data-couchbase/src/main/java/org/springframework/data/couchbase/transaction/error/UncategorizedTransactionDataAccessException.java
diff --git a/src/main/resources/META-INF/services/jakarta.enterprise.inject.spi.Extension b/spring-data-couchbase/src/main/resources/META-INF/services/jakarta.enterprise.inject.spi.Extension
similarity index 100%
rename from src/main/resources/META-INF/services/jakarta.enterprise.inject.spi.Extension
rename to spring-data-couchbase/src/main/resources/META-INF/services/jakarta.enterprise.inject.spi.Extension
diff --git a/src/main/resources/META-INF/services/javax.annotation.processing.Processor b/spring-data-couchbase/src/main/resources/META-INF/services/javax.annotation.processing.Processor
similarity index 100%
rename from src/main/resources/META-INF/services/javax.annotation.processing.Processor
rename to spring-data-couchbase/src/main/resources/META-INF/services/javax.annotation.processing.Processor
diff --git a/src/main/resources/META-INF/spring.factories b/spring-data-couchbase/src/main/resources/META-INF/spring.factories
similarity index 100%
rename from src/main/resources/META-INF/spring.factories
rename to spring-data-couchbase/src/main/resources/META-INF/spring.factories
diff --git a/src/main/resources/META-INF/spring.handlers b/spring-data-couchbase/src/main/resources/META-INF/spring.handlers
similarity index 100%
rename from src/main/resources/META-INF/spring.handlers
rename to spring-data-couchbase/src/main/resources/META-INF/spring.handlers
diff --git a/src/main/resources/META-INF/spring.schemas b/spring-data-couchbase/src/main/resources/META-INF/spring.schemas
similarity index 100%
rename from src/main/resources/META-INF/spring.schemas
rename to spring-data-couchbase/src/main/resources/META-INF/spring.schemas
diff --git a/src/main/resources/META-INF/spring.tooling b/spring-data-couchbase/src/main/resources/META-INF/spring.tooling
similarity index 100%
rename from src/main/resources/META-INF/spring.tooling
rename to spring-data-couchbase/src/main/resources/META-INF/spring.tooling
diff --git a/src/main/resources/changelog.txt b/spring-data-couchbase/src/main/resources/changelog.txt
similarity index 100%
rename from src/main/resources/changelog.txt
rename to spring-data-couchbase/src/main/resources/changelog.txt
diff --git a/src/main/resources/license.txt b/spring-data-couchbase/src/main/resources/license.txt
similarity index 100%
rename from src/main/resources/license.txt
rename to spring-data-couchbase/src/main/resources/license.txt
diff --git a/src/main/resources/notice.txt b/spring-data-couchbase/src/main/resources/notice.txt
similarity index 100%
rename from src/main/resources/notice.txt
rename to spring-data-couchbase/src/main/resources/notice.txt
diff --git a/src/test/java/org/springframework/data/couchbase/cache/CacheUser.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/cache/CacheUser.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/cache/CacheUser.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/cache/CacheUser.java
diff --git a/src/test/java/org/springframework/data/couchbase/cache/CouchbaseCacheCollectionIntegrationTests.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/cache/CouchbaseCacheCollectionIntegrationTests.java
similarity index 84%
rename from src/test/java/org/springframework/data/couchbase/cache/CouchbaseCacheCollectionIntegrationTests.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/cache/CouchbaseCacheCollectionIntegrationTests.java
index 38349f57c..849beff93 100644
--- a/src/test/java/org/springframework/data/couchbase/cache/CouchbaseCacheCollectionIntegrationTests.java
+++ b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/cache/CouchbaseCacheCollectionIntegrationTests.java
@@ -25,7 +25,13 @@
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
import org.springframework.data.couchbase.core.CouchbaseTemplate;
+import org.springframework.data.couchbase.core.mapping.event.ValidatingCouchbaseEventListener;
+import org.springframework.data.couchbase.repository.auditing.EnableCouchbaseAuditing;
+import org.springframework.data.couchbase.repository.auditing.EnableReactiveCouchbaseAuditing;
+import org.springframework.data.couchbase.repository.config.EnableCouchbaseRepositories;
import org.springframework.data.couchbase.util.Capabilities;
import org.springframework.data.couchbase.util.ClusterType;
import org.springframework.data.couchbase.util.CollectionAwareIntegrationTests;
@@ -33,6 +39,7 @@
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
import org.springframework.data.couchbase.domain.Config;
+import org.springframework.validation.beanvalidation.LocalValidatorFactoryBean;
/**
* CouchbaseCache tests Theses tests rely on a cb server running.
@@ -40,7 +47,7 @@
* @author Michael Reiche
*/
@IgnoreWhen(clusterTypes = ClusterType.MOCKED, missesCapabilities = { Capabilities.COLLECTIONS })
-@SpringJUnitConfig(Config.class)
+@SpringJUnitConfig(CouchbaseCacheCollectionIntegrationTests.Config.class)
@DirtiesContext
class CouchbaseCacheCollectionIntegrationTests extends CollectionAwareIntegrationTests {
@@ -53,7 +60,7 @@ class CouchbaseCacheCollectionIntegrationTests extends CollectionAwareIntegratio
public void beforeEach() {
super.beforeEach();
cache = CouchbaseCacheManager.create(couchbaseTemplate.getCouchbaseClientFactory()).createCouchbaseCache("myCache",
- CouchbaseCacheConfiguration.defaultCacheConfig().collection("my_collection"));
+ CouchbaseCacheConfiguration.defaultCacheConfig().collection(collectionName));
cache.clear();
}
@@ -135,4 +142,18 @@ void cachePutIfAbsent() {
assertEquals(user1, cache.get(user1.getId()).get()); // user1.getId() is still user1
}
+ @Configuration
+ @EnableCouchbaseRepositories("org.springframework.data.couchbase")
+ @EnableCouchbaseAuditing(auditorAwareRef = "auditorAwareRef", dateTimeProviderRef = "dateTimeProviderRef")
+ @EnableReactiveCouchbaseAuditing(auditorAwareRef = "reactiveAuditorAwareRef", dateTimeProviderRef = "dateTimeProviderRef")
+
+ static class Config extends org.springframework.data.couchbase.domain.Config {
+
+ @Override
+
+ protected String getScopeName(){
+ return scopeName;
+ }
+ }
+
}
diff --git a/src/test/java/org/springframework/data/couchbase/cache/CouchbaseCacheCollectionTranscoderIntegrationTests.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/cache/CouchbaseCacheCollectionTranscoderIntegrationTests.java
similarity index 87%
rename from src/test/java/org/springframework/data/couchbase/cache/CouchbaseCacheCollectionTranscoderIntegrationTests.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/cache/CouchbaseCacheCollectionTranscoderIntegrationTests.java
index f65db706d..ababbb726 100644
--- a/src/test/java/org/springframework/data/couchbase/cache/CouchbaseCacheCollectionTranscoderIntegrationTests.java
+++ b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/cache/CouchbaseCacheCollectionTranscoderIntegrationTests.java
@@ -24,8 +24,12 @@
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Configuration;
import org.springframework.data.couchbase.core.CouchbaseTemplate;
import org.springframework.data.couchbase.domain.Config;
+import org.springframework.data.couchbase.repository.auditing.EnableCouchbaseAuditing;
+import org.springframework.data.couchbase.repository.auditing.EnableReactiveCouchbaseAuditing;
+import org.springframework.data.couchbase.repository.config.EnableCouchbaseRepositories;
import org.springframework.data.couchbase.util.Capabilities;
import org.springframework.data.couchbase.util.ClusterType;
import org.springframework.data.couchbase.util.CollectionAwareIntegrationTests;
@@ -39,7 +43,7 @@
* @author Michael Reiche
*/
@IgnoreWhen(clusterTypes = ClusterType.MOCKED, missesCapabilities = { Capabilities.COLLECTIONS })
-@SpringJUnitConfig(Config.class)
+@SpringJUnitConfig(CouchbaseCacheCollectionIntegrationTests.Config.class)
@DirtiesContext
class CouchbaseCacheCollectionTranscoderIntegrationTests extends CollectionAwareIntegrationTests {
@@ -137,4 +141,18 @@ void cachePutIfAbsent() {
assertEquals(user1, cache.get(user1.getId(), CacheUser.class)); // user1.getId() is still user1
}
+ @Configuration
+ @EnableCouchbaseRepositories("org.springframework.data.couchbase")
+ @EnableCouchbaseAuditing(auditorAwareRef = "auditorAwareRef", dateTimeProviderRef = "dateTimeProviderRef")
+ @EnableReactiveCouchbaseAuditing(auditorAwareRef = "reactiveAuditorAwareRef", dateTimeProviderRef = "dateTimeProviderRef")
+
+ static class Config extends org.springframework.data.couchbase.domain.Config {
+
+ @Override
+
+ protected String getScopeName(){
+ return scopeName;
+ }
+ }
+
}
diff --git a/src/test/java/org/springframework/data/couchbase/cache/CouchbaseCacheIntegrationTests.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/cache/CouchbaseCacheIntegrationTests.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/cache/CouchbaseCacheIntegrationTests.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/cache/CouchbaseCacheIntegrationTests.java
diff --git a/src/test/java/org/springframework/data/couchbase/core/CouchbaseTemplateKeyValueIntegrationTests.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/core/CouchbaseTemplateKeyValueIntegrationTests.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/core/CouchbaseTemplateKeyValueIntegrationTests.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/core/CouchbaseTemplateKeyValueIntegrationTests.java
diff --git a/src/test/java/org/springframework/data/couchbase/core/CouchbaseTemplateQueryCollectionIntegrationTests.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/core/CouchbaseTemplateQueryCollectionIntegrationTests.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/core/CouchbaseTemplateQueryCollectionIntegrationTests.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/core/CouchbaseTemplateQueryCollectionIntegrationTests.java
diff --git a/src/test/java/org/springframework/data/couchbase/core/CouchbaseTemplateQueryIntegrationTests.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/core/CouchbaseTemplateQueryIntegrationTests.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/core/CouchbaseTemplateQueryIntegrationTests.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/core/CouchbaseTemplateQueryIntegrationTests.java
diff --git a/src/test/java/org/springframework/data/couchbase/core/CustomTypeKeyIntegrationTests.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/core/CustomTypeKeyIntegrationTests.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/core/CustomTypeKeyIntegrationTests.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/core/CustomTypeKeyIntegrationTests.java
diff --git a/src/test/java/org/springframework/data/couchbase/core/ReactiveCouchbaseTemplateConcurrencyTests.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/core/ReactiveCouchbaseTemplateConcurrencyTests.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/core/ReactiveCouchbaseTemplateConcurrencyTests.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/core/ReactiveCouchbaseTemplateConcurrencyTests.java
diff --git a/src/test/java/org/springframework/data/couchbase/core/ReactiveCouchbaseTemplateKeyValueIntegrationTests.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/core/ReactiveCouchbaseTemplateKeyValueIntegrationTests.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/core/ReactiveCouchbaseTemplateKeyValueIntegrationTests.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/core/ReactiveCouchbaseTemplateKeyValueIntegrationTests.java
diff --git a/src/test/java/org/springframework/data/couchbase/core/convert/translation/JacksonTranslationServiceTests.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/core/convert/translation/JacksonTranslationServiceTests.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/core/convert/translation/JacksonTranslationServiceTests.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/core/convert/translation/JacksonTranslationServiceTests.java
diff --git a/src/test/java/org/springframework/data/couchbase/core/mapping/BasicCouchbasePersistentEntityTests.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/core/mapping/BasicCouchbasePersistentEntityTests.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/core/mapping/BasicCouchbasePersistentEntityTests.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/core/mapping/BasicCouchbasePersistentEntityTests.java
diff --git a/src/test/java/org/springframework/data/couchbase/core/mapping/BasicCouchbasePersistentPropertyTests.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/core/mapping/BasicCouchbasePersistentPropertyTests.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/core/mapping/BasicCouchbasePersistentPropertyTests.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/core/mapping/BasicCouchbasePersistentPropertyTests.java
diff --git a/src/test/java/org/springframework/data/couchbase/core/mapping/CustomConvertersTests.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/core/mapping/CustomConvertersTests.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/core/mapping/CustomConvertersTests.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/core/mapping/CustomConvertersTests.java
diff --git a/src/test/java/org/springframework/data/couchbase/core/mapping/MappingCouchbaseConverterTests.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/core/mapping/MappingCouchbaseConverterTests.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/core/mapping/MappingCouchbaseConverterTests.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/core/mapping/MappingCouchbaseConverterTests.java
diff --git a/src/test/java/org/springframework/data/couchbase/core/query/QueryCriteriaTests.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/core/query/QueryCriteriaTests.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/core/query/QueryCriteriaTests.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/core/query/QueryCriteriaTests.java
diff --git a/src/test/java/org/springframework/data/couchbase/core/query/ReactiveCouchbaseTemplateQueryCollectionIntegrationTests.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/core/query/ReactiveCouchbaseTemplateQueryCollectionIntegrationTests.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/core/query/ReactiveCouchbaseTemplateQueryCollectionIntegrationTests.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/core/query/ReactiveCouchbaseTemplateQueryCollectionIntegrationTests.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/AbstractEntity.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/AbstractEntity.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/AbstractEntity.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/AbstractEntity.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/AbstractUser.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/AbstractUser.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/AbstractUser.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/AbstractUser.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/AbstractUserRepository.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/AbstractUserRepository.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/AbstractUserRepository.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/AbstractUserRepository.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/AbstractingMappingCouchbaseConverter.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/AbstractingMappingCouchbaseConverter.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/AbstractingMappingCouchbaseConverter.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/AbstractingMappingCouchbaseConverter.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/AbstractingTypeMapper.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/AbstractingTypeMapper.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/AbstractingTypeMapper.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/AbstractingTypeMapper.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/Address.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/Address.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/Address.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/Address.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/AddressAnnotated.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/AddressAnnotated.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/AddressAnnotated.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/AddressAnnotated.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/AddressWithEncStreet.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/AddressWithEncStreet.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/AddressWithEncStreet.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/AddressWithEncStreet.java
diff --git a/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/Airline.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/Airline.java
new file mode 100644
index 000000000..7754e3ce0
--- /dev/null
+++ b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/Airline.java
@@ -0,0 +1,56 @@
+/*
+ * Copyright 2012-2024 the original author or authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.springframework.data.couchbase.domain;
+
+import org.springframework.data.annotation.Id;
+import org.springframework.data.annotation.PersistenceConstructor;
+import org.springframework.data.couchbase.core.index.CompositeQueryIndex;
+import org.springframework.data.couchbase.core.index.QueryIndexed;
+import org.springframework.data.couchbase.core.mapping.Document;
+
+@Document
+@CompositeQueryIndex(fields = { "id", "name desc" })
+@CompositeQueryIndex(fields = { "id.something", "name desc" })
+/**
+ * @author Michael Reiche
+ */
+public class Airline extends ComparableEntity {
+ @Id String id;
+
+ @QueryIndexed String name;
+
+ String hqCountry;
+
+ @PersistenceConstructor
+ public Airline(String id, String name, String hqCountry) {
+ this.id = id;
+ this.name = name;
+ this.hqCountry = hqCountry;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public String getHqCountry() {
+ return hqCountry;
+ }
+
+}
diff --git a/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/AirlineRepository.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/AirlineRepository.java
new file mode 100644
index 000000000..95d795eac
--- /dev/null
+++ b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/AirlineRepository.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2017-2024 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.springframework.data.couchbase.domain;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.springframework.data.couchbase.repository.CouchbaseRepository;
+import org.springframework.data.couchbase.repository.DynamicProxyable;
+import org.springframework.data.couchbase.repository.Query;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.querydsl.QuerydslPredicateExecutor;
+import org.springframework.data.repository.query.Param;
+import org.springframework.stereotype.Repository;
+
+/**
+ * @author Michael Reiche
+ */
+@Repository
+public interface AirlineRepository extends CouchbaseRepository,
+ DynamicProxyable {
+
+ @Query("#{#n1ql.selectEntity} where #{#n1ql.filter} and (name = $1)")
+ List getByName(@Param("airline_name") String airlineName);
+
+ @Query("select meta().id as _ID, meta().cas as _CAS, #{#n1ql.bucket}.* from #{#n1ql.bucket} where #{#n1ql.filter} and (name = $1)")
+ List getByName_3x(@Param("airline_name") String airlineName);
+
+ Page findByHqCountryIn(@Param("hqCountry") Collection hqCountry, Pageable pageable);
+}
diff --git a/src/test/java/org/springframework/data/couchbase/domain/Airport.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/Airport.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/Airport.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/Airport.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/AirportJsonValue.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/AirportJsonValue.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/AirportJsonValue.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/AirportJsonValue.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/AirportJsonValueRepository.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/AirportJsonValueRepository.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/AirportJsonValueRepository.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/AirportJsonValueRepository.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/AirportJsonValuedObject.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/AirportJsonValuedObject.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/AirportJsonValuedObject.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/AirportJsonValuedObject.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/AirportMini.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/AirportMini.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/AirportMini.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/AirportMini.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/AirportRepository.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/AirportRepository.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/AirportRepository.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/AirportRepository.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/AirportRepositoryAnnotated.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/AirportRepositoryAnnotated.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/AirportRepositoryAnnotated.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/AirportRepositoryAnnotated.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/AirportRepositoryScanConsistencyTest.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/AirportRepositoryScanConsistencyTest.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/AirportRepositoryScanConsistencyTest.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/AirportRepositoryScanConsistencyTest.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/AssessmentDO.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/AssessmentDO.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/AssessmentDO.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/AssessmentDO.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/BigAirline.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/BigAirline.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/BigAirline.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/BigAirline.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/BigAirlineRepository.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/BigAirlineRepository.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/BigAirlineRepository.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/BigAirlineRepository.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/CapellaConnectSample.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/CapellaConnectSample.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/CapellaConnectSample.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/CapellaConnectSample.java
diff --git a/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/ComparableEntity.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/ComparableEntity.java
new file mode 100644
index 000000000..ef77e6eec
--- /dev/null
+++ b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/ComparableEntity.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright 2020-2024 the original author or authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.springframework.data.couchbase.domain;
+
+import com.couchbase.mock.deps.com.google.gson.Gson;
+import com.couchbase.mock.deps.com.google.gson.GsonBuilder;
+
+/**
+ * Comparable entity base class for tests
+ *
+ * @author Michael Reiche
+ */
+public class ComparableEntity {
+
+ /**
+ * equals() method that relies on toString()
+ *
+ * @param that
+ * @return
+ * @throws RuntimeException
+ */
+ @Override
+ public boolean equals(Object that) throws RuntimeException {
+ if (this == that) {
+ return true;
+ }
+ if (that == null
+ || !(this.getClass().isAssignableFrom(that.getClass()) || that.getClass().isAssignableFrom(this.getClass()))) {
+ return false;
+ }
+ return this.toString().equals(that.toString());
+
+ }
+
+ public String toString() throws RuntimeException {
+ Gson gson = new GsonBuilder().create();
+ return gson.toJson(this);
+ }
+}
diff --git a/src/test/java/org/springframework/data/couchbase/domain/Config.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/Config.java
similarity index 98%
rename from src/test/java/org/springframework/data/couchbase/domain/Config.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/Config.java
index 0d9cbc04e..66b92459f 100644
--- a/src/test/java/org/springframework/data/couchbase/domain/Config.java
+++ b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/Config.java
@@ -238,15 +238,4 @@ public String typeKey() {
return "t"; // this will override '_class', is passed in to new CustomMappingCouchbaseConverter
}
- static String scopeName = null;
-
- @Override
- protected String getScopeName() {
- return scopeName;
- }
-
- public static void setScopeName(String scopeName) {
- Config.scopeName = scopeName;
- }
-
}
diff --git a/src/test/java/org/springframework/data/couchbase/domain/ConfigScoped.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/ConfigScoped.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/ConfigScoped.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/ConfigScoped.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/Course.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/Course.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/Course.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/Course.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/CustomMappingCouchbaseConverter.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/CustomMappingCouchbaseConverter.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/CustomMappingCouchbaseConverter.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/CustomMappingCouchbaseConverter.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/EBTurbulenceCategory.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/EBTurbulenceCategory.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/EBTurbulenceCategory.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/EBTurbulenceCategory.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/EITurbulenceCategory.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/EITurbulenceCategory.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/EITurbulenceCategory.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/EITurbulenceCategory.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/EJsonCreatorTurbulenceCategory.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/EJsonCreatorTurbulenceCategory.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/EJsonCreatorTurbulenceCategory.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/EJsonCreatorTurbulenceCategory.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/ETurbulenceCategory.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/ETurbulenceCategory.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/ETurbulenceCategory.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/ETurbulenceCategory.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/FluxIntegrationTests.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/FluxIntegrationTests.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/FluxIntegrationTests.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/FluxIntegrationTests.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/Iata.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/Iata.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/Iata.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/Iata.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/Library.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/Library.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/Library.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/Library.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/LibraryRepository.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/LibraryRepository.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/LibraryRepository.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/LibraryRepository.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/MutableUser.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/MutableUser.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/MutableUser.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/MutableUser.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/MyPerson.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/MyPerson.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/MyPerson.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/MyPerson.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/MyPersonRepository.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/MyPersonRepository.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/MyPersonRepository.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/MyPersonRepository.java
diff --git a/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/NaiveAuditorAware.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/NaiveAuditorAware.java
new file mode 100644
index 000000000..5abc2aaec
--- /dev/null
+++ b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/NaiveAuditorAware.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2012-2024 the original author or authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.springframework.data.couchbase.domain;
+
+import java.util.Optional;
+
+import org.springframework.data.domain.AuditorAware;
+
+// These are the classes that would be used for a real getCurrentAuditor() implementation
+//import org.springframework.security.core.Authentication;
+//import org.springframework.security.core.context.SecurityContextHolder;
+//import org.springframework.security.core.userdetails.User;
+
+/**
+ * This class returns a string that represents the current user
+ *
+ * @author Michael Reiche
+ * @since 3.0
+ */
+public class NaiveAuditorAware implements AuditorAware {
+
+ static public final String AUDITOR = "nonreactive_auditor";
+ private Optional auditor = Optional.of(AUDITOR);
+
+ @Override
+ public Optional getCurrentAuditor() {
+ return auditor;
+ }
+
+ public void setAuditor(String auditor) {
+ this.auditor = Optional.of(auditor);
+ }
+}
diff --git a/src/test/java/org/springframework/data/couchbase/domain/OtherUser.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/OtherUser.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/OtherUser.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/OtherUser.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/Person.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/Person.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/Person.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/Person.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/PersonRepository.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/PersonRepository.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/PersonRepository.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/PersonRepository.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/PersonValue.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/PersonValue.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/PersonValue.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/PersonValue.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/PersonValueRepository.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/PersonValueRepository.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/PersonValueRepository.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/PersonValueRepository.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/PersonWithDurability.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/PersonWithDurability.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/PersonWithDurability.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/PersonWithDurability.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/PersonWithDurability2.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/PersonWithDurability2.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/PersonWithDurability2.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/PersonWithDurability2.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/PersonWithMaps.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/PersonWithMaps.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/PersonWithMaps.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/PersonWithMaps.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/PersonWithoutVersion.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/PersonWithoutVersion.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/PersonWithoutVersion.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/PersonWithoutVersion.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/ReactiveAirlineRepository.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/ReactiveAirlineRepository.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/ReactiveAirlineRepository.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/ReactiveAirlineRepository.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/ReactiveAirportMustScopeRepository.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/ReactiveAirportMustScopeRepository.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/ReactiveAirportMustScopeRepository.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/ReactiveAirportMustScopeRepository.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/ReactiveAirportRepository.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/ReactiveAirportRepository.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/ReactiveAirportRepository.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/ReactiveAirportRepository.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/ReactiveAirportRepositoryAnnotated.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/ReactiveAirportRepositoryAnnotated.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/ReactiveAirportRepositoryAnnotated.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/ReactiveAirportRepositoryAnnotated.java
diff --git a/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/ReactiveNaiveAuditorAware.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/ReactiveNaiveAuditorAware.java
new file mode 100644
index 000000000..c5e1888fe
--- /dev/null
+++ b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/ReactiveNaiveAuditorAware.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2012-2024 the original author or authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.springframework.data.couchbase.domain;
+
+import reactor.core.publisher.Mono;
+
+import org.springframework.data.domain.ReactiveAuditorAware;
+
+/**
+ * This class returns a string that represents the current user
+ *
+ * @author Jorge Rodríguez Martín
+ * @since 4.2
+ */
+public class ReactiveNaiveAuditorAware implements ReactiveAuditorAware {
+
+ public static final String AUDITOR = "reactive_auditor";
+
+ @Override
+ public Mono getCurrentAuditor() {
+ return Mono.just(AUDITOR);
+ }
+
+}
diff --git a/src/test/java/org/springframework/data/couchbase/domain/ReactivePersonRepository.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/ReactivePersonRepository.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/ReactivePersonRepository.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/ReactivePersonRepository.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/ReactiveUserColRepository.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/ReactiveUserColRepository.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/ReactiveUserColRepository.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/ReactiveUserColRepository.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/ReactiveUserRepository.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/ReactiveUserRepository.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/ReactiveUserRepository.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/ReactiveUserRepository.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/Submission.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/Submission.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/Submission.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/Submission.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/SubscriptionToken.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/SubscriptionToken.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/SubscriptionToken.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/SubscriptionToken.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/SubscriptionTokenRepository.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/SubscriptionTokenRepository.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/SubscriptionTokenRepository.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/SubscriptionTokenRepository.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/TestEncrypted.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/TestEncrypted.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/TestEncrypted.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/TestEncrypted.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/TypeAwareTypeInformationMapper.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/TypeAwareTypeInformationMapper.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/TypeAwareTypeInformationMapper.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/TypeAwareTypeInformationMapper.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/TypeBasedCouchbaseTypeMapper.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/TypeBasedCouchbaseTypeMapper.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/TypeBasedCouchbaseTypeMapper.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/TypeBasedCouchbaseTypeMapper.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/User.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/User.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/User.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/User.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/UserAnnotated.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/UserAnnotated.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/UserAnnotated.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/UserAnnotated.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/UserAnnotated2.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/UserAnnotated2.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/UserAnnotated2.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/UserAnnotated2.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/UserAnnotated3.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/UserAnnotated3.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/UserAnnotated3.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/UserAnnotated3.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/UserAnnotatedDurability.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/UserAnnotatedDurability.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/UserAnnotatedDurability.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/UserAnnotatedDurability.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/UserAnnotatedDurabilityExpression.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/UserAnnotatedDurabilityExpression.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/UserAnnotatedDurabilityExpression.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/UserAnnotatedDurabilityExpression.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/UserAnnotatedPersistTo.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/UserAnnotatedPersistTo.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/UserAnnotatedPersistTo.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/UserAnnotatedPersistTo.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/UserAnnotatedReplicateTo.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/UserAnnotatedReplicateTo.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/UserAnnotatedReplicateTo.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/UserAnnotatedReplicateTo.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/UserAnnotatedTouchOnRead.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/UserAnnotatedTouchOnRead.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/UserAnnotatedTouchOnRead.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/UserAnnotatedTouchOnRead.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/UserCol.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/UserCol.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/UserCol.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/UserCol.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/UserColRepository.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/UserColRepository.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/UserColRepository.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/UserColRepository.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/UserEncrypted.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/UserEncrypted.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/UserEncrypted.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/UserEncrypted.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/UserEncryptedRepository.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/UserEncryptedRepository.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/UserEncryptedRepository.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/UserEncryptedRepository.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/UserJustLastName.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/UserJustLastName.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/UserJustLastName.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/UserJustLastName.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/UserNoAlias.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/UserNoAlias.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/UserNoAlias.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/UserNoAlias.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/UserRepository.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/UserRepository.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/UserRepository.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/UserRepository.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/UserSubmission.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/UserSubmission.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/UserSubmission.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/UserSubmission.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/UserSubmissionAnnotated.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/UserSubmissionAnnotated.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/UserSubmissionAnnotated.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/UserSubmissionAnnotated.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/UserSubmissionAnnotatedRepository.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/UserSubmissionAnnotatedRepository.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/UserSubmissionAnnotatedRepository.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/UserSubmissionAnnotatedRepository.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/UserSubmissionProjected.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/UserSubmissionProjected.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/UserSubmissionProjected.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/UserSubmissionProjected.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/UserSubmissionRepository.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/UserSubmissionRepository.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/UserSubmissionRepository.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/UserSubmissionRepository.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/UserSubmissionUnannotated.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/UserSubmissionUnannotated.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/UserSubmissionUnannotated.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/UserSubmissionUnannotated.java
diff --git a/src/test/java/org/springframework/data/couchbase/domain/UserSubmissionUnannotatedRepository.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/UserSubmissionUnannotatedRepository.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/domain/UserSubmissionUnannotatedRepository.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/UserSubmissionUnannotatedRepository.java
diff --git a/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/time/AuditingDateTimeProvider.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/time/AuditingDateTimeProvider.java
new file mode 100644
index 000000000..e2eb28876
--- /dev/null
+++ b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/time/AuditingDateTimeProvider.java
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2012-2024 the original author or authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.springframework.data.couchbase.domain.time;
+
+import java.time.Instant;
+import java.time.temporal.TemporalAccessor;
+import java.util.Optional;
+
+import org.springframework.data.auditing.DateTimeProvider;
+
+public class AuditingDateTimeProvider implements DateTimeProvider {
+
+ private DateTimeService dateTimeService = new FixedDateTimeService();
+
+ public AuditingDateTimeProvider() {}
+
+ public AuditingDateTimeProvider(DateTimeService dateTimeService) {
+ this.dateTimeService = dateTimeService;
+ }
+
+ @Override
+ public Optional getNow() {
+ return Optional.of(Instant.ofEpochSecond(dateTimeService.getCurrentDateAndTime().toEpochSecond()));
+ }
+}
diff --git a/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/time/CurrentDateTimeService.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/time/CurrentDateTimeService.java
new file mode 100644
index 000000000..7d1c3ab72
--- /dev/null
+++ b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/time/CurrentDateTimeService.java
@@ -0,0 +1,25 @@
+/*
+ * Copyright 2012-2024 the original author or authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.springframework.data.couchbase.domain.time;
+
+import java.time.ZonedDateTime;
+
+public class CurrentDateTimeService implements DateTimeService {
+ @Override
+ public ZonedDateTime getCurrentDateAndTime() {
+ return ZonedDateTime.now();
+ }
+}
diff --git a/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/time/DateTimeService.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/time/DateTimeService.java
new file mode 100644
index 000000000..158d02499
--- /dev/null
+++ b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/time/DateTimeService.java
@@ -0,0 +1,22 @@
+/*
+ * Copyright 2012-2024 the original author or authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.springframework.data.couchbase.domain.time;
+
+import java.time.ZonedDateTime;
+
+public interface DateTimeService {
+ ZonedDateTime getCurrentDateAndTime();
+}
diff --git a/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/time/FixedDateTimeService.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/time/FixedDateTimeService.java
new file mode 100644
index 000000000..fd600e9f5
--- /dev/null
+++ b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/domain/time/FixedDateTimeService.java
@@ -0,0 +1,30 @@
+/*
+ * Copyright 2012-2024 the original author or authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.springframework.data.couchbase.domain.time;
+
+import java.time.ZoneId;
+import java.time.ZonedDateTime;
+
+public class FixedDateTimeService implements DateTimeService {
+ public static void main(String[] args) {
+ System.out.println((new FixedDateTimeService()).getCurrentDateAndTime());
+ }
+
+ @Override
+ public ZonedDateTime getCurrentDateAndTime() {
+ return ZonedDateTime.of(2020, 1, 1, 0, 0, 0, 0, ZoneId.of("GMT-8"));
+ }
+}
diff --git a/src/test/java/org/springframework/data/couchbase/repository/CouchbaseAbstractRepositoryIntegrationTests.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/repository/CouchbaseAbstractRepositoryIntegrationTests.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/repository/CouchbaseAbstractRepositoryIntegrationTests.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/repository/CouchbaseAbstractRepositoryIntegrationTests.java
diff --git a/src/test/java/org/springframework/data/couchbase/repository/CouchbaseRepositoryAutoQueryIndexIntegrationTests.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/repository/CouchbaseRepositoryAutoQueryIndexIntegrationTests.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/repository/CouchbaseRepositoryAutoQueryIndexIntegrationTests.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/repository/CouchbaseRepositoryAutoQueryIndexIntegrationTests.java
diff --git a/src/test/java/org/springframework/data/couchbase/repository/CouchbaseRepositoryFieldLevelEncryptionIntegrationTests.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/repository/CouchbaseRepositoryFieldLevelEncryptionIntegrationTests.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/repository/CouchbaseRepositoryFieldLevelEncryptionIntegrationTests.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/repository/CouchbaseRepositoryFieldLevelEncryptionIntegrationTests.java
diff --git a/src/test/java/org/springframework/data/couchbase/repository/CouchbaseRepositoryKeyValueIntegrationTests.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/repository/CouchbaseRepositoryKeyValueIntegrationTests.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/repository/CouchbaseRepositoryKeyValueIntegrationTests.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/repository/CouchbaseRepositoryKeyValueIntegrationTests.java
diff --git a/src/test/java/org/springframework/data/couchbase/repository/CouchbaseRepositoryQueryIntegrationTests.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/repository/CouchbaseRepositoryQueryIntegrationTests.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/repository/CouchbaseRepositoryQueryIntegrationTests.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/repository/CouchbaseRepositoryQueryIntegrationTests.java
diff --git a/src/test/java/org/springframework/data/couchbase/repository/ReactiveCouchbaseRepositoryKeyValueIntegrationTests.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/repository/ReactiveCouchbaseRepositoryKeyValueIntegrationTests.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/repository/ReactiveCouchbaseRepositoryKeyValueIntegrationTests.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/repository/ReactiveCouchbaseRepositoryKeyValueIntegrationTests.java
diff --git a/src/test/java/org/springframework/data/couchbase/repository/ReactiveCouchbaseRepositoryQueryIntegrationTests.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/repository/ReactiveCouchbaseRepositoryQueryIntegrationTests.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/repository/ReactiveCouchbaseRepositoryQueryIntegrationTests.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/repository/ReactiveCouchbaseRepositoryQueryIntegrationTests.java
diff --git a/src/test/java/org/springframework/data/couchbase/repository/query/CouchbaseRepositoryQueryCollectionIntegrationTests.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/repository/query/CouchbaseRepositoryQueryCollectionIntegrationTests.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/repository/query/CouchbaseRepositoryQueryCollectionIntegrationTests.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/repository/query/CouchbaseRepositoryQueryCollectionIntegrationTests.java
diff --git a/src/test/java/org/springframework/data/couchbase/repository/query/N1qlQueryCreatorTests.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/repository/query/N1qlQueryCreatorTests.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/repository/query/N1qlQueryCreatorTests.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/repository/query/N1qlQueryCreatorTests.java
diff --git a/src/test/java/org/springframework/data/couchbase/repository/query/ReactiveCouchbaseRepositoryQueryCollectionIntegrationTests.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/repository/query/ReactiveCouchbaseRepositoryQueryCollectionIntegrationTests.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/repository/query/ReactiveCouchbaseRepositoryQueryCollectionIntegrationTests.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/repository/query/ReactiveCouchbaseRepositoryQueryCollectionIntegrationTests.java
diff --git a/src/test/java/org/springframework/data/couchbase/repository/query/StringN1qlQueryCreatorIntegrationTests.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/repository/query/StringN1qlQueryCreatorIntegrationTests.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/repository/query/StringN1qlQueryCreatorIntegrationTests.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/repository/query/StringN1qlQueryCreatorIntegrationTests.java
diff --git a/src/test/java/org/springframework/data/couchbase/repository/query/StringN1qlQueryCreatorTests.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/repository/query/StringN1qlQueryCreatorTests.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/repository/query/StringN1qlQueryCreatorTests.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/repository/query/StringN1qlQueryCreatorTests.java
diff --git a/src/test/java/org/springframework/data/couchbase/transactions/AfterTransactionAssertion.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/AfterTransactionAssertion.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/transactions/AfterTransactionAssertion.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/AfterTransactionAssertion.java
diff --git a/src/test/java/org/springframework/data/couchbase/transactions/CouchbasePersonTransactionIntegrationTests.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/CouchbasePersonTransactionIntegrationTests.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/transactions/CouchbasePersonTransactionIntegrationTests.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/CouchbasePersonTransactionIntegrationTests.java
diff --git a/src/test/java/org/springframework/data/couchbase/transactions/CouchbasePersonTransactionReactiveIntegrationTests.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/CouchbasePersonTransactionReactiveIntegrationTests.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/transactions/CouchbasePersonTransactionReactiveIntegrationTests.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/CouchbasePersonTransactionReactiveIntegrationTests.java
diff --git a/src/test/java/org/springframework/data/couchbase/transactions/CouchbaseReactiveTransactionNativeIntegrationTests.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/CouchbaseReactiveTransactionNativeIntegrationTests.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/transactions/CouchbaseReactiveTransactionNativeIntegrationTests.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/CouchbaseReactiveTransactionNativeIntegrationTests.java
diff --git a/src/test/java/org/springframework/data/couchbase/transactions/CouchbaseTransactionNativeIntegrationTests.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/CouchbaseTransactionNativeIntegrationTests.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/transactions/CouchbaseTransactionNativeIntegrationTests.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/CouchbaseTransactionNativeIntegrationTests.java
diff --git a/src/test/java/org/springframework/data/couchbase/transactions/CouchbaseTransactionalNonAllowableOperationsIntegrationTests.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/CouchbaseTransactionalNonAllowableOperationsIntegrationTests.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/transactions/CouchbaseTransactionalNonAllowableOperationsIntegrationTests.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/CouchbaseTransactionalNonAllowableOperationsIntegrationTests.java
diff --git a/src/test/java/org/springframework/data/couchbase/transactions/CouchbaseTransactionalOperatorTemplateIntegrationTests.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/CouchbaseTransactionalOperatorTemplateIntegrationTests.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/transactions/CouchbaseTransactionalOperatorTemplateIntegrationTests.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/CouchbaseTransactionalOperatorTemplateIntegrationTests.java
diff --git a/src/test/java/org/springframework/data/couchbase/transactions/CouchbaseTransactionalOptionsIntegrationTests.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/CouchbaseTransactionalOptionsIntegrationTests.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/transactions/CouchbaseTransactionalOptionsIntegrationTests.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/CouchbaseTransactionalOptionsIntegrationTests.java
diff --git a/src/test/java/org/springframework/data/couchbase/transactions/CouchbaseTransactionalPropagationIntegrationTests.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/CouchbaseTransactionalPropagationIntegrationTests.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/transactions/CouchbaseTransactionalPropagationIntegrationTests.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/CouchbaseTransactionalPropagationIntegrationTests.java
diff --git a/src/test/java/org/springframework/data/couchbase/transactions/CouchbaseTransactionalRepositoryCollectionIntegrationTests.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/CouchbaseTransactionalRepositoryCollectionIntegrationTests.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/transactions/CouchbaseTransactionalRepositoryCollectionIntegrationTests.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/CouchbaseTransactionalRepositoryCollectionIntegrationTests.java
diff --git a/src/test/java/org/springframework/data/couchbase/transactions/CouchbaseTransactionalRepositoryIntegrationTests.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/CouchbaseTransactionalRepositoryIntegrationTests.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/transactions/CouchbaseTransactionalRepositoryIntegrationTests.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/CouchbaseTransactionalRepositoryIntegrationTests.java
diff --git a/src/test/java/org/springframework/data/couchbase/transactions/CouchbaseTransactionalTemplateCollectionDefaultScopeIntegrationTests.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/CouchbaseTransactionalTemplateCollectionDefaultScopeIntegrationTests.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/transactions/CouchbaseTransactionalTemplateCollectionDefaultScopeIntegrationTests.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/CouchbaseTransactionalTemplateCollectionDefaultScopeIntegrationTests.java
diff --git a/src/test/java/org/springframework/data/couchbase/transactions/CouchbaseTransactionalTemplateCollectionIntegrationTests.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/CouchbaseTransactionalTemplateCollectionIntegrationTests.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/transactions/CouchbaseTransactionalTemplateCollectionIntegrationTests.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/CouchbaseTransactionalTemplateCollectionIntegrationTests.java
diff --git a/src/test/java/org/springframework/data/couchbase/transactions/CouchbaseTransactionalTemplateIntegrationTests.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/CouchbaseTransactionalTemplateIntegrationTests.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/transactions/CouchbaseTransactionalTemplateIntegrationTests.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/CouchbaseTransactionalTemplateIntegrationTests.java
diff --git a/src/test/java/org/springframework/data/couchbase/transactions/CouchbaseTransactionalUnsettableParametersIntegrationTests.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/CouchbaseTransactionalUnsettableParametersIntegrationTests.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/transactions/CouchbaseTransactionalUnsettableParametersIntegrationTests.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/CouchbaseTransactionalUnsettableParametersIntegrationTests.java
diff --git a/src/test/java/org/springframework/data/couchbase/transactions/DirectPlatformTransactionManagerIntegrationTests.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/DirectPlatformTransactionManagerIntegrationTests.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/transactions/DirectPlatformTransactionManagerIntegrationTests.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/DirectPlatformTransactionManagerIntegrationTests.java
diff --git a/src/test/java/org/springframework/data/couchbase/transactions/ObjectId.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/ObjectId.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/transactions/ObjectId.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/ObjectId.java
diff --git a/src/test/java/org/springframework/data/couchbase/transactions/PersonService.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/PersonService.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/transactions/PersonService.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/PersonService.java
diff --git a/src/test/java/org/springframework/data/couchbase/transactions/PersonServiceReactive.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/PersonServiceReactive.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/transactions/PersonServiceReactive.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/PersonServiceReactive.java
diff --git a/src/test/java/org/springframework/data/couchbase/transactions/ReactiveTransactionalTemplateIntegrationTests.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/ReactiveTransactionalTemplateIntegrationTests.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/transactions/ReactiveTransactionalTemplateIntegrationTests.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/ReactiveTransactionalTemplateIntegrationTests.java
diff --git a/src/test/java/org/springframework/data/couchbase/transactions/ReplaceLoopThread.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/ReplaceLoopThread.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/transactions/ReplaceLoopThread.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/ReplaceLoopThread.java
diff --git a/src/test/java/org/springframework/data/couchbase/transactions/TransactionTemplateIntegrationTests.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/TransactionTemplateIntegrationTests.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/transactions/TransactionTemplateIntegrationTests.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/TransactionTemplateIntegrationTests.java
diff --git a/src/test/java/org/springframework/data/couchbase/transactions/TransactionsConfig.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/TransactionsConfig.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/transactions/TransactionsConfig.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/TransactionsConfig.java
diff --git a/src/test/java/org/springframework/data/couchbase/transactions/sdk/SDKReactiveTransactionsNonAllowableOperationsIntegrationTests.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/sdk/SDKReactiveTransactionsNonAllowableOperationsIntegrationTests.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/transactions/sdk/SDKReactiveTransactionsNonAllowableOperationsIntegrationTests.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/sdk/SDKReactiveTransactionsNonAllowableOperationsIntegrationTests.java
diff --git a/src/test/java/org/springframework/data/couchbase/transactions/sdk/SDKReactiveTransactionsPersonIntegrationTests.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/sdk/SDKReactiveTransactionsPersonIntegrationTests.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/transactions/sdk/SDKReactiveTransactionsPersonIntegrationTests.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/sdk/SDKReactiveTransactionsPersonIntegrationTests.java
diff --git a/src/test/java/org/springframework/data/couchbase/transactions/sdk/SDKReactiveTransactionsTemplateIntegrationTests.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/sdk/SDKReactiveTransactionsTemplateIntegrationTests.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/transactions/sdk/SDKReactiveTransactionsTemplateIntegrationTests.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/sdk/SDKReactiveTransactionsTemplateIntegrationTests.java
diff --git a/src/test/java/org/springframework/data/couchbase/transactions/sdk/SDKTransactionsNonAllowableOperationsIntegrationTests.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/sdk/SDKTransactionsNonAllowableOperationsIntegrationTests.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/transactions/sdk/SDKTransactionsNonAllowableOperationsIntegrationTests.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/sdk/SDKTransactionsNonAllowableOperationsIntegrationTests.java
diff --git a/src/test/java/org/springframework/data/couchbase/transactions/sdk/SDKTransactionsNonBlockingThreadIntegrationTests.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/sdk/SDKTransactionsNonBlockingThreadIntegrationTests.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/transactions/sdk/SDKTransactionsNonBlockingThreadIntegrationTests.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/sdk/SDKTransactionsNonBlockingThreadIntegrationTests.java
diff --git a/src/test/java/org/springframework/data/couchbase/transactions/sdk/SDKTransactionsSaveIntegrationTests.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/sdk/SDKTransactionsSaveIntegrationTests.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/transactions/sdk/SDKTransactionsSaveIntegrationTests.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/sdk/SDKTransactionsSaveIntegrationTests.java
diff --git a/src/test/java/org/springframework/data/couchbase/transactions/sdk/SDKTransactionsTemplateIntegrationTests.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/sdk/SDKTransactionsTemplateIntegrationTests.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/transactions/sdk/SDKTransactionsTemplateIntegrationTests.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/sdk/SDKTransactionsTemplateIntegrationTests.java
diff --git a/src/test/java/org/springframework/data/couchbase/transactions/util/TransactionTestUtil.java b/spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/util/TransactionTestUtil.java
similarity index 100%
rename from src/test/java/org/springframework/data/couchbase/transactions/util/TransactionTestUtil.java
rename to spring-data-couchbase/src/test/java/org/springframework/data/couchbase/transactions/util/TransactionTestUtil.java
diff --git a/src/test/resources/META-INF/beans.xml b/spring-data-couchbase/src/test/resources/META-INF/beans.xml
similarity index 100%
rename from src/test/resources/META-INF/beans.xml
rename to spring-data-couchbase/src/test/resources/META-INF/beans.xml
diff --git a/src/test/resources/configurations/couchbase-consistency.xml b/spring-data-couchbase/src/test/resources/configurations/couchbase-consistency.xml
similarity index 100%
rename from src/test/resources/configurations/couchbase-consistency.xml
rename to spring-data-couchbase/src/test/resources/configurations/couchbase-consistency.xml
diff --git a/src/test/resources/configurations/couchbase-multi-bucket-bean.xml b/spring-data-couchbase/src/test/resources/configurations/couchbase-multi-bucket-bean.xml
similarity index 100%
rename from src/test/resources/configurations/couchbase-multi-bucket-bean.xml
rename to spring-data-couchbase/src/test/resources/configurations/couchbase-multi-bucket-bean.xml
diff --git a/src/test/resources/configurations/couchbase-repository-bean.xml b/spring-data-couchbase/src/test/resources/configurations/couchbase-repository-bean.xml
similarity index 100%
rename from src/test/resources/configurations/couchbase-repository-bean.xml
rename to spring-data-couchbase/src/test/resources/configurations/couchbase-repository-bean.xml
diff --git a/src/test/resources/configurations/couchbase-template-bean.xml b/spring-data-couchbase/src/test/resources/configurations/couchbase-template-bean.xml
similarity index 100%
rename from src/test/resources/configurations/couchbase-template-bean.xml
rename to spring-data-couchbase/src/test/resources/configurations/couchbase-template-bean.xml
diff --git a/src/test/resources/configurations/couchbase-template-with-translation-service-bean.xml b/spring-data-couchbase/src/test/resources/configurations/couchbase-template-with-translation-service-bean.xml
similarity index 100%
rename from src/test/resources/configurations/couchbase-template-with-translation-service-bean.xml
rename to spring-data-couchbase/src/test/resources/configurations/couchbase-template-with-translation-service-bean.xml
diff --git a/src/test/resources/configurations/couchbase-typekey.xml b/spring-data-couchbase/src/test/resources/configurations/couchbase-typekey.xml
similarity index 100%
rename from src/test/resources/configurations/couchbase-typekey.xml
rename to spring-data-couchbase/src/test/resources/configurations/couchbase-typekey.xml
diff --git a/src/test/resources/configurations/couchbaseBucket-bean.xml b/spring-data-couchbase/src/test/resources/configurations/couchbaseBucket-bean.xml
similarity index 100%
rename from src/test/resources/configurations/couchbaseBucket-bean.xml
rename to spring-data-couchbase/src/test/resources/configurations/couchbaseBucket-bean.xml
diff --git a/src/test/resources/configurations/couchbaseCluster-bean.xml b/spring-data-couchbase/src/test/resources/configurations/couchbaseCluster-bean.xml
similarity index 100%
rename from src/test/resources/configurations/couchbaseCluster-bean.xml
rename to spring-data-couchbase/src/test/resources/configurations/couchbaseCluster-bean.xml
diff --git a/src/test/resources/configurations/couchbaseEnv-bean.xml b/spring-data-couchbase/src/test/resources/configurations/couchbaseEnv-bean.xml
similarity index 100%
rename from src/test/resources/configurations/couchbaseEnv-bean.xml
rename to spring-data-couchbase/src/test/resources/configurations/couchbaseEnv-bean.xml
diff --git a/src/test/resources/configurations/couchbaseSingleEnv-bean.xml b/spring-data-couchbase/src/test/resources/configurations/couchbaseSingleEnv-bean.xml
similarity index 100%
rename from src/test/resources/configurations/couchbaseSingleEnv-bean.xml
rename to spring-data-couchbase/src/test/resources/configurations/couchbaseSingleEnv-bean.xml
diff --git a/spring-data-couchbase/src/test/resources/integration.properties b/spring-data-couchbase/src/test/resources/integration.properties
new file mode 100644
index 000000000..510356617
--- /dev/null
+++ b/spring-data-couchbase/src/test/resources/integration.properties
@@ -0,0 +1,19 @@
+# Couchbase Integration-Test Default Properties
+# If set to false, it is assumed that the host is managing the cluster and
+# as a result no containers or anything will be spun up.
+# Options: containerized, mocked, unmanaged
+cluster.type=mocked
+# Default configs for both cases
+# Default configs for the mocked environment
+cluster.mocked.numNodes=1
+cluster.mocked.numReplicas=1
+# Entry point configuration if not managed
+# value of hostname and ns_server port
+cluster.unmanaged.seed=127.0.0.1:8091
+cluster.adminUsername=Administrator
+cluster.adminPassword=password
+#cluster.bucket=my_bucket
+#cluster.unmanaged.seed=cb.zsibzkbgllfbcj8g.cloud.couchbase.com
+#cluster.adminUsername=user
+#cluster.adminPassword=Couch0base!
+cluster.unmanaged.numReplicas=0
diff --git a/src/test/resources/logback.xml b/spring-data-couchbase/src/test/resources/logback.xml
similarity index 100%
rename from src/test/resources/logback.xml
rename to spring-data-couchbase/src/test/resources/logback.xml
diff --git a/src/test/resources/server.properties b/spring-data-couchbase/src/test/resources/server.properties
similarity index 100%
rename from src/test/resources/server.properties
rename to spring-data-couchbase/src/test/resources/server.properties
diff --git a/spring-data-couchbase/template.mf b/spring-data-couchbase/template.mf
new file mode 100644
index 000000000..5e195fedf
--- /dev/null
+++ b/spring-data-couchbase/template.mf
@@ -0,0 +1,20 @@
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: org.springframework.data.couchbase
+Bundle-Name: ${project.name}
+Bundle-Vendor: Couchbase Inc., Pivotal Software Inc.
+Bundle-Version: ${project.version}
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Export-Template:
+ org.springframework.data.couchbase.*;version="${project.version}"
+Import-Template:
+ com.couchbase.client.*;version="${couchbase.osgi:[=.=.=,+1.0.0)}",
+ com.fasterxml.jackson.*;version="${jackson:[=.=.=,+1.0.0)}",
+ javax.enterprise.*;version="${cdi:[=.=.=,+1.0.0)}";resolution:=optional,
+ javax.validation.*;version="${validation:[=.=.=.=,+1.0.0)}";resolution:=optional,
+ org.aopalliance.*;version="[1.0.0, 2.0.0)";resolution:=optional,
+ org.joda.time.*;version="${jodatime:[=.=.=,+1.0.0)}";resolution:=optional,
+ org.slf4j.*;version="${slf4j:[=.=.=,+1.0.0)}",
+ org.springframework.*;version="${spring:[=.=.=.=,+1.0.0)}",
+ org.springframework.data.*;version="${springdata.commons:[=.=.=.=,+1.0.0)}",
+ org.w3c.*;version="0.0.0",
+