Skip to content

Commit 3eebbc7

Browse files
committed
Create spring-boot-couchbase module
1 parent 6c77993 commit 3eebbc7

File tree

38 files changed

+216
-182
lines changed

38 files changed

+216
-182
lines changed

settings.gradle

+1
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ include "spring-boot-project:spring-boot-artemis"
5050
include "spring-boot-project:spring-boot-autoconfigure"
5151
include "spring-boot-project:spring-boot-autoconfigure-all"
5252
include "spring-boot-project:spring-boot-batch"
53+
include "spring-boot-project:spring-boot-couchbase"
5354
include "spring-boot-project:spring-boot-data-jpa"
5455
include "spring-boot-project:spring-boot-dependencies"
5556
include "spring-boot-project:spring-boot-devtools"

spring-boot-project/spring-boot-actuator-autoconfigure/build.gradle

+1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ dependencies {
2020
optional(project(":spring-boot-project:spring-boot-activemq"))
2121
optional(project(":spring-boot-project:spring-boot-amqp"))
2222
optional(project(":spring-boot-project:spring-boot-artemis"))
23+
optional(project(":spring-boot-project:spring-boot-couchbase"))
2324
optional(project(":spring-boot-project:spring-boot-data-jpa"))
2425
optional(project(":spring-boot-project:spring-boot-elasticsearch"))
2526
optional(project(":spring-boot-project:spring-boot-flyway"))

spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/couchbase/CouchbaseHealthContributorAutoConfiguration.java

+2-3
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
2929
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
3030
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
31-
import org.springframework.boot.autoconfigure.couchbase.CouchbaseAutoConfiguration;
3231
import org.springframework.context.annotation.Bean;
3332

3433
/**
@@ -40,8 +39,8 @@
4039
* @author Andy Wilkinson Nicoll
4140
* @since 2.0.0
4241
*/
43-
@AutoConfiguration(
44-
after = { CouchbaseAutoConfiguration.class, CouchbaseReactiveHealthContributorAutoConfiguration.class })
42+
@AutoConfiguration(after = CouchbaseReactiveHealthContributorAutoConfiguration.class,
43+
afterName = "org.springframework.boot.couchbase.autoconfigure.CouchbaseAutoConfiguration")
4544
@ConditionalOnClass(Cluster.class)
4645
@ConditionalOnBean(Cluster.class)
4746
@ConditionalOnEnabledHealthIndicator("couchbase")

spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/couchbase/CouchbaseReactiveHealthContributorAutoConfiguration.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
3030
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
3131
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
32-
import org.springframework.boot.autoconfigure.couchbase.CouchbaseAutoConfiguration;
3332
import org.springframework.context.annotation.Bean;
3433

3534
/**
@@ -40,7 +39,7 @@
4039
* @author Stephane Nicoll
4140
* @since 2.1.0
4241
*/
43-
@AutoConfiguration(after = CouchbaseAutoConfiguration.class)
42+
@AutoConfiguration(afterName = "org.springframework.boot.couchbase.autoconfigure.CouchbaseAutoConfiguration")
4443
@ConditionalOnClass({ Cluster.class, Flux.class })
4544
@ConditionalOnBean(Cluster.class)
4645
@ConditionalOnEnabledHealthIndicator("couchbase")

spring-boot-project/spring-boot-autoconfigure-all/build.gradle

+1
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ dependencies {
4343

4444
optional(project(":spring-boot-project:spring-boot-activemq"))
4545
optional(project(":spring-boot-project:spring-boot-artemis"))
46+
optional(project(":spring-boot-project:spring-boot-couchbase"))
4647
optional(project(":spring-boot-project:spring-boot-data-jpa"))
4748
optional(project(":spring-boot-project:spring-boot-elasticsearch"))
4849
optional(project(":spring-boot-project:spring-boot-flyway"))

spring-boot-project/spring-boot-autoconfigure-all/src/dockerTest/java/org/springframework/boot/autoconfigure/couchbase/CouchbaseAutoConfigurationIntegrationTests.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2012-2024 the original author or authors.
2+
* Copyright 2012-2025 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -34,6 +34,7 @@
3434
import org.testcontainers.junit.jupiter.Testcontainers;
3535

3636
import org.springframework.boot.autoconfigure.AutoConfigurations;
37+
import org.springframework.boot.couchbase.autoconfigure.CouchbaseAutoConfiguration;
3738
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
3839
import org.springframework.boot.testsupport.container.TestImage;
3940

spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseDataAutoConfiguration.java

+2-3
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
2424
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
2525
import org.springframework.boot.autoconfigure.condition.ConditionalOnSingleCandidate;
26-
import org.springframework.boot.autoconfigure.couchbase.CouchbaseAutoConfiguration;
2726
import org.springframework.boot.context.properties.EnableConfigurationProperties;
2827
import org.springframework.context.annotation.Bean;
2928
import org.springframework.context.annotation.Configuration;
@@ -38,8 +37,8 @@
3837
* @author Stephane Nicoll
3938
* @since 1.4.0
4039
*/
41-
@AutoConfiguration(after = CouchbaseAutoConfiguration.class,
42-
afterName = "org.springframework.boot.validation.autoconfigure.ValidationAutoConfiguration")
40+
@AutoConfiguration(afterName = { "org.springframework.boot.couchbase.autoconfigure.CouchbaseAutoConfiguration",
41+
"org.springframework.boot.validation.autoconfigure.ValidationAutoConfiguration" })
4342
@ConditionalOnClass({ Bucket.class, CouchbaseRepository.class })
4443
@EnableConfigurationProperties(CouchbaseDataProperties.class)
4544
@Import({ CouchbaseDataConfiguration.class, CouchbaseClientFactoryConfiguration.class,

spring-boot-project/spring-boot-autoconfigure-all/src/main/resources/META-INF/additional-spring-configuration-metadata.json

-131
Original file line numberDiff line numberDiff line change
@@ -63,137 +63,6 @@
6363
"level": "error"
6464
}
6565
},
66-
{
67-
"name": "spring.couchbase.bootstrap-hosts",
68-
"type": "java.util.List<java.lang.String>",
69-
"description": "Couchbase nodes (host or IP address) to bootstrap from.",
70-
"deprecation": {
71-
"replacement": "spring.couchbase.connection-string",
72-
"level": "error"
73-
}
74-
},
75-
{
76-
"name": "spring.couchbase.bucket.name",
77-
"type": "java.lang.String",
78-
"description": "Name of the bucket to connect to.",
79-
"deprecation": {
80-
"reason": "A bucket is no longer auto-configured.",
81-
"level": "error"
82-
}
83-
},
84-
{
85-
"name": "spring.couchbase.bucket.password",
86-
"type": "java.lang.String",
87-
"description": "Password of the bucket.",
88-
"deprecation": {
89-
"reason": "A bucket is no longer auto-configured.",
90-
"level": "error"
91-
}
92-
},
93-
{
94-
"name": "spring.couchbase.env.bootstrap.http-direct-port",
95-
"type": "java.lang.Integer",
96-
"description": "Port for the HTTP bootstrap.",
97-
"deprecation": {
98-
"level": "error"
99-
}
100-
},
101-
{
102-
"name": "spring.couchbase.env.bootstrap.http-ssl-port",
103-
"type": "java.lang.Integer",
104-
"description": "Port for the HTTPS bootstrap.",
105-
"deprecation": {
106-
"level": "error"
107-
}
108-
},
109-
{
110-
"name": "spring.couchbase.env.endpoints.key-value",
111-
"type": "java.lang.Integer",
112-
"description": "Number of sockets per node against the key/value service.",
113-
"deprecation": {
114-
"level": "error"
115-
}
116-
},
117-
{
118-
"name": "spring.couchbase.env.endpoints.query",
119-
"type": "java.lang.Integer",
120-
"description": "Number of sockets per node against the query (N1QL) service.",
121-
"deprecation": {
122-
"level": "error"
123-
}
124-
},
125-
{
126-
"name": "spring.couchbase.env.endpoints.queryservice.max-endpoints",
127-
"type": "java.lang.Integer",
128-
"description": "Maximum number of sockets per node.",
129-
"deprecation": {
130-
"replacement": "spring.couchbase.env.io.max-endpoints",
131-
"level": "error"
132-
}
133-
},
134-
{
135-
"name": "spring.couchbase.env.endpoints.queryservice.min-endpoints",
136-
"type": "java.lang.Integer",
137-
"description": "Minimum number of sockets per node.",
138-
"deprecation": {
139-
"replacement": "spring.couchbase.env.io.min-endpoints",
140-
"level": "error"
141-
}
142-
},
143-
{
144-
"name": "spring.couchbase.env.endpoints.view",
145-
"type": "java.lang.Integer",
146-
"description": "Number of sockets per node against the view service.",
147-
"deprecation": {
148-
"level": "error"
149-
}
150-
},
151-
{
152-
"name": "spring.couchbase.env.endpoints.viewservice.max-endpoints",
153-
"type": "java.lang.Integer",
154-
"description": "Maximum number of sockets per node.",
155-
"deprecation": {
156-
"replacement": "spring.couchbase.env.io.max-endpoints",
157-
"level": "error"
158-
}
159-
},
160-
{
161-
"name": "spring.couchbase.env.endpoints.viewservice.min-endpoints",
162-
"type": "java.lang.Integer",
163-
"description": "Minimum number of sockets per node.",
164-
"deprecation": {
165-
"replacement": "spring.couchbase.env.io.min-endpoints",
166-
"level": "error"
167-
}
168-
},
169-
{
170-
"name": "spring.couchbase.env.ssl.key-store",
171-
"type": "java.lang.String",
172-
"description": "Path to the JVM key store that holds the certificates.",
173-
"deprecation": {
174-
"replacement": "spring.couchbase.env.ssl.bundle",
175-
"level": "error",
176-
"since": "3.1.0"
177-
}
178-
},
179-
{
180-
"name": "spring.couchbase.env.ssl.key-store-password",
181-
"type": "java.lang.String",
182-
"description": "Password used to access the key store.",
183-
"deprecation": {
184-
"replacement": "spring.couchbase.env.ssl.bundle",
185-
"level": "error",
186-
"since": "3.1.0"
187-
}
188-
},
189-
{
190-
"name": "spring.couchbase.env.timeouts.socket-connect",
191-
"type": "java.time.Duration",
192-
"description": "Socket connect connections timeout.",
193-
"deprecation": {
194-
"level": "error"
195-
}
196-
},
19766
{
19867
"name": "spring.dao.exceptiontranslation.enabled",
19968
"type": "java.lang.Boolean",

spring-boot-project/spring-boot-autoconfigure-all/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
org.springframework.boot.autoconfigure.aop.AopAutoConfiguration
22
org.springframework.boot.autoconfigure.cache.CacheAutoConfiguration
33
org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfiguration
4-
org.springframework.boot.autoconfigure.couchbase.CouchbaseAutoConfiguration
54
org.springframework.boot.autoconfigure.dao.PersistenceExceptionTranslationAutoConfiguration
65
org.springframework.boot.autoconfigure.data.cassandra.CassandraDataAutoConfiguration
76
org.springframework.boot.autoconfigure.data.cassandra.CassandraReactiveDataAutoConfiguration

spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseDataAutoConfigurationTests.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,10 @@
2121
import org.junit.jupiter.api.Test;
2222

2323
import org.springframework.boot.autoconfigure.AutoConfigurations;
24-
import org.springframework.boot.autoconfigure.couchbase.CouchbaseAutoConfiguration;
25-
import org.springframework.boot.autoconfigure.couchbase.CouchbaseProperties;
2624
import org.springframework.boot.autoconfigure.data.couchbase.city.City;
2725
import org.springframework.boot.autoconfigure.domain.EntityScan;
26+
import org.springframework.boot.couchbase.autoconfigure.CouchbaseAutoConfiguration;
27+
import org.springframework.boot.couchbase.autoconfigure.CouchbaseProperties;
2828
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
2929
import org.springframework.boot.validation.autoconfigure.ValidationAutoConfiguration;
3030
import org.springframework.context.annotation.Bean;

spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseReactiveAndImperativeRepositoriesAutoConfigurationTests.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2012-2023 the original author or authors.
2+
* Copyright 2012-2025 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -22,9 +22,9 @@
2222
import org.junit.jupiter.api.Test;
2323

2424
import org.springframework.boot.autoconfigure.TestAutoConfigurationPackage;
25-
import org.springframework.boot.autoconfigure.couchbase.CouchbaseAutoConfiguration;
2625
import org.springframework.boot.autoconfigure.data.couchbase.city.CityRepository;
2726
import org.springframework.boot.autoconfigure.data.couchbase.city.ReactiveCityRepository;
27+
import org.springframework.boot.couchbase.autoconfigure.CouchbaseAutoConfiguration;
2828
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
2929
import org.springframework.context.annotation.Configuration;
3030
import org.springframework.context.annotation.Import;

spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseReactiveDataAutoConfigurationTests.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,10 @@
2121
import org.junit.jupiter.api.Test;
2222

2323
import org.springframework.boot.autoconfigure.AutoConfigurations;
24-
import org.springframework.boot.autoconfigure.couchbase.CouchbaseAutoConfiguration;
25-
import org.springframework.boot.autoconfigure.couchbase.CouchbaseProperties;
2624
import org.springframework.boot.autoconfigure.data.couchbase.city.City;
2725
import org.springframework.boot.autoconfigure.domain.EntityScan;
26+
import org.springframework.boot.couchbase.autoconfigure.CouchbaseAutoConfiguration;
27+
import org.springframework.boot.couchbase.autoconfigure.CouchbaseProperties;
2828
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
2929
import org.springframework.boot.validation.autoconfigure.ValidationAutoConfiguration;
3030
import org.springframework.context.annotation.Bean;

spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseReactiveRepositoriesAutoConfigurationTests.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2012-2023 the original author or authors.
2+
* Copyright 2012-2025 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -20,12 +20,12 @@
2020

2121
import org.springframework.boot.autoconfigure.AutoConfigurations;
2222
import org.springframework.boot.autoconfigure.TestAutoConfigurationPackage;
23-
import org.springframework.boot.autoconfigure.couchbase.CouchbaseAutoConfiguration;
2423
import org.springframework.boot.autoconfigure.data.alt.couchbase.CityCouchbaseRepository;
2524
import org.springframework.boot.autoconfigure.data.alt.couchbase.ReactiveCityCouchbaseRepository;
2625
import org.springframework.boot.autoconfigure.data.couchbase.city.City;
2726
import org.springframework.boot.autoconfigure.data.couchbase.city.ReactiveCityRepository;
2827
import org.springframework.boot.autoconfigure.data.empty.EmptyDataPackage;
28+
import org.springframework.boot.couchbase.autoconfigure.CouchbaseAutoConfiguration;
2929
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
3030
import org.springframework.context.annotation.Configuration;
3131
import org.springframework.context.annotation.Import;

spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseRepositoriesAutoConfigurationTests.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2012-2023 the original author or authors.
2+
* Copyright 2012-2025 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -20,10 +20,10 @@
2020

2121
import org.springframework.boot.autoconfigure.AutoConfigurations;
2222
import org.springframework.boot.autoconfigure.TestAutoConfigurationPackage;
23-
import org.springframework.boot.autoconfigure.couchbase.CouchbaseAutoConfiguration;
2423
import org.springframework.boot.autoconfigure.data.couchbase.city.City;
2524
import org.springframework.boot.autoconfigure.data.couchbase.city.CityRepository;
2625
import org.springframework.boot.autoconfigure.data.empty.EmptyDataPackage;
26+
import org.springframework.boot.couchbase.autoconfigure.CouchbaseAutoConfiguration;
2727
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
2828
import org.springframework.context.annotation.Configuration;
2929
import org.springframework.context.annotation.Import;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
plugins {
2+
id "java-library"
3+
id "org.springframework.boot.auto-configuration"
4+
id "org.springframework.boot.configuration-properties"
5+
id "org.springframework.boot.deployed"
6+
id "org.springframework.boot.optional-dependencies"
7+
}
8+
9+
description = "Spring Boot Couchbase"
10+
11+
dependencies {
12+
api(project(":spring-boot-project:spring-boot"))
13+
api("com.couchbase.client:java-client")
14+
15+
optional(project(":spring-boot-project:spring-boot-autoconfigure"))
16+
optional(project(":spring-boot-project:spring-boot-jackson"))
17+
18+
testImplementation(project(":spring-boot-project:spring-boot-test"))
19+
testImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support"))
20+
21+
testRuntimeOnly("ch.qos.logback:logback-classic")
22+
}
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2012-2023 the original author or authors.
2+
* Copyright 2012-2025 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.springframework.boot.autoconfigure.couchbase;
17+
package org.springframework.boot.couchbase.autoconfigure;
1818

1919
import com.couchbase.client.java.env.ClusterEnvironment;
2020
import com.couchbase.client.java.env.ClusterEnvironment.Builder;
@@ -25,7 +25,7 @@
2525
* retaining default auto-configuration.
2626
*
2727
* @author Stephane Nicoll
28-
* @since 2.3.0
28+
* @since 4.0.0
2929
*/
3030
@FunctionalInterface
3131
public interface ClusterEnvironmentBuilderCustomizer {

0 commit comments

Comments
 (0)