Create spring-boot-data-elasticsearch module

See gh-46123
This commit is contained in:
Stéphane Nicoll 2025-03-28 09:29:10 +01:00 committed by Andy Wilkinson
parent 2d9ccff40a
commit 796aefa232
30 changed files with 136 additions and 117 deletions

View File

@ -69,6 +69,7 @@ include "spring-boot-project:spring-boot-batch"
include "spring-boot-project:spring-boot-cassandra" include "spring-boot-project:spring-boot-cassandra"
include "spring-boot-project:spring-boot-couchbase" include "spring-boot-project:spring-boot-couchbase"
include "spring-boot-project:spring-boot-data-cassandra" include "spring-boot-project:spring-boot-data-cassandra"
include "spring-boot-project:spring-boot-data-elasticsearch"
include "spring-boot-project:spring-boot-data-jpa" include "spring-boot-project:spring-boot-data-jpa"
include "spring-boot-project:spring-boot-data-ldap" include "spring-boot-project:spring-boot-data-ldap"
include "spring-boot-project:spring-boot-data-mongodb" include "spring-boot-project:spring-boot-data-mongodb"

View File

@ -38,9 +38,9 @@ dependencies {
optional(project(":spring-boot-project:spring-boot-artemis")) optional(project(":spring-boot-project:spring-boot-artemis"))
optional(project(":spring-boot-project:spring-boot-couchbase")) optional(project(":spring-boot-project:spring-boot-couchbase"))
optional(project(":spring-boot-project:spring-boot-data-cassandra")) optional(project(":spring-boot-project:spring-boot-data-cassandra"))
optional(project(":spring-boot-project:spring-boot-data-elasticsearch"))
optional(project(":spring-boot-project:spring-boot-data-jpa")) optional(project(":spring-boot-project:spring-boot-data-jpa"))
optional(project(":spring-boot-project:spring-boot-data-mongodb")) optional(project(":spring-boot-project:spring-boot-data-mongodb"))
optional(project(":spring-boot-project:spring-boot-elasticsearch"))
optional(project(":spring-boot-project:spring-boot-flyway")) optional(project(":spring-boot-project:spring-boot-flyway"))
optional(project(":spring-boot-project:spring-boot-hazelcast")) optional(project(":spring-boot-project:spring-boot-hazelcast"))
optional(project(":spring-boot-project:spring-boot-http")) optional(project(":spring-boot-project:spring-boot-http"))

View File

@ -23,7 +23,7 @@ import org.springframework.boot.actuate.autoconfigure.health.HealthContributorAu
import org.springframework.boot.actuate.data.elasticsearch.ElasticsearchReactiveHealthIndicator; import org.springframework.boot.actuate.data.elasticsearch.ElasticsearchReactiveHealthIndicator;
import org.springframework.boot.actuate.elasticsearch.ElasticsearchRestClientHealthIndicator; import org.springframework.boot.actuate.elasticsearch.ElasticsearchRestClientHealthIndicator;
import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.autoconfigure.AutoConfigurations;
import org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataAutoConfiguration; import org.springframework.boot.data.elasticsearch.autoconfigure.ElasticsearchDataAutoConfiguration;
import org.springframework.boot.elasticsearch.autoconfigure.ElasticsearchRestClientAutoConfiguration; import org.springframework.boot.elasticsearch.autoconfigure.ElasticsearchRestClientAutoConfiguration;
import org.springframework.boot.elasticsearch.autoconfigure.ReactiveElasticsearchClientAutoConfiguration; import org.springframework.boot.elasticsearch.autoconfigure.ReactiveElasticsearchClientAutoConfiguration;
import org.springframework.boot.test.context.runner.ApplicationContextRunner; import org.springframework.boot.test.context.runner.ApplicationContextRunner;

View File

@ -24,7 +24,6 @@ import org.springframework.boot.actuate.autoconfigure.tracing.OpenTelemetryTraci
import org.springframework.boot.actuate.health.HealthEndpointWebExtension; import org.springframework.boot.actuate.health.HealthEndpointWebExtension;
import org.springframework.boot.actuate.health.ReactiveHealthEndpointWebExtension; import org.springframework.boot.actuate.health.ReactiveHealthEndpointWebExtension;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataAutoConfiguration;
import org.springframework.boot.autoconfigure.data.neo4j.Neo4jDataAutoConfiguration; import org.springframework.boot.autoconfigure.data.neo4j.Neo4jDataAutoConfiguration;
import org.springframework.boot.autoconfigure.data.neo4j.Neo4jRepositoriesAutoConfiguration; import org.springframework.boot.autoconfigure.data.neo4j.Neo4jRepositoriesAutoConfiguration;
import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration; import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration;
@ -33,6 +32,7 @@ import org.springframework.boot.autoconfigure.data.rest.RepositoryRestMvcAutoCon
import org.springframework.boot.cassandra.autoconfigure.CassandraAutoConfiguration; import org.springframework.boot.cassandra.autoconfigure.CassandraAutoConfiguration;
import org.springframework.boot.context.annotation.UserConfigurations; import org.springframework.boot.context.annotation.UserConfigurations;
import org.springframework.boot.data.cassandra.autoconfigure.CassandraDataAutoConfiguration; import org.springframework.boot.data.cassandra.autoconfigure.CassandraDataAutoConfiguration;
import org.springframework.boot.data.elasticsearch.autoconfigure.ElasticsearchDataAutoConfiguration;
import org.springframework.boot.data.mongodb.autoconfigure.MongoDataAutoConfiguration; import org.springframework.boot.data.mongodb.autoconfigure.MongoDataAutoConfiguration;
import org.springframework.boot.data.mongodb.autoconfigure.MongoReactiveDataAutoConfiguration; import org.springframework.boot.data.mongodb.autoconfigure.MongoReactiveDataAutoConfiguration;
import org.springframework.boot.flyway.autoconfigure.FlywayAutoConfiguration; import org.springframework.boot.flyway.autoconfigure.FlywayAutoConfiguration;

View File

@ -51,7 +51,6 @@ dependencies {
dockerTestImplementation("org.mockito:mockito-core") dockerTestImplementation("org.mockito:mockito-core")
dockerTestImplementation("org.springframework:spring-test") dockerTestImplementation("org.springframework:spring-test")
dockerTestImplementation("org.testcontainers:couchbase") dockerTestImplementation("org.testcontainers:couchbase")
dockerTestImplementation("org.testcontainers:elasticsearch")
dockerTestImplementation("org.testcontainers:junit-jupiter") dockerTestImplementation("org.testcontainers:junit-jupiter")
dockerTestImplementation("org.testcontainers:mongodb") dockerTestImplementation("org.testcontainers:mongodb")
dockerTestImplementation("org.testcontainers:neo4j") dockerTestImplementation("org.testcontainers:neo4j")
@ -62,7 +61,6 @@ dependencies {
optional(project(":spring-boot-project:spring-boot-couchbase")) optional(project(":spring-boot-project:spring-boot-couchbase"))
optional(project(":spring-boot-project:spring-boot-data-jpa")) optional(project(":spring-boot-project:spring-boot-data-jpa"))
optional(project(":spring-boot-project:spring-boot-data-mongodb")) optional(project(":spring-boot-project:spring-boot-data-mongodb"))
optional(project(":spring-boot-project:spring-boot-elasticsearch"))
optional(project(":spring-boot-project:spring-boot-flyway")) optional(project(":spring-boot-project:spring-boot-flyway"))
optional(project(":spring-boot-project:spring-boot-h2console")) optional(project(":spring-boot-project:spring-boot-h2console"))
optional(project(":spring-boot-project:spring-boot-hazelcast")) optional(project(":spring-boot-project:spring-boot-hazelcast"))
@ -80,7 +78,6 @@ dependencies {
optional(project(":spring-boot-project:spring-boot-tx")) optional(project(":spring-boot-project:spring-boot-tx"))
optional(project(":spring-boot-project:spring-boot-validation")) optional(project(":spring-boot-project:spring-boot-validation"))
optional(project(":spring-boot-project:spring-boot-webmvc")) optional(project(":spring-boot-project:spring-boot-webmvc"))
optional("co.elastic.clients:elasticsearch-java")
optional("com.fasterxml.jackson.core:jackson-databind") optional("com.fasterxml.jackson.core:jackson-databind")
optional("com.fasterxml.jackson.dataformat:jackson-dataformat-cbor") optional("com.fasterxml.jackson.dataformat:jackson-dataformat-cbor")
optional("com.fasterxml.jackson.dataformat:jackson-dataformat-xml") optional("com.fasterxml.jackson.dataformat:jackson-dataformat-xml")
@ -132,8 +129,6 @@ dependencies {
classifier = 'jakarta' classifier = 'jakarta'
} }
} }
optional("org.elasticsearch.client:elasticsearch-rest-client")
optional("org.elasticsearch.client:elasticsearch-rest-client-sniffer")
optional("org.glassfish.jersey.containers:jersey-container-servlet-core") optional("org.glassfish.jersey.containers:jersey-container-servlet-core")
optional("org.glassfish.jersey.containers:jersey-container-servlet") optional("org.glassfish.jersey.containers:jersey-container-servlet")
optional("org.glassfish.jersey.core:jersey-server") optional("org.glassfish.jersey.core:jersey-server")
@ -176,9 +171,6 @@ dependencies {
exclude group: "org.jboss.spec.javax.transaction", module: "jboss-transaction-api_1.2_spec" exclude group: "org.jboss.spec.javax.transaction", module: "jboss-transaction-api_1.2_spec"
} }
optional("org.springframework.data:spring-data-rest-webmvc") optional("org.springframework.data:spring-data-rest-webmvc")
optional("org.springframework.data:spring-data-elasticsearch") {
exclude group: "org.elasticsearch.client", module: "transport"
}
optional("org.springframework.data:spring-data-jdbc") optional("org.springframework.data:spring-data-jdbc")
optional("org.springframework.data:spring-data-mongodb") optional("org.springframework.data:spring-data-mongodb")
optional("org.springframework.data:spring-data-neo4j") optional("org.springframework.data:spring-data-neo4j")

View File

@ -32,36 +32,6 @@
"description": "Type of Couchbase repositories to enable.", "description": "Type of Couchbase repositories to enable.",
"defaultValue": "auto" "defaultValue": "auto"
}, },
{
"name": "spring.data.elasticsearch.cluster-name",
"type": "java.lang.String",
"description": "Elasticsearch cluster name.",
"deprecation": {
"level": "error"
}
},
{
"name": "spring.data.elasticsearch.cluster-nodes",
"type": "java.lang.String",
"description": "Comma-separated list of cluster node addresses.",
"deprecation": {
"level": "error"
}
},
{
"name": "spring.data.elasticsearch.properties",
"type": "java.util.Map<java.lang.String,java.lang.String>",
"description": "Additional properties used to configure the client.",
"deprecation": {
"level": "error"
}
},
{
"name": "spring.data.elasticsearch.repositories.enabled",
"type": "java.lang.Boolean",
"description": "Whether to enable Elasticsearch repositories.",
"defaultValue": true
},
{ {
"name": "spring.data.jdbc.repositories.enabled", "name": "spring.data.jdbc.repositories.enabled",
"type": "java.lang.Boolean", "type": "java.lang.Boolean",

View File

@ -5,9 +5,6 @@ org.springframework.boot.autoconfigure.data.couchbase.CouchbaseDataAutoConfigura
org.springframework.boot.autoconfigure.data.couchbase.CouchbaseReactiveDataAutoConfiguration org.springframework.boot.autoconfigure.data.couchbase.CouchbaseReactiveDataAutoConfiguration
org.springframework.boot.autoconfigure.data.couchbase.CouchbaseReactiveRepositoriesAutoConfiguration org.springframework.boot.autoconfigure.data.couchbase.CouchbaseReactiveRepositoriesAutoConfiguration
org.springframework.boot.autoconfigure.data.couchbase.CouchbaseRepositoriesAutoConfiguration 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
org.springframework.boot.autoconfigure.data.jdbc.JdbcRepositoriesAutoConfiguration org.springframework.boot.autoconfigure.data.jdbc.JdbcRepositoriesAutoConfiguration
org.springframework.boot.autoconfigure.data.neo4j.Neo4jDataAutoConfiguration org.springframework.boot.autoconfigure.data.neo4j.Neo4jDataAutoConfiguration
org.springframework.boot.autoconfigure.data.neo4j.Neo4jReactiveDataAutoConfiguration org.springframework.boot.autoconfigure.data.neo4j.Neo4jReactiveDataAutoConfiguration

View File

@ -1,24 +0,0 @@
/*
* Copyright 2012-present 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.elasticsearch;
import org.springframework.boot.autoconfigure.data.elasticsearch.city.City;
import org.springframework.data.elasticsearch.repository.ReactiveElasticsearchRepository;
public interface CityReactiveElasticsearchDbRepository extends ReactiveElasticsearchRepository<City, Long> {
}

View File

@ -0,0 +1,49 @@
/*
* Copyright 2012-present 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.
*/
plugins {
id "java-library"
id "org.springframework.boot.auto-configuration"
id "org.springframework.boot.configuration-properties"
id "org.springframework.boot.deployed"
id "org.springframework.boot.docker-test"
id "org.springframework.boot.optional-dependencies"
}
description = "Spring Boot Data Elasticsearch"
dependencies {
api(project(":spring-boot-project:spring-boot-elasticsearch"))
api("org.springframework.data:spring-data-elasticsearch")
optional(project(":spring-boot-project:spring-boot-autoconfigure"))
optional("io.projectreactor:reactor-core")
dockerTestImplementation(project(":spring-boot-project:spring-boot-test"))
dockerTestImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support-docker"))
dockerTestImplementation(testFixtures(project(":spring-boot-project:spring-boot-autoconfigure")))
dockerTestImplementation("ch.qos.logback:logback-classic")
dockerTestImplementation("org.junit.jupiter:junit-jupiter")
dockerTestImplementation("org.testcontainers:elasticsearch")
dockerTestImplementation("org.testcontainers:junit-jupiter")
testImplementation(project(":spring-boot-project:spring-boot-test"))
testImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support"))
testImplementation(testFixtures(project(":spring-boot-project:spring-boot-autoconfigure")))
testRuntimeOnly("ch.qos.logback:logback-classic")
}

View File

@ -14,7 +14,7 @@
* limitations under the License. * limitations under the License.
*/ */
package org.springframework.boot.autoconfigure.data.elasticsearch; package org.springframework.boot.data.elasticsearch.autoconfigure;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.testcontainers.elasticsearch.ElasticsearchContainer; import org.testcontainers.elasticsearch.ElasticsearchContainer;
@ -23,10 +23,9 @@ import org.testcontainers.junit.jupiter.Testcontainers;
import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.autoconfigure.AutoConfigurations;
import org.springframework.boot.autoconfigure.TestAutoConfigurationPackage; import org.springframework.boot.autoconfigure.TestAutoConfigurationPackage;
import org.springframework.boot.autoconfigure.data.alt.elasticsearch.CityElasticsearchDbRepository; import org.springframework.boot.data.elasticsearch.domain.city.City;
import org.springframework.boot.autoconfigure.data.elasticsearch.city.City; import org.springframework.boot.data.elasticsearch.domain.city.CityRepository;
import org.springframework.boot.autoconfigure.data.elasticsearch.city.CityRepository; import org.springframework.boot.data.elasticsearch.domain.empty.EmptyDataPackage;
import org.springframework.boot.autoconfigure.data.empty.EmptyDataPackage;
import org.springframework.boot.elasticsearch.autoconfigure.ElasticsearchClientAutoConfiguration; import org.springframework.boot.elasticsearch.autoconfigure.ElasticsearchClientAutoConfiguration;
import org.springframework.boot.elasticsearch.autoconfigure.ElasticsearchRestClientAutoConfiguration; import org.springframework.boot.elasticsearch.autoconfigure.ElasticsearchRestClientAutoConfiguration;
import org.springframework.boot.test.context.runner.ApplicationContextRunner; import org.springframework.boot.test.context.runner.ApplicationContextRunner;
@ -74,7 +73,7 @@ class ElasticsearchRepositoriesAutoConfigurationTests {
@Test @Test
void doesNotTriggerDefaultRepositoryDetectionIfCustomized() { void doesNotTriggerDefaultRepositoryDetectionIfCustomized() {
this.contextRunner.withUserConfiguration(CustomizedConfiguration.class) this.contextRunner.withUserConfiguration(CustomizedConfiguration.class)
.run((context) -> assertThat(context).hasSingleBean(CityElasticsearchDbRepository.class)); .run((context) -> assertThat(context).hasSingleBean(CityRepository.class));
} }
@Test @Test
@ -96,14 +95,14 @@ class ElasticsearchRepositoriesAutoConfigurationTests {
} }
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@TestAutoConfigurationPackage(ElasticsearchRepositoriesAutoConfigurationTests.class) @TestAutoConfigurationPackage(City.class)
@EnableElasticsearchRepositories(basePackageClasses = CityElasticsearchDbRepository.class) @EnableElasticsearchRepositories(basePackageClasses = CityRepository.class)
static class CustomizedConfiguration { static class CustomizedConfiguration {
} }
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@TestAutoConfigurationPackage(ElasticsearchRepositoriesAutoConfigurationTests.class) @TestAutoConfigurationPackage(City.class)
@EnableElasticsearchRepositories @EnableElasticsearchRepositories
@EnableElasticsearchAuditing @EnableElasticsearchAuditing
static class AuditingConfiguration { static class AuditingConfiguration {

View File

@ -14,7 +14,7 @@
* limitations under the License. * limitations under the License.
*/ */
package org.springframework.boot.autoconfigure.data.elasticsearch; package org.springframework.boot.data.elasticsearch.autoconfigure;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.testcontainers.elasticsearch.ElasticsearchContainer; import org.testcontainers.elasticsearch.ElasticsearchContainer;
@ -24,10 +24,9 @@ import reactor.core.publisher.Mono;
import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.autoconfigure.AutoConfigurations;
import org.springframework.boot.autoconfigure.TestAutoConfigurationPackage; import org.springframework.boot.autoconfigure.TestAutoConfigurationPackage;
import org.springframework.boot.autoconfigure.data.alt.elasticsearch.CityReactiveElasticsearchDbRepository; import org.springframework.boot.data.elasticsearch.domain.city.City;
import org.springframework.boot.autoconfigure.data.elasticsearch.city.City; import org.springframework.boot.data.elasticsearch.domain.city.ReactiveCityRepository;
import org.springframework.boot.autoconfigure.data.elasticsearch.city.ReactiveCityRepository; import org.springframework.boot.data.elasticsearch.domain.empty.EmptyDataPackage;
import org.springframework.boot.autoconfigure.data.empty.EmptyDataPackage;
import org.springframework.boot.elasticsearch.autoconfigure.ElasticsearchClientAutoConfiguration; import org.springframework.boot.elasticsearch.autoconfigure.ElasticsearchClientAutoConfiguration;
import org.springframework.boot.elasticsearch.autoconfigure.ElasticsearchRestClientAutoConfiguration; import org.springframework.boot.elasticsearch.autoconfigure.ElasticsearchRestClientAutoConfiguration;
import org.springframework.boot.elasticsearch.autoconfigure.ReactiveElasticsearchClientAutoConfiguration; import org.springframework.boot.elasticsearch.autoconfigure.ReactiveElasticsearchClientAutoConfiguration;
@ -88,7 +87,7 @@ class ReactiveElasticsearchRepositoriesAutoConfigurationTests {
@Test @Test
void doesNotTriggerDefaultRepositoryDetectionIfCustomized() { void doesNotTriggerDefaultRepositoryDetectionIfCustomized() {
this.contextRunner.withUserConfiguration(CustomizedConfiguration.class) this.contextRunner.withUserConfiguration(CustomizedConfiguration.class)
.run((context) -> assertThat(context).hasSingleBean(CityReactiveElasticsearchDbRepository.class)); .run((context) -> assertThat(context).hasSingleBean(ReactiveCityRepository.class));
} }
@Test @Test
@ -110,14 +109,14 @@ class ReactiveElasticsearchRepositoriesAutoConfigurationTests {
} }
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@TestAutoConfigurationPackage(ReactiveElasticsearchRepositoriesAutoConfigurationTests.class) @TestAutoConfigurationPackage(City.class)
@EnableReactiveElasticsearchRepositories(basePackageClasses = CityReactiveElasticsearchDbRepository.class) @EnableReactiveElasticsearchRepositories(basePackageClasses = ReactiveCityRepository.class)
static class CustomizedConfiguration { static class CustomizedConfiguration {
} }
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@TestAutoConfigurationPackage(ElasticsearchRepositoriesAutoConfigurationTests.class) @TestAutoConfigurationPackage(City.class)
@EnableReactiveElasticsearchRepositories @EnableReactiveElasticsearchRepositories
@EnableElasticsearchAuditing @EnableElasticsearchAuditing
static class AuditingConfiguration { static class AuditingConfiguration {

View File

@ -14,11 +14,8 @@
* limitations under the License. * limitations under the License.
*/ */
package org.springframework.boot.autoconfigure.data.alt.elasticsearch; package org.springframework.boot.data.elasticsearch.domain.empty;
import org.springframework.boot.autoconfigure.data.elasticsearch.city.City; public class EmptyDataPackage {
import org.springframework.data.repository.Repository;
public interface CityElasticsearchDbRepository extends Repository<City, Long> {
} }

View File

@ -14,11 +14,13 @@
* limitations under the License. * limitations under the License.
*/ */
package org.springframework.boot.autoconfigure.data.elasticsearch; package org.springframework.boot.data.elasticsearch.autoconfigure;
import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.elasticsearch.autoconfigure.ElasticsearchClientAutoConfiguration;
import org.springframework.boot.elasticsearch.autoconfigure.ReactiveElasticsearchClientAutoConfiguration;
import org.springframework.context.annotation.Import; import org.springframework.context.annotation.Import;
import org.springframework.data.elasticsearch.client.elc.ElasticsearchTemplate; import org.springframework.data.elasticsearch.client.elc.ElasticsearchTemplate;
import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories; import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
@ -31,13 +33,12 @@ import org.springframework.data.elasticsearch.repository.config.EnableReactiveEl
* @author Brian Clozel * @author Brian Clozel
* @author Artur Konczak * @author Artur Konczak
* @author Mohsin Husen * @author Mohsin Husen
* @since 1.1.0 * @since 4.0.0
* @see EnableElasticsearchRepositories * @see EnableElasticsearchRepositories
* @see EnableReactiveElasticsearchRepositories * @see EnableReactiveElasticsearchRepositories
*/ */
@AutoConfiguration( @AutoConfiguration(
afterName = { "org.springframework.boot.elasticsearch.autoconfigure.ElasticsearchClientAutoConfiguration", after = { ElasticsearchClientAutoConfiguration.class, ReactiveElasticsearchClientAutoConfiguration.class })
"org.springframework.boot.elasticsearch.autoconfigure.ReactiveElasticsearchClientAutoConfiguration" })
@ConditionalOnClass({ ElasticsearchTemplate.class }) @ConditionalOnClass({ ElasticsearchTemplate.class })
@Import({ ElasticsearchDataConfiguration.BaseConfiguration.class, @Import({ ElasticsearchDataConfiguration.BaseConfiguration.class,
ElasticsearchDataConfiguration.JavaClientConfiguration.class, ElasticsearchDataConfiguration.JavaClientConfiguration.class,

View File

@ -14,7 +14,7 @@
* limitations under the License. * limitations under the License.
*/ */
package org.springframework.boot.autoconfigure.data.elasticsearch; package org.springframework.boot.data.elasticsearch.autoconfigure;
import java.util.Collections; import java.util.Collections;

View File

@ -14,7 +14,7 @@
* limitations under the License. * limitations under the License.
*/ */
package org.springframework.boot.autoconfigure.data.elasticsearch; package org.springframework.boot.data.elasticsearch.autoconfigure;
import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
@ -32,7 +32,7 @@ import org.springframework.data.elasticsearch.repository.support.ElasticsearchRe
* *
* @author Artur Konczak * @author Artur Konczak
* @author Mohsin Husen * @author Mohsin Husen
* @since 1.1.0 * @since 4.0.0
* @see EnableElasticsearchRepositories * @see EnableElasticsearchRepositories
*/ */
@AutoConfiguration @AutoConfiguration

View File

@ -14,7 +14,7 @@
* limitations under the License. * limitations under the License.
*/ */
package org.springframework.boot.autoconfigure.data.elasticsearch; package org.springframework.boot.data.elasticsearch.autoconfigure;
import java.lang.annotation.Annotation; import java.lang.annotation.Annotation;

View File

@ -14,7 +14,7 @@
* limitations under the License. * limitations under the License.
*/ */
package org.springframework.boot.autoconfigure.data.elasticsearch; package org.springframework.boot.data.elasticsearch.autoconfigure;
import reactor.core.publisher.Mono; import reactor.core.publisher.Mono;
@ -34,7 +34,7 @@ import org.springframework.data.elasticsearch.repository.support.ReactiveElastic
* Reactive Repositories. * Reactive Repositories.
* *
* @author Brian Clozel * @author Brian Clozel
* @since 2.2.0 * @since 4.0.0
* @see EnableReactiveElasticsearchRepositories * @see EnableReactiveElasticsearchRepositories
*/ */
@AutoConfiguration @AutoConfiguration

View File

@ -14,7 +14,7 @@
* limitations under the License. * limitations under the License.
*/ */
package org.springframework.boot.autoconfigure.data.elasticsearch; package org.springframework.boot.data.elasticsearch.autoconfigure;
import java.lang.annotation.Annotation; import java.lang.annotation.Annotation;

View File

@ -17,4 +17,4 @@
/** /**
* Auto-configuration for Spring Data Elasticsearch. * Auto-configuration for Spring Data Elasticsearch.
*/ */
package org.springframework.boot.autoconfigure.data.elasticsearch; package org.springframework.boot.data.elasticsearch.autoconfigure;

View File

@ -0,0 +1,35 @@
{
"groups": [],
"properties": [
{
"name": "spring.data.elasticsearch.cluster-name",
"type": "java.lang.String",
"description": "Elasticsearch cluster name.",
"deprecation": {
"level": "error"
}
},
{
"name": "spring.data.elasticsearch.cluster-nodes",
"type": "java.lang.String",
"description": "Comma-separated list of cluster node addresses.",
"deprecation": {
"level": "error"
}
},
{
"name": "spring.data.elasticsearch.properties",
"type": "java.util.Map<java.lang.String,java.lang.String>",
"description": "Additional properties used to configure the client.",
"deprecation": {
"level": "error"
}
},
{
"name": "spring.data.elasticsearch.repositories.enabled",
"type": "java.lang.Boolean",
"description": "Whether to enable Elasticsearch repositories.",
"defaultValue": true
}
]
}

View File

@ -0,0 +1,3 @@
org.springframework.boot.data.elasticsearch.autoconfigure.ElasticsearchDataAutoConfiguration
org.springframework.boot.data.elasticsearch.autoconfigure.ElasticsearchRepositoriesAutoConfiguration
org.springframework.boot.data.elasticsearch.autoconfigure.ReactiveElasticsearchRepositoriesAutoConfiguration

View File

@ -14,7 +14,7 @@
* limitations under the License. * limitations under the License.
*/ */
package org.springframework.boot.autoconfigure.data.elasticsearch; package org.springframework.boot.data.elasticsearch.autoconfigure;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Collections; import java.util.Collections;
@ -24,7 +24,7 @@ import org.junit.jupiter.api.Test;
import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.autoconfigure.AutoConfigurations;
import org.springframework.boot.autoconfigure.TestAutoConfigurationPackage; import org.springframework.boot.autoconfigure.TestAutoConfigurationPackage;
import org.springframework.boot.autoconfigure.data.elasticsearch.city.City; import org.springframework.boot.data.elasticsearch.domain.city.City;
import org.springframework.boot.elasticsearch.autoconfigure.ElasticsearchClientAutoConfiguration; import org.springframework.boot.elasticsearch.autoconfigure.ElasticsearchClientAutoConfiguration;
import org.springframework.boot.elasticsearch.autoconfigure.ElasticsearchRestClientAutoConfiguration; import org.springframework.boot.elasticsearch.autoconfigure.ElasticsearchRestClientAutoConfiguration;
import org.springframework.boot.elasticsearch.autoconfigure.ReactiveElasticsearchClientAutoConfiguration; import org.springframework.boot.elasticsearch.autoconfigure.ReactiveElasticsearchClientAutoConfiguration;

View File

@ -14,7 +14,7 @@
* limitations under the License. * limitations under the License.
*/ */
package org.springframework.boot.autoconfigure.data.elasticsearch.city; package org.springframework.boot.data.elasticsearch.domain.city;
import java.io.Serializable; import java.io.Serializable;

View File

@ -14,7 +14,7 @@
* limitations under the License. * limitations under the License.
*/ */
package org.springframework.boot.autoconfigure.data.elasticsearch.city; package org.springframework.boot.data.elasticsearch.domain.city;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;

View File

@ -14,7 +14,7 @@
* limitations under the License. * limitations under the License.
*/ */
package org.springframework.boot.autoconfigure.data.elasticsearch.city; package org.springframework.boot.data.elasticsearch.domain.city;
import org.springframework.data.repository.reactive.ReactiveCrudRepository; import org.springframework.data.repository.reactive.ReactiveCrudRepository;

View File

@ -1997,6 +1997,7 @@ bom {
"spring-boot-configuration-processor", "spring-boot-configuration-processor",
"spring-boot-couchbase", "spring-boot-couchbase",
"spring-boot-data-cassandra", "spring-boot-data-cassandra",
"spring-boot-data-elasticsearch",
"spring-boot-data-jpa", "spring-boot-data-jpa",
"spring-boot-data-ldap", "spring-boot-data-ldap",
"spring-boot-data-mongodb", "spring-boot-data-mongodb",

View File

@ -85,6 +85,7 @@ dependencies {
autoConfiguration(project(path: ":spring-boot-project:spring-boot-cassandra", configuration: "autoConfigurationMetadata")) autoConfiguration(project(path: ":spring-boot-project:spring-boot-cassandra", configuration: "autoConfigurationMetadata"))
autoConfiguration(project(path: ":spring-boot-project:spring-boot-couchbase", configuration: "autoConfigurationMetadata")) autoConfiguration(project(path: ":spring-boot-project:spring-boot-couchbase", configuration: "autoConfigurationMetadata"))
autoConfiguration(project(path: ":spring-boot-project:spring-boot-data-cassandra", configuration: "autoConfigurationMetadata")) autoConfiguration(project(path: ":spring-boot-project:spring-boot-data-cassandra", configuration: "autoConfigurationMetadata"))
autoConfiguration(project(path: ":spring-boot-project:spring-boot-data-elasticsearch", configuration: "autoConfigurationMetadata"))
autoConfiguration(project(path: ":spring-boot-project:spring-boot-data-jpa", configuration: "autoConfigurationMetadata")) autoConfiguration(project(path: ":spring-boot-project:spring-boot-data-jpa", configuration: "autoConfigurationMetadata"))
autoConfiguration(project(path: ":spring-boot-project:spring-boot-data-ldap", configuration: "autoConfigurationMetadata")) autoConfiguration(project(path: ":spring-boot-project:spring-boot-data-ldap", configuration: "autoConfigurationMetadata"))
autoConfiguration(project(path: ":spring-boot-project:spring-boot-data-mongodb", configuration: "autoConfigurationMetadata")) autoConfiguration(project(path: ":spring-boot-project:spring-boot-data-mongodb", configuration: "autoConfigurationMetadata"))
@ -139,6 +140,7 @@ dependencies {
configurationProperties(project(path: ":spring-boot-project:spring-boot-cassandra", configuration: "configurationPropertiesMetadata")) configurationProperties(project(path: ":spring-boot-project:spring-boot-cassandra", configuration: "configurationPropertiesMetadata"))
configurationProperties(project(path: ":spring-boot-project:spring-boot-couchbase", configuration: "configurationPropertiesMetadata")) configurationProperties(project(path: ":spring-boot-project:spring-boot-couchbase", configuration: "configurationPropertiesMetadata"))
configurationProperties(project(path: ":spring-boot-project:spring-boot-data-cassandra", configuration: "configurationPropertiesMetadata")) configurationProperties(project(path: ":spring-boot-project:spring-boot-data-cassandra", configuration: "configurationPropertiesMetadata"))
configurationProperties(project(path: ":spring-boot-project:spring-boot-data-elasticsearch", configuration: "configurationPropertiesMetadata"))
configurationProperties(project(path: ":spring-boot-project:spring-boot-data-jpa", configuration: "configurationPropertiesMetadata")) configurationProperties(project(path: ":spring-boot-project:spring-boot-data-jpa", configuration: "configurationPropertiesMetadata"))
configurationProperties(project(path: ":spring-boot-project:spring-boot-data-ldap", configuration: "configurationPropertiesMetadata")) configurationProperties(project(path: ":spring-boot-project:spring-boot-data-ldap", configuration: "configurationPropertiesMetadata"))
configurationProperties(project(path: ":spring-boot-project:spring-boot-devtools", configuration: "configurationPropertiesMetadata")) configurationProperties(project(path: ":spring-boot-project:spring-boot-devtools", configuration: "configurationPropertiesMetadata"))
@ -188,6 +190,7 @@ dependencies {
implementation(project(path: ":spring-boot-project:spring-boot-amqp")) implementation(project(path: ":spring-boot-project:spring-boot-amqp"))
implementation(project(path: ":spring-boot-project:spring-boot-autoconfigure-all")) implementation(project(path: ":spring-boot-project:spring-boot-autoconfigure-all"))
implementation(project(path: ":spring-boot-project:spring-boot-data-cassandra")) implementation(project(path: ":spring-boot-project:spring-boot-data-cassandra"))
implementation(project(path: ":spring-boot-project:spring-boot-data-elasticsearch"))
implementation(project(path: ":spring-boot-project:spring-boot-devtools")) implementation(project(path: ":spring-boot-project:spring-boot-devtools"))
implementation(project(path: ":spring-boot-project:spring-boot-docker-compose")) implementation(project(path: ":spring-boot-project:spring-boot-docker-compose"))
implementation(project(path: ":spring-boot-project:spring-boot-http")) implementation(project(path: ":spring-boot-project:spring-boot-http"))
@ -260,7 +263,6 @@ dependencies {
implementation("org.springframework.amqp:spring-rabbit") implementation("org.springframework.amqp:spring-rabbit")
implementation("org.springframework.batch:spring-batch-core") implementation("org.springframework.batch:spring-batch-core")
implementation("org.springframework.data:spring-data-couchbase") implementation("org.springframework.data:spring-data-couchbase")
implementation("org.springframework.data:spring-data-elasticsearch")
implementation("org.springframework.data:spring-data-envers") { implementation("org.springframework.data:spring-data-envers") {
exclude group: "javax.activation", module: "javax.activation-api" exclude group: "javax.activation", module: "javax.activation-api"
exclude group: "javax.persistence", module: "javax.persistence-api" exclude group: "javax.persistence", module: "javax.persistence-api"

View File

@ -22,10 +22,8 @@ description = "Starter for using Elasticsearch search and analytics engine and S
dependencies { dependencies {
api(project(":spring-boot-project:spring-boot-starters:spring-boot-starter")) api(project(":spring-boot-project:spring-boot-starters:spring-boot-starter"))
api(project(":spring-boot-project:spring-boot-elasticsearch")) api(project(":spring-boot-project:spring-boot-data-elasticsearch"))
api(project(":spring-boot-project:spring-boot-tx")) api(project(":spring-boot-project:spring-boot-tx"))
api("org.elasticsearch.client:elasticsearch-rest-client")
api("org.springframework.data:spring-data-elasticsearch")
runtimeOnly(project(":spring-boot-project:spring-boot-starters:spring-boot-starter-json")) runtimeOnly(project(":spring-boot-project:spring-boot-starters:spring-boot-starter-json"))
} }

View File

@ -55,10 +55,10 @@ dependencies {
optional(project(":spring-boot-project:spring-boot-couchbase")) optional(project(":spring-boot-project:spring-boot-couchbase"))
optional(project(":spring-boot-project:spring-boot-data-cassandra")) optional(project(":spring-boot-project:spring-boot-data-cassandra"))
optional(project(":spring-boot-project:spring-boot-data-elasticsearch"))
optional(project(":spring-boot-project:spring-boot-data-jpa")) optional(project(":spring-boot-project:spring-boot-data-jpa"))
optional(project(":spring-boot-project:spring-boot-data-ldap")) optional(project(":spring-boot-project:spring-boot-data-ldap"))
optional(project(":spring-boot-project:spring-boot-data-mongodb")) optional(project(":spring-boot-project:spring-boot-data-mongodb"))
optional(project(":spring-boot-project:spring-boot-elasticsearch"))
optional(project(":spring-boot-project:spring-boot-flyway")) optional(project(":spring-boot-project:spring-boot-flyway"))
optional(project(":spring-boot-project:spring-boot-groovy-templates")) optional(project(":spring-boot-project:spring-boot-groovy-templates"))
optional(project(":spring-boot-project:spring-boot-hateoas")) optional(project(":spring-boot-project:spring-boot-hateoas"))
@ -97,7 +97,6 @@ dependencies {
optional("org.springframework:spring-web") optional("org.springframework:spring-web")
optional("org.springframework:spring-webflux") optional("org.springframework:spring-webflux")
optional("org.springframework.data:spring-data-couchbase") optional("org.springframework.data:spring-data-couchbase")
optional("org.springframework.data:spring-data-elasticsearch")
optional("org.springframework.data:spring-data-jdbc") optional("org.springframework.data:spring-data-jdbc")
optional("org.springframework.data:spring-data-jpa") optional("org.springframework.data:spring-data-jpa")
optional("org.springframework.data:spring-data-ldap") optional("org.springframework.data:spring-data-ldap")

View File

@ -1,7 +1,7 @@
# AutoConfigureDataElasticsearch auto-configuration imports # AutoConfigureDataElasticsearch auto-configuration imports
org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchRepositoriesAutoConfiguration org.springframework.boot.data.elasticsearch.autoconfigure.ElasticsearchRepositoriesAutoConfiguration
org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataAutoConfiguration org.springframework.boot.data.elasticsearch.autoconfigure.ElasticsearchDataAutoConfiguration
org.springframework.boot.autoconfigure.data.elasticsearch.ReactiveElasticsearchRepositoriesAutoConfiguration org.springframework.boot.data.elasticsearch.autoconfigure.ReactiveElasticsearchRepositoriesAutoConfiguration
org.springframework.boot.elasticsearch.autoconfigure.ElasticsearchClientAutoConfiguration org.springframework.boot.elasticsearch.autoconfigure.ElasticsearchClientAutoConfiguration
org.springframework.boot.elasticsearch.autoconfigure.ElasticsearchRestClientAutoConfiguration org.springframework.boot.elasticsearch.autoconfigure.ElasticsearchRestClientAutoConfiguration
org.springframework.boot.elasticsearch.autoconfigure.ReactiveElasticsearchClientAutoConfiguration org.springframework.boot.elasticsearch.autoconfigure.ReactiveElasticsearchClientAutoConfiguration