diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/build.gradle b/spring-boot-project/spring-boot-actuator-autoconfigure/build.gradle index 0e9633a2f97..5deb759a2cf 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/build.gradle +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/build.gradle @@ -36,6 +36,7 @@ dependencies { implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310") optional("ch.qos.logback:logback-classic") + optional("com.couchbase.client:java-client") optional("com.datastax.oss:java-driver-core") { exclude group: "org.slf4j", module: "jcl-over-slf4j" } @@ -133,7 +134,6 @@ dependencies { optional("org.springframework.data:spring-data-cassandra") { exclude group: "org.slf4j", module: "jcl-over-slf4j" } - optional("org.springframework.data:spring-data-couchbase") optional("org.springframework.data:spring-data-jpa") optional("org.springframework.data:spring-data-ldap") optional("org.springframework.data:spring-data-mongodb") diff --git a/spring-boot-project/spring-boot-actuator/build.gradle b/spring-boot-project/spring-boot-actuator/build.gradle index 601188b1a4e..e5a9126d391 100644 --- a/spring-boot-project/spring-boot-actuator/build.gradle +++ b/spring-boot-project/spring-boot-actuator/build.gradle @@ -11,6 +11,7 @@ description = "Spring Boot Actuator" dependencies { api(project(":spring-boot-project:spring-boot")) + optional("com.couchbase.client:java-client") optional("com.datastax.oss:java-driver-core") { exclude group: "org.slf4j", module: "jcl-over-slf4j" } @@ -69,8 +70,7 @@ dependencies { optional("org.springframework.data:spring-data-cassandra") { exclude group: "org.slf4j", module: "jcl-over-slf4j" } - optional("org.springframework.data:spring-data-couchbase") - optional("org.springframework.data:spring-data-elasticsearch") { + optional("org.springframework.data:spring-data-elasticsearch") { exclude(group: "commons-logging", module: "commons-logging") } optional("org.springframework.data:spring-data-ldap") diff --git a/spring-boot-project/spring-boot-autoconfigure/build.gradle b/spring-boot-project/spring-boot-autoconfigure/build.gradle index 30336b641d4..c00ff157d0a 100644 --- a/spring-boot-project/spring-boot-autoconfigure/build.gradle +++ b/spring-boot-project/spring-boot-autoconfigure/build.gradle @@ -12,6 +12,7 @@ description = "Spring Boot AutoConfigure" dependencies { api(project(":spring-boot-project:spring-boot")) + optional("com.couchbase.client:java-client") optional("com.fasterxml.jackson.core:jackson-databind") optional("com.fasterxml.jackson.dataformat:jackson-dataformat-cbor") optional("com.fasterxml.jackson.dataformat:jackson-dataformat-xml") @@ -160,7 +161,6 @@ dependencies { optional("org.springframework:spring-webflux") optional("org.springframework:spring-webmvc") optional("org.springframework.batch:spring-batch-core") - optional("org.springframework.data:spring-data-couchbase") optional("org.springframework.data:spring-data-envers") { exclude group: "javax.activation", module: "javax.activation-api" exclude group: "javax.persistence", module: "javax.persistence-api" diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/cache/CacheAutoConfiguration.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/cache/CacheAutoConfiguration.java index 36093f449c5..ecf3794fe5e 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/cache/CacheAutoConfiguration.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/cache/CacheAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2020 the original author or authors. + * Copyright 2012-2021 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. @@ -27,7 +27,6 @@ import org.springframework.boot.autoconfigure.cache.CacheAutoConfiguration.Cache import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.autoconfigure.data.couchbase.CouchbaseDataAutoConfiguration; import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration; import org.springframework.boot.autoconfigure.hazelcast.HazelcastAutoConfiguration; import org.springframework.boot.autoconfigure.orm.jpa.EntityManagerFactoryDependsOnPostProcessor; @@ -61,8 +60,8 @@ import org.springframework.util.Assert; @ConditionalOnBean(CacheAspectSupport.class) @ConditionalOnMissingBean(value = CacheManager.class, name = "cacheResolver") @EnableConfigurationProperties(CacheProperties.class) -@AutoConfigureAfter({ CouchbaseDataAutoConfiguration.class, HazelcastAutoConfiguration.class, - HibernateJpaAutoConfiguration.class, RedisAutoConfiguration.class }) +@AutoConfigureAfter({ HazelcastAutoConfiguration.class, HibernateJpaAutoConfiguration.class, + RedisAutoConfiguration.class }) @Import({ CacheConfigurationImportSelector.class, CacheManagerEntityManagerFactoryDependsOnPostProcessor.class }) public class CacheAutoConfiguration { diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/cache/CacheConfigurations.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/cache/CacheConfigurations.java index c233ff96976..decd9974cae 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/cache/CacheConfigurations.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/cache/CacheConfigurations.java @@ -39,7 +39,6 @@ final class CacheConfigurations { mappings.put(CacheType.HAZELCAST, HazelcastCacheConfiguration.class.getName()); mappings.put(CacheType.INFINISPAN, InfinispanCacheConfiguration.class.getName()); mappings.put(CacheType.JCACHE, JCacheCacheConfiguration.class.getName()); - mappings.put(CacheType.COUCHBASE, CouchbaseCacheConfiguration.class.getName()); mappings.put(CacheType.REDIS, RedisCacheConfiguration.class.getName()); mappings.put(CacheType.CAFFEINE, CaffeineCacheConfiguration.class.getName()); mappings.put(CacheType.SIMPLE, SimpleCacheConfiguration.class.getName()); diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/cache/CacheType.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/cache/CacheType.java index f8bf5bbefa9..306dd9e31c3 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/cache/CacheType.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/cache/CacheType.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2019 the original author or authors. + * Copyright 2012-2021 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. @@ -46,11 +46,6 @@ public enum CacheType { */ INFINISPAN, - /** - * Couchbase backed caching. - */ - COUCHBASE, - /** * Redis backed caching. */ diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/cache/CouchbaseCacheConfiguration.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/cache/CouchbaseCacheConfiguration.java deleted file mode 100644 index a4ba5952d7b..00000000000 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/cache/CouchbaseCacheConfiguration.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright 2012-2021 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.boot.autoconfigure.cache; - -import java.util.LinkedHashSet; -import java.util.List; - -import com.couchbase.client.java.Cluster; - -import org.springframework.beans.factory.ObjectProvider; -import org.springframework.boot.autoconfigure.cache.CacheProperties.Couchbase; -import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.autoconfigure.condition.ConditionalOnSingleCandidate; -import org.springframework.cache.CacheManager; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Conditional; -import org.springframework.context.annotation.Configuration; -import org.springframework.data.couchbase.CouchbaseClientFactory; -import org.springframework.data.couchbase.cache.CouchbaseCacheManager; -import org.springframework.data.couchbase.cache.CouchbaseCacheManager.CouchbaseCacheManagerBuilder; -import org.springframework.util.ObjectUtils; - -/** - * Couchbase cache configuration. - * - * @author Stephane Nicoll - */ -@Configuration(proxyBeanMethods = false) -@ConditionalOnClass({ Cluster.class, CouchbaseClientFactory.class, CouchbaseCacheManager.class }) -@ConditionalOnMissingBean(CacheManager.class) -@ConditionalOnSingleCandidate(CouchbaseClientFactory.class) -@Conditional(CacheCondition.class) -class CouchbaseCacheConfiguration { - - @Bean - CouchbaseCacheManager cacheManager(CacheProperties cacheProperties, CacheManagerCustomizers customizers, - ObjectProvider couchbaseCacheManagerBuilderCustomizers, - CouchbaseClientFactory clientFactory) { - List cacheNames = cacheProperties.getCacheNames(); - CouchbaseCacheManagerBuilder builder = CouchbaseCacheManager.builder(clientFactory); - Couchbase couchbase = cacheProperties.getCouchbase(); - org.springframework.data.couchbase.cache.CouchbaseCacheConfiguration config = org.springframework.data.couchbase.cache.CouchbaseCacheConfiguration - .defaultCacheConfig(); - if (couchbase.getExpiration() != null) { - config = config.entryExpiry(couchbase.getExpiration()); - } - builder.cacheDefaults(config); - if (!ObjectUtils.isEmpty(cacheNames)) { - builder.initialCacheNames(new LinkedHashSet<>(cacheNames)); - } - couchbaseCacheManagerBuilderCustomizers.orderedStream().forEach((customizer) -> customizer.customize(builder)); - CouchbaseCacheManager cacheManager = builder.build(); - return customizers.customize(cacheManager); - } - -} diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/cache/CouchbaseCacheManagerBuilderCustomizer.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/cache/CouchbaseCacheManagerBuilderCustomizer.java deleted file mode 100644 index af2d248390c..00000000000 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/cache/CouchbaseCacheManagerBuilderCustomizer.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright 2012-2020 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.boot.autoconfigure.cache; - -import org.springframework.data.couchbase.cache.CouchbaseCacheManager; -import org.springframework.data.couchbase.cache.CouchbaseCacheManager.CouchbaseCacheManagerBuilder; - -/** - * Callback interface that can be implemented by beans wishing to customize the - * {@link CouchbaseCacheManagerBuilder} before it is used to build the auto-configured - * {@link CouchbaseCacheManager}. - * - * @author Stephane Nicoll - * @since 2.3.3 - */ -@FunctionalInterface -public interface CouchbaseCacheManagerBuilderCustomizer { - - /** - * Customize the {@link CouchbaseCacheManagerBuilder}. - * @param builder the builder to customize - */ - void customize(CouchbaseCacheManagerBuilder builder); - -} diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseClientFactoryConfiguration.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseClientFactoryConfiguration.java deleted file mode 100644 index f6b7aceb8bb..00000000000 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseClientFactoryConfiguration.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright 2012-2020 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.boot.autoconfigure.data.couchbase; - -import com.couchbase.client.java.Cluster; - -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.boot.autoconfigure.condition.ConditionalOnSingleCandidate; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.data.couchbase.CouchbaseClientFactory; -import org.springframework.data.couchbase.SimpleCouchbaseClientFactory; - -/** - * Configuration for a {@link CouchbaseClientFactory}. - * - * @author Stephane Nicoll - */ -@Configuration(proxyBeanMethods = false) -@ConditionalOnSingleCandidate(Cluster.class) -@ConditionalOnProperty("spring.data.couchbase.bucket-name") -class CouchbaseClientFactoryConfiguration { - - @Bean - @ConditionalOnMissingBean - CouchbaseClientFactory couchbaseClientFactory(Cluster cluster, CouchbaseDataProperties properties) { - return new SimpleCouchbaseClientFactory(cluster, properties.getBucketName(), properties.getScopeName()); - } - -} diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseClientFactoryDependentConfiguration.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseClientFactoryDependentConfiguration.java deleted file mode 100644 index a886437946e..00000000000 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseClientFactoryDependentConfiguration.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright 2012-2021 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.boot.autoconfigure.data.couchbase; - -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.autoconfigure.condition.ConditionalOnSingleCandidate; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.data.couchbase.CouchbaseClientFactory; -import org.springframework.data.couchbase.config.BeanNames; -import org.springframework.data.couchbase.core.CouchbaseTemplate; -import org.springframework.data.couchbase.core.convert.MappingCouchbaseConverter; -import org.springframework.data.couchbase.repository.config.RepositoryOperationsMapping; - -/** - * Configuration for Couchbase-related beans that depend on a - * {@link CouchbaseClientFactory}. - * - * @author Stephane Nicoll - */ -@Configuration(proxyBeanMethods = false) -@ConditionalOnSingleCandidate(CouchbaseClientFactory.class) -class CouchbaseClientFactoryDependentConfiguration { - - @Bean(name = BeanNames.COUCHBASE_TEMPLATE) - @ConditionalOnMissingBean(name = BeanNames.COUCHBASE_TEMPLATE) - CouchbaseTemplate couchbaseTemplate(CouchbaseClientFactory couchbaseClientFactory, - MappingCouchbaseConverter mappingCouchbaseConverter) { - return new CouchbaseTemplate(couchbaseClientFactory, mappingCouchbaseConverter); - } - - @Bean(name = BeanNames.COUCHBASE_OPERATIONS_MAPPING) - @ConditionalOnMissingBean(name = BeanNames.COUCHBASE_OPERATIONS_MAPPING) - RepositoryOperationsMapping couchbaseRepositoryOperationsMapping(CouchbaseTemplate couchbaseTemplate) { - return new RepositoryOperationsMapping(couchbaseTemplate); - } - -} diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseDataAutoConfiguration.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseDataAutoConfiguration.java deleted file mode 100644 index 48a4f76c47c..00000000000 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseDataAutoConfiguration.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright 2012-2020 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.boot.autoconfigure.data.couchbase; - -import javax.validation.Validator; - -import com.couchbase.client.java.Bucket; - -import org.springframework.boot.autoconfigure.AutoConfigureAfter; -import org.springframework.boot.autoconfigure.EnableAutoConfiguration; -import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; -import org.springframework.boot.autoconfigure.condition.ConditionalOnSingleCandidate; -import org.springframework.boot.autoconfigure.couchbase.CouchbaseAutoConfiguration; -import org.springframework.boot.autoconfigure.validation.ValidationAutoConfiguration; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Import; -import org.springframework.data.couchbase.core.mapping.event.ValidatingCouchbaseEventListener; -import org.springframework.data.couchbase.repository.CouchbaseRepository; - -/** - * {@link EnableAutoConfiguration Auto-configuration} for Spring Data's Couchbase support. - * - * @author Eddú Meléndez - * @author Stephane Nicoll - * @since 1.4.0 - */ -@Configuration(proxyBeanMethods = false) -@ConditionalOnClass({ Bucket.class, CouchbaseRepository.class }) -@AutoConfigureAfter({ CouchbaseAutoConfiguration.class, ValidationAutoConfiguration.class }) -@EnableConfigurationProperties(CouchbaseDataProperties.class) -@Import({ CouchbaseDataConfiguration.class, CouchbaseClientFactoryConfiguration.class, - CouchbaseClientFactoryDependentConfiguration.class }) -public class CouchbaseDataAutoConfiguration { - - @Configuration(proxyBeanMethods = false) - @ConditionalOnClass(Validator.class) - public static class ValidationConfiguration { - - @Bean - @ConditionalOnSingleCandidate(Validator.class) - public ValidatingCouchbaseEventListener validationEventListener(Validator validator) { - return new ValidatingCouchbaseEventListener(validator); - } - - } - -} diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseDataConfiguration.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseDataConfiguration.java deleted file mode 100644 index 52b7220bcfe..00000000000 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseDataConfiguration.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright 2012-2021 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.boot.autoconfigure.data.couchbase; - -import java.util.Collections; - -import org.springframework.beans.BeanUtils; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.autoconfigure.domain.EntityScanner; -import org.springframework.context.ApplicationContext; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.data.couchbase.config.BeanNames; -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.core.mapping.Document; -import org.springframework.data.mapping.model.FieldNamingStrategy; - -/** - * Configuration for Spring Data's couchbase support. - * - * @author Stephane Nicoll - */ -@Configuration(proxyBeanMethods = false) -class CouchbaseDataConfiguration { - - @Bean - @ConditionalOnMissingBean - MappingCouchbaseConverter couchbaseMappingConverter(CouchbaseDataProperties properties, - CouchbaseMappingContext couchbaseMappingContext, CouchbaseCustomConversions couchbaseCustomConversions) { - MappingCouchbaseConverter converter = new MappingCouchbaseConverter(couchbaseMappingContext, - properties.getTypeKey()); - converter.setCustomConversions(couchbaseCustomConversions); - return converter; - } - - @Bean - @ConditionalOnMissingBean - TranslationService couchbaseTranslationService() { - return new JacksonTranslationService(); - } - - @Bean(name = BeanNames.COUCHBASE_MAPPING_CONTEXT) - @ConditionalOnMissingBean(name = BeanNames.COUCHBASE_MAPPING_CONTEXT) - CouchbaseMappingContext couchbaseMappingContext(CouchbaseDataProperties properties, - ApplicationContext applicationContext, CouchbaseCustomConversions couchbaseCustomConversions) - throws Exception { - CouchbaseMappingContext mappingContext = new CouchbaseMappingContext(); - mappingContext.setInitialEntitySet(new EntityScanner(applicationContext).scan(Document.class)); - mappingContext.setSimpleTypeHolder(couchbaseCustomConversions.getSimpleTypeHolder()); - Class fieldNamingStrategy = properties.getFieldNamingStrategy(); - if (fieldNamingStrategy != null) { - mappingContext - .setFieldNamingStrategy((FieldNamingStrategy) BeanUtils.instantiateClass(fieldNamingStrategy)); - } - mappingContext.setAutoIndexCreation(properties.isAutoIndex()); - return mappingContext; - } - - @Bean(name = BeanNames.COUCHBASE_CUSTOM_CONVERSIONS) - @ConditionalOnMissingBean(name = BeanNames.COUCHBASE_CUSTOM_CONVERSIONS) - CouchbaseCustomConversions couchbaseCustomConversions() { - return new CouchbaseCustomConversions(Collections.emptyList()); - } - -} diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseDataProperties.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseDataProperties.java deleted file mode 100644 index 1230e41af72..00000000000 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseDataProperties.java +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright 2012-2020 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.boot.autoconfigure.data.couchbase; - -import org.springframework.boot.context.properties.ConfigurationProperties; - -/** - * Configuration properties for Spring Data Couchbase. - * - * @author Stephane Nicoll - * @since 1.4.0 - */ -@ConfigurationProperties(prefix = "spring.data.couchbase") -public class CouchbaseDataProperties { - - /** - * Automatically create views and indexes. Use the meta-data provided by - * "@ViewIndexed", "@N1qlPrimaryIndexed" and "@N1qlSecondaryIndexed". - */ - private boolean autoIndex; - - /** - * Name of the bucket to connect to. - */ - private String bucketName; - - /** - * Name of the scope used for all collection access. - */ - private String scopeName; - - /** - * Fully qualified name of the FieldNamingStrategy to use. - */ - private Class fieldNamingStrategy; - - /** - * Name of the field that stores the type information for complex types when using - * "MappingCouchbaseConverter". - */ - private String typeKey = "_class"; - - public boolean isAutoIndex() { - return this.autoIndex; - } - - public void setAutoIndex(boolean autoIndex) { - this.autoIndex = autoIndex; - } - - public String getBucketName() { - return this.bucketName; - } - - public void setBucketName(String bucketName) { - this.bucketName = bucketName; - } - - public String getScopeName() { - return this.scopeName; - } - - public void setScopeName(String scopeName) { - this.scopeName = scopeName; - } - - public Class getFieldNamingStrategy() { - return this.fieldNamingStrategy; - } - - public void setFieldNamingStrategy(Class fieldNamingStrategy) { - this.fieldNamingStrategy = fieldNamingStrategy; - } - - public String getTypeKey() { - return this.typeKey; - } - - public void setTypeKey(String typeKey) { - this.typeKey = typeKey; - } - -} diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseReactiveDataAutoConfiguration.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseReactiveDataAutoConfiguration.java deleted file mode 100644 index 104a9419647..00000000000 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseReactiveDataAutoConfiguration.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright 2012-2020 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.boot.autoconfigure.data.couchbase; - -import com.couchbase.client.java.Cluster; -import reactor.core.publisher.Flux; - -import org.springframework.boot.autoconfigure.AutoConfigureAfter; -import org.springframework.boot.autoconfigure.EnableAutoConfiguration; -import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Import; -import org.springframework.data.couchbase.repository.ReactiveCouchbaseRepository; - -/** - * {@link EnableAutoConfiguration Auto-configuration} for Spring Data's Reactive Couchbase - * support. - * - * @author Alex Derkach - * @since 2.0.0 - */ -@Configuration(proxyBeanMethods = false) -@ConditionalOnClass({ Cluster.class, ReactiveCouchbaseRepository.class, Flux.class }) -@AutoConfigureAfter(CouchbaseDataAutoConfiguration.class) -@Import(CouchbaseReactiveDataConfiguration.class) -public class CouchbaseReactiveDataAutoConfiguration { - -} diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseReactiveDataConfiguration.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseReactiveDataConfiguration.java deleted file mode 100644 index 8450cef5f3d..00000000000 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseReactiveDataConfiguration.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright 2012-2020 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.boot.autoconfigure.data.couchbase; - -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.autoconfigure.condition.ConditionalOnSingleCandidate; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.data.couchbase.CouchbaseClientFactory; -import org.springframework.data.couchbase.config.BeanNames; -import org.springframework.data.couchbase.core.ReactiveCouchbaseTemplate; -import org.springframework.data.couchbase.core.convert.MappingCouchbaseConverter; -import org.springframework.data.couchbase.repository.config.ReactiveRepositoryOperationsMapping; - -/** - * Configuration for Spring Data's couchbase reactive support. - * - * @author Stephane Nicoll - */ -@Configuration(proxyBeanMethods = false) -@ConditionalOnSingleCandidate(CouchbaseClientFactory.class) -class CouchbaseReactiveDataConfiguration { - - @Bean(name = BeanNames.REACTIVE_COUCHBASE_TEMPLATE) - @ConditionalOnMissingBean(name = BeanNames.REACTIVE_COUCHBASE_TEMPLATE) - ReactiveCouchbaseTemplate reactiveCouchbaseTemplate(CouchbaseClientFactory couchbaseClientFactory, - MappingCouchbaseConverter mappingCouchbaseConverter) { - return new ReactiveCouchbaseTemplate(couchbaseClientFactory, mappingCouchbaseConverter); - } - - @Bean(name = BeanNames.REACTIVE_COUCHBASE_OPERATIONS_MAPPING) - @ConditionalOnMissingBean(name = BeanNames.REACTIVE_COUCHBASE_OPERATIONS_MAPPING) - ReactiveRepositoryOperationsMapping reactiveCouchbaseRepositoryOperationsMapping( - ReactiveCouchbaseTemplate reactiveCouchbaseTemplate) { - return new ReactiveRepositoryOperationsMapping(reactiveCouchbaseTemplate); - } - -} diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseReactiveRepositoriesAutoConfiguration.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseReactiveRepositoriesAutoConfiguration.java deleted file mode 100644 index c120b9b6b84..00000000000 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseReactiveRepositoriesAutoConfiguration.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright 2012-2020 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.boot.autoconfigure.data.couchbase; - -import com.couchbase.client.java.Cluster; -import reactor.core.publisher.Flux; - -import org.springframework.boot.autoconfigure.AutoConfigureAfter; -import org.springframework.boot.autoconfigure.EnableAutoConfiguration; -import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; -import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.autoconfigure.data.ConditionalOnRepositoryType; -import org.springframework.boot.autoconfigure.data.RepositoryType; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Import; -import org.springframework.data.couchbase.repository.ReactiveCouchbaseRepository; -import org.springframework.data.couchbase.repository.config.ReactiveRepositoryOperationsMapping; -import org.springframework.data.couchbase.repository.support.ReactiveCouchbaseRepositoryFactoryBean; - -/** - * {@link EnableAutoConfiguration Auto-configuration} for Spring Data's Couchbase Reactive - * Repositories. - * - * @author Alex Derkach - * @since 2.0.0 - */ -@Configuration(proxyBeanMethods = false) -@ConditionalOnClass({ Cluster.class, ReactiveCouchbaseRepository.class, Flux.class }) -@ConditionalOnRepositoryType(store = "couchbase", type = RepositoryType.REACTIVE) -@ConditionalOnBean(ReactiveRepositoryOperationsMapping.class) -@ConditionalOnMissingBean(ReactiveCouchbaseRepositoryFactoryBean.class) -@Import(CouchbaseReactiveRepositoriesRegistrar.class) -@AutoConfigureAfter(CouchbaseReactiveDataAutoConfiguration.class) -public class CouchbaseReactiveRepositoriesAutoConfiguration { - -} diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseReactiveRepositoriesRegistrar.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseReactiveRepositoriesRegistrar.java deleted file mode 100644 index ae31598905a..00000000000 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseReactiveRepositoriesRegistrar.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright 2012-2019 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.boot.autoconfigure.data.couchbase; - -import java.lang.annotation.Annotation; - -import org.springframework.boot.autoconfigure.data.AbstractRepositoryConfigurationSourceSupport; -import org.springframework.context.annotation.ImportBeanDefinitionRegistrar; -import org.springframework.data.couchbase.repository.config.EnableReactiveCouchbaseRepositories; -import org.springframework.data.couchbase.repository.config.ReactiveCouchbaseRepositoryConfigurationExtension; -import org.springframework.data.repository.config.RepositoryConfigurationExtension; - -/** - * {@link ImportBeanDefinitionRegistrar} used to auto-configure Spring Data Couchbase - * Reactive Repositories. - * - * @author Alex Derkach - */ -class CouchbaseReactiveRepositoriesRegistrar extends AbstractRepositoryConfigurationSourceSupport { - - @Override - protected Class getAnnotation() { - return EnableReactiveCouchbaseRepositories.class; - } - - @Override - protected Class getConfiguration() { - return EnableReactiveCouchbaseRepositoriesConfiguration.class; - } - - @Override - protected RepositoryConfigurationExtension getRepositoryConfigurationExtension() { - return new ReactiveCouchbaseRepositoryConfigurationExtension(); - } - - @EnableReactiveCouchbaseRepositories - private static class EnableReactiveCouchbaseRepositoriesConfiguration { - - } - -} diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseRepositoriesAutoConfiguration.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseRepositoriesAutoConfiguration.java deleted file mode 100644 index 536a23b580f..00000000000 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseRepositoriesAutoConfiguration.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright 2012-2019 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.boot.autoconfigure.data.couchbase; - -import com.couchbase.client.java.Bucket; - -import org.springframework.boot.autoconfigure.EnableAutoConfiguration; -import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; -import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.autoconfigure.data.ConditionalOnRepositoryType; -import org.springframework.boot.autoconfigure.data.RepositoryType; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Import; -import org.springframework.data.couchbase.repository.CouchbaseRepository; -import org.springframework.data.couchbase.repository.config.RepositoryOperationsMapping; -import org.springframework.data.couchbase.repository.support.CouchbaseRepositoryFactoryBean; - -/** - * {@link EnableAutoConfiguration Auto-configuration} for Spring Data's Couchbase - * Repositories. - * - * @author Eddú Meléndez - * @author Stephane Nicoll - * @since 1.4.0 - */ -@Configuration(proxyBeanMethods = false) -@ConditionalOnClass({ Bucket.class, CouchbaseRepository.class }) -@ConditionalOnBean(RepositoryOperationsMapping.class) -@ConditionalOnRepositoryType(store = "couchbase", type = RepositoryType.IMPERATIVE) -@ConditionalOnMissingBean(CouchbaseRepositoryFactoryBean.class) -@Import(CouchbaseRepositoriesRegistrar.class) -public class CouchbaseRepositoriesAutoConfiguration { - -} diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseRepositoriesRegistrar.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseRepositoriesRegistrar.java deleted file mode 100644 index 2264682c0b6..00000000000 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseRepositoriesRegistrar.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright 2012-2019 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.boot.autoconfigure.data.couchbase; - -import java.lang.annotation.Annotation; - -import org.springframework.boot.autoconfigure.data.AbstractRepositoryConfigurationSourceSupport; -import org.springframework.context.annotation.ImportBeanDefinitionRegistrar; -import org.springframework.data.couchbase.repository.config.CouchbaseRepositoryConfigurationExtension; -import org.springframework.data.couchbase.repository.config.EnableCouchbaseRepositories; -import org.springframework.data.repository.config.RepositoryConfigurationExtension; - -/** - * {@link ImportBeanDefinitionRegistrar} used to auto-configure Spring Data Couchbase - * Repositories. - * - * @author Eddú Meléndez - */ -class CouchbaseRepositoriesRegistrar extends AbstractRepositoryConfigurationSourceSupport { - - @Override - protected Class getAnnotation() { - return EnableCouchbaseRepositories.class; - } - - @Override - protected Class getConfiguration() { - return EnableCouchbaseRepositoriesConfiguration.class; - } - - @Override - protected RepositoryConfigurationExtension getRepositoryConfigurationExtension() { - return new CouchbaseRepositoryConfigurationExtension(); - } - - @EnableCouchbaseRepositories - private static class EnableCouchbaseRepositoriesConfiguration { - - } - -} diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/couchbase/package-info.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/couchbase/package-info.java deleted file mode 100644 index 5f4e192d47f..00000000000 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/couchbase/package-info.java +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright 2012-2019 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. - */ - -/** - * Auto-configuration for Spring Data Couchbase. - */ -package org.springframework.boot.autoconfigure.data.couchbase; diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/domain/EntityScan.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/domain/EntityScan.java index 5b9b47c3b5c..9ee2caea051 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/domain/EntityScan.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/domain/EntityScan.java @@ -38,11 +38,9 @@ import org.springframework.core.annotation.AliasFor; * {@link org.springframework.data.mapping.context.AbstractMappingContext#setInitialEntitySet(java.util.Set) * initial entity set} used with Spring Data * {@link org.springframework.data.mongodb.core.mapping.MongoMappingContext MongoDB}, - * {@link org.springframework.data.neo4j.core.mapping.Neo4jMappingContext Neo4j}, + * {@link org.springframework.data.neo4j.core.mapping.Neo4jMappingContext Neo4j} and * {@link org.springframework.data.cassandra.core.mapping.CassandraMappingContext - * Cassandra} and - * {@link org.springframework.data.couchbase.core.mapping.CouchbaseMappingContext - * Couchbase} mapping contexts. + * Cassandra} mapping contexts. * *

* One of {@link #basePackageClasses()}, {@link #basePackages()} or its alias diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/resources/META-INF/spring.factories b/spring-boot-project/spring-boot-autoconfigure/src/main/resources/META-INF/spring.factories index d239d1ec853..dd3d388039d 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/resources/META-INF/spring.factories +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/resources/META-INF/spring.factories @@ -39,10 +39,6 @@ org.springframework.boot.autoconfigure.data.cassandra.CassandraDataAutoConfigura org.springframework.boot.autoconfigure.data.cassandra.CassandraReactiveDataAutoConfiguration,\ org.springframework.boot.autoconfigure.data.cassandra.CassandraReactiveRepositoriesAutoConfiguration,\ org.springframework.boot.autoconfigure.data.cassandra.CassandraRepositoriesAutoConfiguration,\ -org.springframework.boot.autoconfigure.data.couchbase.CouchbaseDataAutoConfiguration,\ -org.springframework.boot.autoconfigure.data.couchbase.CouchbaseReactiveDataAutoConfiguration,\ -org.springframework.boot.autoconfigure.data.couchbase.CouchbaseReactiveRepositoriesAutoConfiguration,\ -org.springframework.boot.autoconfigure.data.couchbase.CouchbaseRepositoriesAutoConfiguration,\ org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataAutoConfiguration,\ org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchRepositoriesAutoConfiguration,\ org.springframework.boot.autoconfigure.data.elasticsearch.ReactiveElasticsearchRepositoriesAutoConfiguration,\ diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/cache/AbstractCacheAutoConfigurationTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/cache/AbstractCacheAutoConfigurationTests.java index f8a6d3df34e..4eecdfdf3c1 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/cache/AbstractCacheAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/cache/AbstractCacheAutoConfigurationTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2020 the original author or authors. + * Copyright 2012-2021 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. @@ -34,7 +34,6 @@ import org.springframework.cache.concurrent.ConcurrentMapCacheManager; import org.springframework.cache.support.SimpleCacheManager; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.data.couchbase.cache.CouchbaseCacheManager; import org.springframework.data.redis.cache.RedisCacheManager; import static org.assertj.core.api.Assertions.assertThat; @@ -99,13 +98,6 @@ abstract class AbstractCacheAutoConfigurationTests { }; } - @Bean - CacheManagerCustomizer couchbaseCacheManagerCustomizer() { - return new CacheManagerTestCustomizer() { - - }; - } - @Bean CacheManagerCustomizer redisCacheManagerCustomizer() { return new CacheManagerTestCustomizer() { diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/cache/CacheAutoConfigurationTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/cache/CacheAutoConfigurationTests.java index 1d2fe4cb6f2..1a0bfd15dd8 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/cache/CacheAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/cache/CacheAutoConfigurationTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2020 the original author or authors. + * Copyright 2012-2021 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. @@ -62,10 +62,6 @@ import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.Resource; -import org.springframework.data.couchbase.CouchbaseClientFactory; -import org.springframework.data.couchbase.cache.CouchbaseCache; -import org.springframework.data.couchbase.cache.CouchbaseCacheConfiguration; -import org.springframework.data.couchbase.cache.CouchbaseCacheManager; import org.springframework.data.redis.cache.RedisCacheConfiguration; import org.springframework.data.redis.cache.RedisCacheManager; import org.springframework.data.redis.connection.RedisConnectionFactory; @@ -194,64 +190,6 @@ class CacheAutoConfigurationTests extends AbstractCacheAutoConfigurationTests { }); } - @Test - void couchbaseCacheExplicit() { - this.contextRunner.withUserConfiguration(CouchbaseConfiguration.class) - .withPropertyValues("spring.cache.type=couchbase").run((context) -> { - CouchbaseCacheManager cacheManager = getCacheManager(context, CouchbaseCacheManager.class); - assertThat(cacheManager.getCacheNames()).isEmpty(); - }); - } - - @Test - void couchbaseCacheWithCustomizers() { - this.contextRunner.withUserConfiguration(CouchbaseWithCustomizersConfiguration.class) - .withPropertyValues("spring.cache.type=couchbase") - .run(verifyCustomizers("allCacheManagerCustomizer", "couchbaseCacheManagerCustomizer")); - } - - @Test - void couchbaseCacheExplicitWithCaches() { - this.contextRunner.withUserConfiguration(CouchbaseConfiguration.class) - .withPropertyValues("spring.cache.type=couchbase", "spring.cache.cacheNames[0]=foo", - "spring.cache.cacheNames[1]=bar") - .run((context) -> { - CouchbaseCacheManager cacheManager = getCacheManager(context, CouchbaseCacheManager.class); - assertThat(cacheManager.getCacheNames()).containsOnly("foo", "bar"); - Cache cache = cacheManager.getCache("foo"); - assertThat(cache).isInstanceOf(CouchbaseCache.class); - assertThat(((CouchbaseCache) cache).getCacheConfiguration().getExpiry()).hasSeconds(0); - }); - } - - @Test - void couchbaseCacheExplicitWithTtl() { - this.contextRunner.withUserConfiguration(CouchbaseConfiguration.class) - .withPropertyValues("spring.cache.type=couchbase", "spring.cache.cacheNames=foo,bar", - "spring.cache.couchbase.expiration=2000") - .run((context) -> { - CouchbaseCacheManager cacheManager = getCacheManager(context, CouchbaseCacheManager.class); - assertThat(cacheManager.getCacheNames()).containsOnly("foo", "bar"); - Cache cache = cacheManager.getCache("foo"); - assertThat(cache).isInstanceOf(CouchbaseCache.class); - assertThat(((CouchbaseCache) cache).getCacheConfiguration().getExpiry()).hasSeconds(2); - }); - } - - @Test - void couchbaseCacheWithCouchbaseCacheManagerBuilderCustomizer() { - this.contextRunner.withUserConfiguration(CouchbaseConfiguration.class) - .withPropertyValues("spring.cache.type=couchbase", "spring.cache.couchbase.expiration=15s") - .withBean(CouchbaseCacheManagerBuilderCustomizer.class, () -> (builder) -> builder.cacheDefaults( - CouchbaseCacheConfiguration.defaultCacheConfig().entryExpiry(java.time.Duration.ofSeconds(10)))) - .run((context) -> { - CouchbaseCacheManager cacheManager = getCacheManager(context, CouchbaseCacheManager.class); - CouchbaseCacheConfiguration couchbaseCacheConfiguration = getDefaultCouchbaseCacheConfiguration( - cacheManager); - assertThat(couchbaseCacheConfiguration.getExpiry()).isEqualTo(java.time.Duration.ofSeconds(10)); - }); - } - @Test void redisCacheExplicit() { this.contextRunner.withUserConfiguration(RedisConfiguration.class) @@ -682,10 +620,6 @@ class CacheAutoConfigurationTests extends AbstractCacheAutoConfigurationTests { assertThat(((CaffeineCache) foo).getNativeCache().stats().missCount()).isEqualTo(1L); } - private CouchbaseCacheConfiguration getDefaultCouchbaseCacheConfiguration(CouchbaseCacheManager cacheManager) { - return (CouchbaseCacheConfiguration) ReflectionTestUtils.getField(cacheManager, "defaultCacheConfig"); - } - private RedisCacheConfiguration getDefaultRedisCacheConfiguration(RedisCacheManager cacheManager) { return (RedisCacheConfiguration) ReflectionTestUtils.getField(cacheManager, "defaultCacheConfig"); } @@ -737,23 +671,6 @@ class CacheAutoConfigurationTests extends AbstractCacheAutoConfigurationTests { } - @Configuration(proxyBeanMethods = false) - @EnableCaching - static class CouchbaseConfiguration { - - @Bean - CouchbaseClientFactory couchbaseClientFactory() { - return mock(CouchbaseClientFactory.class); - } - - } - - @Configuration(proxyBeanMethods = false) - @Import({ CouchbaseConfiguration.class, CacheManagerCustomizersConfiguration.class }) - static class CouchbaseWithCustomizersConfiguration { - - } - @Configuration(proxyBeanMethods = false) @EnableCaching static class RedisConfiguration { diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/alt/couchbase/CityCouchbaseRepository.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/alt/couchbase/CityCouchbaseRepository.java deleted file mode 100644 index 94b51988cb5..00000000000 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/alt/couchbase/CityCouchbaseRepository.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright 2012-2019 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.boot.autoconfigure.data.alt.couchbase; - -import org.springframework.boot.autoconfigure.data.couchbase.city.City; -import org.springframework.data.repository.Repository; - -public interface CityCouchbaseRepository extends Repository { - -} diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/alt/couchbase/ReactiveCityCouchbaseRepository.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/alt/couchbase/ReactiveCityCouchbaseRepository.java deleted file mode 100644 index 62c9296c868..00000000000 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/alt/couchbase/ReactiveCityCouchbaseRepository.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright 2012-2019 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.boot.autoconfigure.data.alt.couchbase; - -import org.springframework.boot.autoconfigure.data.couchbase.city.City; -import org.springframework.data.repository.reactive.ReactiveCrudRepository; - -public interface ReactiveCityCouchbaseRepository extends ReactiveCrudRepository { - -} diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseDataAutoConfigurationTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseDataAutoConfigurationTests.java deleted file mode 100644 index 6cb4e0698fe..00000000000 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseDataAutoConfigurationTests.java +++ /dev/null @@ -1,130 +0,0 @@ -/* - * Copyright 2012-2020 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.boot.autoconfigure.data.couchbase; - -import java.util.Collections; -import java.util.Set; - -import org.junit.jupiter.api.Test; - -import org.springframework.boot.autoconfigure.AutoConfigurations; -import org.springframework.boot.autoconfigure.couchbase.CouchbaseAutoConfiguration; -import org.springframework.boot.autoconfigure.couchbase.CouchbaseProperties; -import org.springframework.boot.autoconfigure.data.couchbase.city.City; -import org.springframework.boot.autoconfigure.domain.EntityScan; -import org.springframework.boot.autoconfigure.validation.ValidationAutoConfiguration; -import org.springframework.boot.test.context.runner.ApplicationContextRunner; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Import; -import org.springframework.core.convert.converter.Converter; -import org.springframework.data.couchbase.config.BeanNames; -import org.springframework.data.couchbase.core.CouchbaseTemplate; -import org.springframework.data.couchbase.core.convert.CouchbaseCustomConversions; -import org.springframework.data.couchbase.core.convert.DefaultCouchbaseTypeMapper; -import org.springframework.data.couchbase.core.convert.MappingCouchbaseConverter; -import org.springframework.data.couchbase.core.mapping.CouchbaseMappingContext; -import org.springframework.data.couchbase.core.mapping.event.ValidatingCouchbaseEventListener; -import org.springframework.test.util.ReflectionTestUtils; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * Tests for {@link CouchbaseDataAutoConfiguration}. - * - * @author Stephane Nicoll - */ -class CouchbaseDataAutoConfigurationTests { - - private final ApplicationContextRunner contextRunner = new ApplicationContextRunner() - .withConfiguration(AutoConfigurations.of(ValidationAutoConfiguration.class, - CouchbaseAutoConfiguration.class, CouchbaseDataAutoConfiguration.class)); - - @Test - void disabledIfCouchbaseIsNotConfigured() { - this.contextRunner.run((context) -> assertThat(context).doesNotHaveBean(CouchbaseTemplate.class)); - } - - @Test - void validatorIsPresent() { - this.contextRunner.run((context) -> assertThat(context).hasSingleBean(ValidatingCouchbaseEventListener.class)); - } - - @Test - @SuppressWarnings("unchecked") - void entityScanShouldSetInitialEntitySet() { - this.contextRunner.withUserConfiguration(EntityScanConfig.class).run((context) -> { - CouchbaseMappingContext mappingContext = context.getBean(CouchbaseMappingContext.class); - Set> initialEntitySet = (Set>) ReflectionTestUtils.getField(mappingContext, - "initialEntitySet"); - assertThat(initialEntitySet).containsOnly(City.class); - }); - } - - @Test - void typeKeyDefault() { - this.contextRunner.withUserConfiguration(CouchbaseMockConfiguration.class) - .run((context) -> assertThat(context.getBean(MappingCouchbaseConverter.class).getTypeKey()) - .isEqualTo(DefaultCouchbaseTypeMapper.DEFAULT_TYPE_KEY)); - } - - @Test - void typeKeyCanBeCustomized() { - this.contextRunner.withUserConfiguration(CouchbaseMockConfiguration.class) - .withPropertyValues("spring.data.couchbase.type-key=_custom") - .run((context) -> assertThat(context.getBean(MappingCouchbaseConverter.class).getTypeKey()) - .isEqualTo("_custom")); - } - - @Test - void customConversions() { - this.contextRunner.withUserConfiguration(CustomConversionsConfig.class).run((context) -> { - CouchbaseTemplate template = context.getBean(CouchbaseTemplate.class); - assertThat( - template.getConverter().getConversionService().canConvert(CouchbaseProperties.class, Boolean.class)) - .isTrue(); - }); - } - - @Configuration(proxyBeanMethods = false) - @Import(CouchbaseMockConfiguration.class) - static class CustomConversionsConfig { - - @Bean(BeanNames.COUCHBASE_CUSTOM_CONVERSIONS) - CouchbaseCustomConversions myCustomConversions() { - return new CouchbaseCustomConversions(Collections.singletonList(new MyConverter())); - } - - } - - @Configuration(proxyBeanMethods = false) - @EntityScan("org.springframework.boot.autoconfigure.data.couchbase.city") - @Import(CouchbaseMockConfiguration.class) - static class EntityScanConfig { - - } - - static class MyConverter implements Converter { - - @Override - public Boolean convert(CouchbaseProperties value) { - return true; - } - - } - -} diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseDataPropertiesTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseDataPropertiesTests.java deleted file mode 100644 index 47d3e3db6d2..00000000000 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseDataPropertiesTests.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright 2012-2020 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.boot.autoconfigure.data.couchbase; - -import org.junit.jupiter.api.Test; - -import org.springframework.data.couchbase.core.convert.DefaultCouchbaseTypeMapper; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * Tests for {@link CouchbaseDataProperties}. - * - * @author Stephane Nicoll - */ -class CouchbaseDataPropertiesTests { - - @Test - void typeKeyHasConsistentDefault() { - assertThat(new CouchbaseDataProperties().getTypeKey()).isEqualTo(DefaultCouchbaseTypeMapper.DEFAULT_TYPE_KEY); - } - -} diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseMockConfiguration.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseMockConfiguration.java deleted file mode 100644 index 2e9ca2f8212..00000000000 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseMockConfiguration.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright 2012-2020 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.boot.autoconfigure.data.couchbase; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.data.couchbase.CouchbaseClientFactory; - -import static org.mockito.Mockito.mock; - -/** - * Test configuration that mocks access to Couchbase. - * - * @author Stephane Nicoll - */ -@Configuration(proxyBeanMethods = false) -class CouchbaseMockConfiguration { - - @Bean - CouchbaseClientFactory couchbaseClientFactory() { - return mock(CouchbaseClientFactory.class); - } - -} diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseReactiveAndImperativeRepositoriesAutoConfigurationTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseReactiveAndImperativeRepositoriesAutoConfigurationTests.java deleted file mode 100644 index 2fbbac6c227..00000000000 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseReactiveAndImperativeRepositoriesAutoConfigurationTests.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright 2012-2021 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.boot.autoconfigure.data.couchbase; - -import java.util.ArrayList; -import java.util.List; - -import org.junit.jupiter.api.Test; - -import org.springframework.boot.autoconfigure.TestAutoConfigurationPackage; -import org.springframework.boot.autoconfigure.couchbase.CouchbaseAutoConfiguration; -import org.springframework.boot.autoconfigure.data.couchbase.city.CityRepository; -import org.springframework.boot.autoconfigure.data.couchbase.city.ReactiveCityRepository; -import org.springframework.boot.test.context.runner.ApplicationContextRunner; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Import; -import org.springframework.context.annotation.ImportSelector; -import org.springframework.core.type.AnnotationMetadata; -import org.springframework.data.couchbase.repository.config.EnableCouchbaseRepositories; -import org.springframework.data.couchbase.repository.config.EnableReactiveCouchbaseRepositories; -import org.springframework.util.StringUtils; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * Tests for {@link CouchbaseRepositoriesAutoConfiguration} and - * {@link CouchbaseReactiveRepositoriesAutoConfiguration}. - * - * @author Stephane Nicoll - */ -class CouchbaseReactiveAndImperativeRepositoriesAutoConfigurationTests { - - @Test - void shouldCreateInstancesForReactiveAndImperativeRepositories() { - new ApplicationContextRunner() - .withUserConfiguration(ImperativeAndReactiveConfiguration.class, BaseConfiguration.class) - .run((context) -> assertThat(context).hasSingleBean(CityRepository.class) - .hasSingleBean(ReactiveCityRepository.class)); - } - - @Configuration(proxyBeanMethods = false) - @TestAutoConfigurationPackage(CouchbaseAutoConfiguration.class) - @EnableCouchbaseRepositories(basePackageClasses = CityRepository.class) - @EnableReactiveCouchbaseRepositories(basePackageClasses = ReactiveCityRepository.class) - static class ImperativeAndReactiveConfiguration { - - } - - @Configuration(proxyBeanMethods = false) - @Import({ CouchbaseMockConfiguration.class, Registrar.class }) - static class BaseConfiguration { - - } - - static class Registrar implements ImportSelector { - - @Override - public String[] selectImports(AnnotationMetadata importingClassMetadata) { - List names = new ArrayList<>(); - for (Class type : new Class[] { CouchbaseAutoConfiguration.class, - CouchbaseDataAutoConfiguration.class, CouchbaseRepositoriesAutoConfiguration.class, - CouchbaseReactiveDataAutoConfiguration.class, - CouchbaseReactiveRepositoriesAutoConfiguration.class }) { - names.add(type.getName()); - } - return StringUtils.toStringArray(names); - } - - } - -} diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseReactiveDataAutoConfigurationTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseReactiveDataAutoConfigurationTests.java deleted file mode 100644 index a949f14aa10..00000000000 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseReactiveDataAutoConfigurationTests.java +++ /dev/null @@ -1,114 +0,0 @@ -/* - * Copyright 2012-2020 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.boot.autoconfigure.data.couchbase; - -import java.util.Collections; -import java.util.Set; - -import org.junit.jupiter.api.Test; - -import org.springframework.boot.autoconfigure.AutoConfigurations; -import org.springframework.boot.autoconfigure.couchbase.CouchbaseAutoConfiguration; -import org.springframework.boot.autoconfigure.couchbase.CouchbaseProperties; -import org.springframework.boot.autoconfigure.data.couchbase.city.City; -import org.springframework.boot.autoconfigure.domain.EntityScan; -import org.springframework.boot.autoconfigure.validation.ValidationAutoConfiguration; -import org.springframework.boot.test.context.runner.ApplicationContextRunner; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Import; -import org.springframework.core.convert.converter.Converter; -import org.springframework.data.couchbase.config.BeanNames; -import org.springframework.data.couchbase.core.ReactiveCouchbaseTemplate; -import org.springframework.data.couchbase.core.convert.CouchbaseCustomConversions; -import org.springframework.data.couchbase.core.mapping.CouchbaseMappingContext; -import org.springframework.data.couchbase.core.mapping.event.ValidatingCouchbaseEventListener; -import org.springframework.test.util.ReflectionTestUtils; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * Tests for {@link CouchbaseReactiveDataAutoConfiguration}. - * - * @author Alex Derkach - * @author Stephane Nicoll - */ -class CouchbaseReactiveDataAutoConfigurationTests { - - private final ApplicationContextRunner contextRunner = new ApplicationContextRunner().withConfiguration( - AutoConfigurations.of(ValidationAutoConfiguration.class, CouchbaseAutoConfiguration.class, - CouchbaseDataAutoConfiguration.class, CouchbaseReactiveDataAutoConfiguration.class)); - - @Test - void disabledIfCouchbaseIsNotConfigured() { - this.contextRunner.run((context) -> assertThat(context).doesNotHaveBean(ReactiveCouchbaseTemplate.class)); - } - - @Test - void validatorIsPresent() { - this.contextRunner.run((context) -> assertThat(context).hasSingleBean(ValidatingCouchbaseEventListener.class)); - } - - @Test - @SuppressWarnings("unchecked") - void entityScanShouldSetInitialEntitySet() { - this.contextRunner.withUserConfiguration(EntityScanConfig.class).run((context) -> { - CouchbaseMappingContext mappingContext = context.getBean(CouchbaseMappingContext.class); - Set> initialEntitySet = (Set>) ReflectionTestUtils.getField(mappingContext, - "initialEntitySet"); - assertThat(initialEntitySet).containsOnly(City.class); - }); - } - - @Test - void customConversions() { - this.contextRunner.withUserConfiguration(CustomConversionsConfig.class).run((context) -> { - ReactiveCouchbaseTemplate template = context.getBean(ReactiveCouchbaseTemplate.class); - assertThat( - template.getConverter().getConversionService().canConvert(CouchbaseProperties.class, Boolean.class)) - .isTrue(); - }); - } - - @Configuration(proxyBeanMethods = false) - @Import(CouchbaseMockConfiguration.class) - static class CustomConversionsConfig { - - @Bean(BeanNames.COUCHBASE_CUSTOM_CONVERSIONS) - CouchbaseCustomConversions myCustomConversions() { - return new CouchbaseCustomConversions(Collections.singletonList(new MyConverter())); - } - - } - - @Configuration(proxyBeanMethods = false) - @EntityScan("org.springframework.boot.autoconfigure.data.couchbase.city") - @Import(CouchbaseMockConfiguration.class) - static class EntityScanConfig { - - } - - static class MyConverter implements Converter { - - @Override - public Boolean convert(CouchbaseProperties value) { - return true; - } - - } - -} diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseReactiveRepositoriesAutoConfigurationTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseReactiveRepositoriesAutoConfigurationTests.java deleted file mode 100644 index 060ea7f0d96..00000000000 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseReactiveRepositoriesAutoConfigurationTests.java +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Copyright 2012-2020 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.boot.autoconfigure.data.couchbase; - -import org.junit.jupiter.api.Test; - -import org.springframework.boot.autoconfigure.AutoConfigurations; -import org.springframework.boot.autoconfigure.TestAutoConfigurationPackage; -import org.springframework.boot.autoconfigure.couchbase.CouchbaseAutoConfiguration; -import org.springframework.boot.autoconfigure.data.alt.couchbase.CityCouchbaseRepository; -import org.springframework.boot.autoconfigure.data.alt.couchbase.ReactiveCityCouchbaseRepository; -import org.springframework.boot.autoconfigure.data.couchbase.city.City; -import org.springframework.boot.autoconfigure.data.couchbase.city.ReactiveCityRepository; -import org.springframework.boot.autoconfigure.data.empty.EmptyDataPackage; -import org.springframework.boot.test.context.runner.ApplicationContextRunner; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Import; -import org.springframework.data.couchbase.repository.config.EnableCouchbaseRepositories; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * Tests for {@link CouchbaseReactiveRepositoriesAutoConfiguration}. - * - * @author Alex Derkach - * @author Stephane Nicoll - */ -class CouchbaseReactiveRepositoriesAutoConfigurationTests { - - private final ApplicationContextRunner contextRunner = new ApplicationContextRunner().withConfiguration( - AutoConfigurations.of(CouchbaseAutoConfiguration.class, CouchbaseDataAutoConfiguration.class, - CouchbaseRepositoriesAutoConfiguration.class, CouchbaseReactiveDataAutoConfiguration.class, - CouchbaseReactiveRepositoriesAutoConfiguration.class)); - - @Test - void couchbaseNotAvailable() { - this.contextRunner.run((context) -> assertThat(context).doesNotHaveBean(ReactiveCityRepository.class)); - } - - @Test - void defaultRepository() { - this.contextRunner.withUserConfiguration(DefaultConfiguration.class) - .run((context) -> assertThat(context).hasSingleBean(ReactiveCityRepository.class)); - } - - @Test - void imperativeRepositories() { - this.contextRunner.withUserConfiguration(DefaultConfiguration.class) - .withPropertyValues("spring.data.couchbase.repositories.type=imperative") - .run((context) -> assertThat(context).doesNotHaveBean(ReactiveCityRepository.class)); - } - - @Test - void disabledRepositories() { - this.contextRunner.withUserConfiguration(DefaultConfiguration.class) - .withPropertyValues("spring.data.couchbase.repositories.type=none") - .run((context) -> assertThat(context).doesNotHaveBean(ReactiveCityRepository.class)); - } - - @Test - void noRepositoryAvailable() { - this.contextRunner.withUserConfiguration(NoRepositoryConfiguration.class) - .run((context) -> assertThat(context).doesNotHaveBean(ReactiveCityRepository.class)); - } - - @Test - void doesNotTriggerDefaultRepositoryDetectionIfCustomized() { - this.contextRunner.withUserConfiguration(CustomizedConfiguration.class) - .run((context) -> assertThat(context).doesNotHaveBean(ReactiveCityCouchbaseRepository.class)); - } - - @Configuration(proxyBeanMethods = false) - @TestAutoConfigurationPackage(City.class) - @Import(CouchbaseMockConfiguration.class) - static class DefaultConfiguration { - - } - - @Configuration(proxyBeanMethods = false) - @TestAutoConfigurationPackage(EmptyDataPackage.class) - @Import(CouchbaseMockConfiguration.class) - static class NoRepositoryConfiguration { - - } - - @Configuration(proxyBeanMethods = false) - @TestAutoConfigurationPackage(CouchbaseReactiveRepositoriesAutoConfigurationTests.class) - @EnableCouchbaseRepositories(basePackageClasses = CityCouchbaseRepository.class) - @Import(CouchbaseMockConfiguration.class) - static class CustomizedConfiguration { - - } - -} diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseRepositoriesAutoConfigurationTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseRepositoriesAutoConfigurationTests.java deleted file mode 100644 index ac628cc4fa9..00000000000 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseRepositoriesAutoConfigurationTests.java +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright 2012-2020 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.boot.autoconfigure.data.couchbase; - -import org.junit.jupiter.api.Test; - -import org.springframework.boot.autoconfigure.AutoConfigurations; -import org.springframework.boot.autoconfigure.TestAutoConfigurationPackage; -import org.springframework.boot.autoconfigure.couchbase.CouchbaseAutoConfiguration; -import org.springframework.boot.autoconfigure.data.couchbase.city.City; -import org.springframework.boot.autoconfigure.data.couchbase.city.CityRepository; -import org.springframework.boot.autoconfigure.data.empty.EmptyDataPackage; -import org.springframework.boot.test.context.runner.ApplicationContextRunner; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Import; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * Tests for {@link CouchbaseRepositoriesAutoConfiguration}. - * - * @author Eddú Meléndez - * @author Stephane Nicoll - */ -class CouchbaseRepositoriesAutoConfigurationTests { - - private final ApplicationContextRunner contextRunner = new ApplicationContextRunner() - .withConfiguration(AutoConfigurations.of(CouchbaseAutoConfiguration.class, - CouchbaseDataAutoConfiguration.class, CouchbaseRepositoriesAutoConfiguration.class)); - - @Test - void couchbaseNotAvailable() { - this.contextRunner.run((context) -> assertThat(context).doesNotHaveBean(CityRepository.class)); - } - - @Test - void defaultRepository() { - this.contextRunner.withUserConfiguration(DefaultConfiguration.class) - .run((context) -> assertThat(context).hasSingleBean(CityRepository.class)); - } - - @Test - void reactiveRepositories() { - this.contextRunner.withUserConfiguration(DefaultConfiguration.class) - .withPropertyValues("spring.data.couchbase.repositories.type=reactive") - .run((context) -> assertThat(context).doesNotHaveBean(CityRepository.class)); - } - - @Test - void disabledRepositories() { - this.contextRunner.withUserConfiguration(DefaultConfiguration.class) - .withPropertyValues("spring.data.couchbase.repositories.type=none") - .run((context) -> assertThat(context).doesNotHaveBean(CityRepository.class)); - } - - @Test - void noRepositoryAvailable() { - this.contextRunner.withUserConfiguration(NoRepositoryConfiguration.class) - .run((context) -> assertThat(context).doesNotHaveBean(CityRepository.class)); - } - - @Configuration(proxyBeanMethods = false) - @TestAutoConfigurationPackage(City.class) - static class CouchbaseNotAvailableConfiguration { - - } - - @Configuration(proxyBeanMethods = false) - @TestAutoConfigurationPackage(City.class) - @Import(CouchbaseMockConfiguration.class) - static class DefaultConfiguration { - - } - - @Configuration(proxyBeanMethods = false) - @TestAutoConfigurationPackage(EmptyDataPackage.class) - @Import(CouchbaseMockConfiguration.class) - static class NoRepositoryConfiguration { - - } - -} diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/couchbase/city/City.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/couchbase/city/City.java deleted file mode 100644 index 51c657d9a02..00000000000 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/couchbase/city/City.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright 2012-2020 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.boot.autoconfigure.data.couchbase.city; - -import org.springframework.data.annotation.Id; -import org.springframework.data.couchbase.core.mapping.Document; -import org.springframework.data.couchbase.core.mapping.Field; - -@Document -public class City { - - @Id - private String id; - - @Field - private String name; - -} diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/couchbase/city/CityRepository.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/couchbase/city/CityRepository.java deleted file mode 100644 index bb22f2d64fa..00000000000 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/couchbase/city/CityRepository.java +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright 2012-2019 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.boot.autoconfigure.data.couchbase.city; - -import org.springframework.data.repository.Repository; - -public interface CityRepository extends Repository { - -} diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/couchbase/city/ReactiveCityRepository.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/couchbase/city/ReactiveCityRepository.java deleted file mode 100644 index 548a290903a..00000000000 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/couchbase/city/ReactiveCityRepository.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright 2012-2019 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.boot.autoconfigure.data.couchbase.city; - -import reactor.core.publisher.Mono; - -import org.springframework.data.repository.Repository; - -public interface ReactiveCityRepository extends Repository { - - Mono save(City city); - - Mono findById(Long id); - -} diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 40b2d53e0d4..05daa5397cc 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -1421,8 +1421,6 @@ bom { "spring-boot-starter-cache", "spring-boot-starter-data-cassandra", "spring-boot-starter-data-cassandra-reactive", - "spring-boot-starter-data-couchbase", - "spring-boot-starter-data-couchbase-reactive", "spring-boot-starter-data-elasticsearch", "spring-boot-starter-data-jdbc", "spring-boot-starter-data-jpa", diff --git a/spring-boot-project/spring-boot-docs/build.gradle b/spring-boot-project/spring-boot-docs/build.gradle index 4aa778fc41e..1229dddccb1 100644 --- a/spring-boot-project/spring-boot-docs/build.gradle +++ b/spring-boot-project/spring-boot-docs/build.gradle @@ -121,7 +121,6 @@ dependencies { implementation("org.springframework.amqp:spring-rabbit") implementation("org.springframework.batch:spring-batch-core") implementation("org.springframework.data:spring-data-cassandra") - implementation("org.springframework.data:spring-data-couchbase") implementation("org.springframework.data:spring-data-elasticsearch") { exclude group: "commons-logging", module: "commons-logging" } @@ -268,7 +267,6 @@ tasks.withType(org.asciidoctor.gradle.jvm.AbstractAsciidoctorTask) { "spring-batch-version": versionConstraints["org.springframework.batch:spring-batch-core"], "spring-boot-version": project.version, "spring-data-commons-version": versionConstraints["org.springframework.data:spring-data-commons"], - "spring-data-couchbase-version": versionConstraints["org.springframework.data:spring-data-couchbase"], "spring-data-envers-version": versionConstraints["org.springframework.data:spring-data-envers"], "spring-data-jdbc-version": versionConstraints["org.springframework.data:spring-data-jdbc"], "spring-data-jpa-version": versionConstraints["org.springframework.data:spring-data-jpa"], diff --git a/spring-boot-project/spring-boot-docs/src/docs/asciidoc/anchor-rewrite.properties b/spring-boot-project/spring-boot-docs/src/docs/asciidoc/anchor-rewrite.properties index 2cd91c4f93f..30833845fab 100644 --- a/spring-boot-project/spring-boot-docs/src/docs/asciidoc/anchor-rewrite.properties +++ b/spring-boot-project/spring-boot-docs/src/docs/asciidoc/anchor-rewrite.properties @@ -264,7 +264,6 @@ boot-features-connecting-to-cassandra=features.nosql.cassandra.connecting boot-features-spring-data-cassandra-repositories=features.nosql.cassandra.repositories boot-features-couchbase=features.nosql.couchbase boot-features-connecting-to-couchbase=features.nosql.couchbase.connecting -boot-features-spring-data-couchbase-repositories=features.nosql.couchbase.repositories boot-features-ldap=features.nosql.ldap boot-features-ldap-connecting=features.nosql.ldap.connecting boot-features-ldap-spring-data-repositories=features.nosql.ldap.repositories @@ -277,7 +276,6 @@ boot-features-caching-provider-generic=features.caching.provider.generic boot-features-caching-provider-jcache=features.caching.provider.jcache boot-features-caching-provider-hazelcast=features.caching.provider.hazelcast boot-features-caching-provider-infinispan=features.caching.provider.infinispan -boot-features-caching-provider-couchbase=features.caching.provider.couchbase boot-features-caching-provider-redis=features.caching.provider.redis boot-features-caching-provider-caffeine=features.caching.provider.caffeine boot-features-caching-provider-simple=features.caching.provider.simple @@ -783,7 +781,6 @@ features.caching.provider.generic=io.caching.provider.generic features.caching.provider.jcache=io.caching.provider.jcache features.caching.provider.hazelcast=io.caching.provider.hazelcast features.caching.provider.infinispan=io.caching.provider.infinispan -features.caching.provider.couchbase=io.caching.provider.couchbase features.caching.provider.redis=io.caching.provider.redis features.caching.provider.caffeine=io.caching.provider.caffeine features.caching.provider.simple=io.caching.provider.simple @@ -901,7 +898,6 @@ features.nosql.cassandra.connecting=data.nosql.cassandra.connecting features.nosql.cassandra.repositories=data.nosql.cassandra.repositories features.nosql.couchbase=data.nosql.couchbase features.nosql.couchbase.connecting=data.nosql.couchbase.connecting -features.nosql.couchbase.repositories=data.nosql.couchbase.repositories features.nosql.ldap=data.nosql.ldap features.nosql.ldap.connecting=data.nosql.ldap.connecting features.nosql.ldap.repositories=data.nosql.ldap.repositories diff --git a/spring-boot-project/spring-boot-docs/src/docs/asciidoc/attributes.adoc b/spring-boot-project/spring-boot-docs/src/docs/asciidoc/attributes.adoc index 3ba8afc70cc..ce2752f0c92 100644 --- a/spring-boot-project/spring-boot-docs/src/docs/asciidoc/attributes.adoc +++ b/spring-boot-project/spring-boot-docs/src/docs/asciidoc/attributes.adoc @@ -57,8 +57,6 @@ :spring-data: https://spring.io/projects/spring-data :spring-data-cassandra: https://spring.io/projects/spring-data-cassandra :spring-data-commons-api: https://docs.spring.io/spring-data/commons/docs/{spring-data-commons-version}/api/org/springframework/data -:spring-data-couchbase: https://spring.io/projects/spring-data-couchbase -:spring-data-couchbase-docs: https://docs.spring.io/spring-data/couchbase/docs/{spring-data-couchbase-version}/reference/html/ :spring-data-elasticsearch: https://spring.io/projects/spring-data-elasticsearch :spring-data-elasticsearch-docs: https://docs.spring.io/spring-data/elasticsearch/docs/current/reference/html/ :spring-data-envers: https://spring.io/projects/spring-data-envers diff --git a/spring-boot-project/spring-boot-docs/src/docs/asciidoc/data/nosql.adoc b/spring-boot-project/spring-boot-docs/src/docs/asciidoc/data/nosql.adoc index 7d312822f23..8fa1d0d1ded 100644 --- a/spring-boot-project/spring-boot-docs/src/docs/asciidoc/data/nosql.adoc +++ b/spring-boot-project/spring-boot-docs/src/docs/asciidoc/data/nosql.adoc @@ -8,7 +8,6 @@ Spring Data provides additional projects that help you access a variety of NoSQL * {spring-data-redis}[Redis] * {spring-data-gemfire}[GemFire] or {spring-data-geode}[Geode] * {spring-data-cassandra}[Cassandra] -* {spring-data-couchbase}[Couchbase] * {spring-data-ldap}[LDAP] Spring Boot provides auto-configuration for Redis, MongoDB, Neo4j, Solr, Elasticsearch, Cassandra, Couchbase, LDAP and InfluxDB. @@ -456,9 +455,7 @@ TIP: For complete details of Spring Data Cassandra, see the https://docs.spring. [[data.nosql.couchbase]] === Couchbase https://www.couchbase.com/[Couchbase] is an open-source, distributed, multi-model NoSQL document-oriented database that is optimized for interactive applications. -Spring Boot offers auto-configuration for Couchbase and the abstractions on top of it provided by https://github.com/spring-projects/spring-data-couchbase[Spring Data Couchbase]. -There are `spring-boot-starter-data-couchbase` and `spring-boot-starter-data-couchbase-reactive` "`Starters`" for collecting the dependencies in a convenient way. - +Spring Boot offers auto-configuration for Couchbase. [[data.nosql.couchbase.connecting]] @@ -496,45 +493,6 @@ To take more control, one or more `ClusterEnvironmentBuilderCustomizer` beans ca -[[data.nosql.couchbase.repositories]] -==== Spring Data Couchbase Repositories -Spring Data includes repository support for Couchbase. -For complete details of Spring Data Couchbase, see the {spring-data-couchbase-docs}[reference documentation]. - -You can inject an auto-configured `CouchbaseTemplate` instance as you would with any other Spring Bean, provided a `CouchbaseClientFactory` bean is available. -This happens when a `Cluster` is available, as described above, and a bucket name has been specified: - -[source,yaml,indent=0,subs="verbatim",configprops,configblocks] ----- - spring: - data: - couchbase: - bucket-name: "my-bucket" ----- - -The following examples shows how to inject a `CouchbaseTemplate` bean: - -[source,java,indent=0,subs="verbatim"] ----- -include::{docs-java}/data/nosql/couchbase/repositories/MyBean.java[] ----- - -There are a few beans that you can define in your own configuration to override those provided by the auto-configuration: - -* A `CouchbaseMappingContext` `@Bean` with a name of `couchbaseMappingContext`. -* A `CustomConversions` `@Bean` with a name of `couchbaseCustomConversions`. -* A `CouchbaseTemplate` `@Bean` with a name of `couchbaseTemplate`. - -To avoid hard-coding those names in your own config, you can reuse `BeanNames` provided by Spring Data Couchbase. -For instance, you can customize the converters to use, as follows: - -[source,java,indent=0,subs="verbatim"] ----- -include::{docs-java}/data/nosql/couchbase/repositories/MyCouchbaseConfiguration.java[] ----- - - - [[data.nosql.ldap]] === LDAP https://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol[LDAP] (Lightweight Directory Access Protocol) is an open, vendor-neutral, industry standard application protocol for accessing and maintaining distributed directory information services over an IP network. diff --git a/spring-boot-project/spring-boot-docs/src/docs/asciidoc/io/caching.adoc b/spring-boot-project/spring-boot-docs/src/docs/asciidoc/io/caching.adoc index cd3e1bb1be3..d0025f58932 100644 --- a/spring-boot-project/spring-boot-docs/src/docs/asciidoc/io/caching.adoc +++ b/spring-boot-project/spring-boot-docs/src/docs/asciidoc/io/caching.adoc @@ -43,7 +43,6 @@ If you have not defined a bean of type `CacheManager` or a `CacheResolver` named . <> (EhCache 3, Hazelcast, Infinispan, and others) . <> . <> -. <> . <> . <> . <> @@ -140,31 +139,6 @@ See https://github.com/infinispan/infinispan-spring-boot[Infinispan's documentat -[[io.caching.provider.couchbase]] -==== Couchbase -If Spring Data Couchbase is available and Couchbase is <>, a `CouchbaseCacheManager` is auto-configured. -It is possible to create additional caches on startup by setting the configprop:spring.cache.cache-names[] property and cache defaults can be configured by using `spring.cache.couchbase.*` properties. -For instance, the following configuration creates `cache1` and `cache2` caches with an entry _expiration_ of 10 minutes: - -[source,yaml,indent=0,subs="verbatim",configprops,configblocks] ----- - spring: - cache: - cache-names: "cache1,cache2" - couchbase: - expiration: "10m" ----- - -If you need more control over the configuration, consider registering a `CouchbaseCacheManagerBuilderCustomizer` bean. -The following example shows a customizer that configures a specific entry expiration for `cache1` and `cache2`: - -[source,java,indent=0,subs="verbatim"] ----- -include::{docs-java}/io/caching/provider/couchbase/MyCouchbaseCacheManagerConfiguration.java[] ----- - - - [[io.caching.provider.redis]] ==== Redis If https://redis.io/[Redis] is available and configured, a `RedisCacheManager` is auto-configured. diff --git a/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/data/nosql/couchbase/repositories/CouchbaseProperties.java b/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/data/nosql/couchbase/repositories/CouchbaseProperties.java deleted file mode 100644 index 82452868467..00000000000 --- a/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/data/nosql/couchbase/repositories/CouchbaseProperties.java +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright 2012-2021 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.boot.docs.data.nosql.couchbase.repositories; - -class CouchbaseProperties { - -} diff --git a/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/data/nosql/couchbase/repositories/MyBean.java b/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/data/nosql/couchbase/repositories/MyBean.java deleted file mode 100644 index b4774209e52..00000000000 --- a/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/data/nosql/couchbase/repositories/MyBean.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright 2012-2021 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.boot.docs.data.nosql.couchbase.repositories; - -import org.springframework.data.couchbase.core.CouchbaseTemplate; -import org.springframework.stereotype.Component; - -@Component -public class MyBean { - - private final CouchbaseTemplate template; - - public MyBean(CouchbaseTemplate template) { - this.template = template; - } - - // @fold:on // ... - public String someMethod() { - return this.template.getBucketName(); - } - // @fold:off - -} diff --git a/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/data/nosql/couchbase/repositories/MyConverter.java b/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/data/nosql/couchbase/repositories/MyConverter.java deleted file mode 100644 index d7020dfc09f..00000000000 --- a/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/data/nosql/couchbase/repositories/MyConverter.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright 2012-2021 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.boot.docs.data.nosql.couchbase.repositories; - -import org.springframework.core.convert.converter.Converter; - -class MyConverter implements Converter { - - @Override - public Boolean convert(CouchbaseProperties value) { - return true; - } - -} diff --git a/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/data/nosql/couchbase/repositories/MyCouchbaseConfiguration.java b/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/data/nosql/couchbase/repositories/MyCouchbaseConfiguration.java deleted file mode 100644 index 02d7b721cde..00000000000 --- a/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/data/nosql/couchbase/repositories/MyCouchbaseConfiguration.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright 2012-2021 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.boot.docs.data.nosql.couchbase.repositories; - -import org.assertj.core.util.Arrays; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.data.couchbase.config.BeanNames; -import org.springframework.data.couchbase.core.convert.CouchbaseCustomConversions; - -@Configuration(proxyBeanMethods = false) -public class MyCouchbaseConfiguration { - - @Bean(BeanNames.COUCHBASE_CUSTOM_CONVERSIONS) - public CouchbaseCustomConversions myCustomConversions() { - return new CouchbaseCustomConversions(Arrays.asList(new MyConverter())); - } - -} diff --git a/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/io/caching/provider/couchbase/MyCouchbaseCacheManagerConfiguration.java b/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/io/caching/provider/couchbase/MyCouchbaseCacheManagerConfiguration.java deleted file mode 100644 index f8a1c036f75..00000000000 --- a/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/io/caching/provider/couchbase/MyCouchbaseCacheManagerConfiguration.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright 2012-2021 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.boot.docs.io.caching.provider.couchbase; - -import java.time.Duration; - -import org.springframework.boot.autoconfigure.cache.CouchbaseCacheManagerBuilderCustomizer; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.data.couchbase.cache.CouchbaseCacheConfiguration; - -@Configuration(proxyBeanMethods = false) -public class MyCouchbaseCacheManagerConfiguration { - - @Bean - public CouchbaseCacheManagerBuilderCustomizer myCouchbaseCacheManagerBuilderCustomizer() { - // @formatter:off - return (builder) -> builder - .withCacheConfiguration("cache1", CouchbaseCacheConfiguration - .defaultCacheConfig().entryExpiry(Duration.ofSeconds(10))) - .withCacheConfiguration("cache2", CouchbaseCacheConfiguration - .defaultCacheConfig().entryExpiry(Duration.ofMinutes(1))); - // @formatter:on - - } - -} diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-data-couchbase-reactive/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-data-couchbase-reactive/build.gradle deleted file mode 100644 index ec8c533472e..00000000000 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-data-couchbase-reactive/build.gradle +++ /dev/null @@ -1,12 +0,0 @@ -plugins { - id "org.springframework.boot.starter" -} - -description = "Starter for using Couchbase document-oriented database and Spring Data Couchbase Reactive" - -dependencies { - api(project(":spring-boot-project:spring-boot-starters:spring-boot-starter")) - api("io.projectreactor:reactor-core") - api("io.reactivex:rxjava-reactive-streams") - api("org.springframework.data:spring-data-couchbase") -} diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-data-couchbase/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-data-couchbase/build.gradle deleted file mode 100644 index 17742429df2..00000000000 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-data-couchbase/build.gradle +++ /dev/null @@ -1,10 +0,0 @@ -plugins { - id "org.springframework.boot.starter" -} - -description = "Starter for using Couchbase document-oriented database and Spring Data Couchbase" - -dependencies { - api(project(":spring-boot-project:spring-boot-starters:spring-boot-starter")) - api("org.springframework.data:spring-data-couchbase") -} diff --git a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-cache/build.gradle b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-cache/build.gradle index 37a471ccab8..bb71386e0e8 100644 --- a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-cache/build.gradle +++ b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-cache/build.gradle @@ -9,9 +9,6 @@ def caches = [ "caffeine": [ "com.github.ben-manes.caffeine:caffeine" ], - "couchbase": [ - project(":spring-boot-project:spring-boot-starters:spring-boot-starter-data-couchbase") - ], "ehcache": [ "javax.cache:cache-api", "org.ehcache:ehcache" diff --git a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-data-couchbase/build.gradle b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-data-couchbase/build.gradle deleted file mode 100644 index 9f4ceffe3cf..00000000000 --- a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-data-couchbase/build.gradle +++ /dev/null @@ -1,12 +0,0 @@ -plugins { - id "java" - id "org.springframework.boot.conventions" -} - -description = "Spring Boot Data Couchbase smoke test" - -dependencies { - implementation(project(":spring-boot-project:spring-boot-starters:spring-boot-starter-data-couchbase")) - - testImplementation(project(":spring-boot-project:spring-boot-starters:spring-boot-starter-test")) -} diff --git a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-data-couchbase/src/main/java/smoketest/data/couchbase/SampleCouchbaseApplication.java b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-data-couchbase/src/main/java/smoketest/data/couchbase/SampleCouchbaseApplication.java deleted file mode 100644 index 96dcd52f415..00000000000 --- a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-data-couchbase/src/main/java/smoketest/data/couchbase/SampleCouchbaseApplication.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright 2012-2019 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 smoketest.data.couchbase; - -import java.util.UUID; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.CommandLineRunner; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class SampleCouchbaseApplication implements CommandLineRunner { - - @Autowired - private UserRepository userRepository; - - public static void main(String[] args) { - SpringApplication.run(SampleCouchbaseApplication.class); - } - - @Override - public void run(String... args) throws Exception { - this.userRepository.deleteAll(); - User user = saveUser(); - System.out.println(this.userRepository.findById(user.getId())); - } - - private User saveUser() { - User user = new User(); - user.setId(UUID.randomUUID().toString()); - user.setFirstName("Alice"); - user.setLastName("Smith"); - return this.userRepository.save(user); - } - -} diff --git a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-data-couchbase/src/main/java/smoketest/data/couchbase/User.java b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-data-couchbase/src/main/java/smoketest/data/couchbase/User.java deleted file mode 100644 index 2f7364c216c..00000000000 --- a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-data-couchbase/src/main/java/smoketest/data/couchbase/User.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright 2012-2020 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 smoketest.data.couchbase; - -import org.springframework.data.annotation.Id; -import org.springframework.data.couchbase.core.mapping.Document; -import org.springframework.data.couchbase.core.mapping.Field; - -@Document -public class User { - - @Id - private String id; - - @Field - private String firstName; - - @Field - private String lastName; - - public String getId() { - return this.id; - } - - public void setId(String id) { - this.id = id; - } - - public String getFirstName() { - return this.firstName; - } - - public void setFirstName(String firstName) { - this.firstName = firstName; - } - - public String getLastName() { - return this.lastName; - } - - public void setLastName(String lastName) { - this.lastName = lastName; - } - - @Override - public String toString() { - return "User{id='" + this.id + '\'' + ", firstName='" + this.firstName + '\'' + ", lastName='" + this.lastName - + '\'' + '}'; - } - -} diff --git a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-data-couchbase/src/main/java/smoketest/data/couchbase/UserRepository.java b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-data-couchbase/src/main/java/smoketest/data/couchbase/UserRepository.java deleted file mode 100644 index ff1ad58c162..00000000000 --- a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-data-couchbase/src/main/java/smoketest/data/couchbase/UserRepository.java +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright 2012-2020 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 smoketest.data.couchbase; - -import org.springframework.data.couchbase.repository.CouchbaseRepository; - -public interface UserRepository extends CouchbaseRepository { - -} diff --git a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-data-couchbase/src/main/resources/application.properties b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-data-couchbase/src/main/resources/application.properties deleted file mode 100644 index 9cc0b988b78..00000000000 --- a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-data-couchbase/src/main/resources/application.properties +++ /dev/null @@ -1,8 +0,0 @@ -spring.couchbase.connection-string=couchbase://127.0.0.1 -spring.couchbase.username=admin -spring.couchbase.password=secret - -spring.couchbase.env.timeouts.connect=15s - -spring.data.couchbase.auto-index=true -spring.data.couchbase.bucket-name=default diff --git a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-data-couchbase/src/test/java/smoketest/data/couchbase/SampleCouchbaseApplicationTests.java b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-data-couchbase/src/test/java/smoketest/data/couchbase/SampleCouchbaseApplicationTests.java deleted file mode 100644 index 8c70795a9ca..00000000000 --- a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-data-couchbase/src/test/java/smoketest/data/couchbase/SampleCouchbaseApplicationTests.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright 2012-2021 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 smoketest.data.couchbase; - -import com.couchbase.client.core.error.AmbiguousTimeoutException; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; - -import org.springframework.boot.builder.SpringApplicationBuilder; -import org.springframework.boot.test.system.CapturedOutput; -import org.springframework.boot.test.system.OutputCaptureExtension; -import org.springframework.core.NestedCheckedException; - -import static org.assertj.core.api.Assertions.assertThat; - -@ExtendWith(OutputCaptureExtension.class) -class SampleCouchbaseApplicationTests { - - @Test - void testDefaultSettings(CapturedOutput output) { - try { - new SpringApplicationBuilder(SampleCouchbaseApplication.class).run("--server.port=0"); - } - catch (RuntimeException ex) { - if (serverNotRunning(ex)) { - return; - } - } - assertThat(output).contains("firstName='Alice', lastName='Smith'"); - } - - private boolean serverNotRunning(RuntimeException ex) { - NestedCheckedException nested = new NestedCheckedException("failed", ex) { - }; - if (nested.contains(AmbiguousTimeoutException.class)) { - Throwable root = nested.getRootCause(); - // This is not ideal, we should have a better way to know what is going on - if (root.getMessage().contains("QueryRequest, Reason: TIMEOUT")) { - return true; - } - } - return false; - } - -}