Upgrade to Spring Data Evans

The missing bean condition on the auto-configuration classes for
Elasticsearch, Jpa, Mongo and Solr repositories have been tightened to
look for ElasticsearchRepositoryFactoryBean, JapRepositoryFactoryBean,
MonoRepositoryFactoryBean, and SolrRepositoryFactoryBean respectively.

In Spring Data Evans, when there are multiple repository types on the
classpath, a strict mode is entered to prevent the different
repositories from trampling over each other. A side-effect of this is
that for the Mongo domain types in the tests to be discovered they
must be explicitly annotated with @Document.

Closes gh-1338
This commit is contained in:
Andy Wilkinson 2014-08-18 14:57:32 +01:00
parent dde7ebf30f
commit fbeb8c966c
7 changed files with 15 additions and 13 deletions

View File

@ -25,7 +25,7 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
import org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport;
import org.springframework.data.elasticsearch.repository.support.ElasticsearchRepositoryFactoryBean;
/**
* {@link EnableAutoConfiguration Auto-configuration} for Spring Data's Elasticsearch
@ -39,7 +39,7 @@ import org.springframework.data.repository.core.support.RepositoryFactoryBeanSup
@Configuration
@ConditionalOnClass({ Client.class, ElasticsearchRepository.class })
@ConditionalOnProperty(prefix = "spring.data.elasticsearch.repositories", name = "enabled", havingValue = "true", matchIfMissing = true)
@ConditionalOnMissingBean(RepositoryFactoryBeanSupport.class)
@ConditionalOnMissingBean(ElasticsearchRepositoryFactoryBean.class)
@Import(ElasticsearchRepositoriesAutoConfigureRegistrar.class)
public class ElasticsearchRepositoriesAutoConfiguration {

View File

@ -31,7 +31,7 @@ import org.springframework.context.annotation.Import;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.data.jpa.repository.config.JpaRepositoryConfigExtension;
import org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport;
import org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean;
import org.springframework.data.web.PageableHandlerMethodArgumentResolver;
import org.springframework.data.web.config.EnableSpringDataWebSupport;
@ -57,7 +57,7 @@ import org.springframework.data.web.config.EnableSpringDataWebSupport;
@Configuration
@ConditionalOnBean(DataSource.class)
@ConditionalOnClass(JpaRepository.class)
@ConditionalOnMissingBean({ RepositoryFactoryBeanSupport.class,
@ConditionalOnMissingBean({ JpaRepositoryFactoryBean.class,
JpaRepositoryConfigExtension.class })
@ConditionalOnProperty(prefix = "spring.data.jpa.repositories", name = "enabled", havingValue = "true", matchIfMissing = true)
@Import(JpaRepositoriesAutoConfigureRegistrar.class)

View File

@ -27,7 +27,7 @@ import org.springframework.context.annotation.Import;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.data.mongodb.repository.config.EnableMongoRepositories;
import org.springframework.data.mongodb.repository.config.MongoRepositoryConfigurationExtension;
import org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport;
import org.springframework.data.mongodb.repository.support.MongoRepositoryFactoryBean;
import com.mongodb.Mongo;
@ -54,7 +54,7 @@ import com.mongodb.Mongo;
*/
@Configuration
@ConditionalOnClass({ Mongo.class, MongoRepository.class })
@ConditionalOnMissingBean({ RepositoryFactoryBeanSupport.class,
@ConditionalOnMissingBean({ MongoRepositoryFactoryBean.class,
MongoRepositoryConfigurationExtension.class })
@ConditionalOnProperty(prefix = "spring.data.mongo.repositories", name = "enabled", havingValue = "true", matchIfMissing = true)
@Import(MongoRepositoriesAutoConfigureRegistrar.class)

View File

@ -22,9 +22,9 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport;
import org.springframework.data.solr.repository.SolrRepository;
import org.springframework.data.solr.repository.config.SolrRepositoryConfigExtension;
import org.springframework.data.solr.repository.support.SolrRepositoryFactoryBean;
/**
* Enables auto configuration for Spring Data Solr repositories.
@ -45,7 +45,7 @@ import org.springframework.data.solr.repository.config.SolrRepositoryConfigExten
*/
@Configuration
@ConditionalOnClass({ SolrServer.class, SolrRepository.class })
@ConditionalOnMissingBean({ RepositoryFactoryBeanSupport.class,
@ConditionalOnMissingBean({ SolrRepositoryFactoryBean.class,
SolrRepositoryConfigExtension.class })
@ConditionalOnProperty(prefix = "spring.data.solr.repositories", name = "enabled", havingValue = "true", matchIfMissing = true)
@Import(SolrRepositoriesAutoConfigureRegistrar.class)

View File

@ -19,11 +19,12 @@ package org.springframework.boot.autoconfigure.data.mongo.city;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
import org.springframework.data.mongodb.core.mapping.Document;
@Document
public class City implements Serializable {
private static final long serialVersionUID = 1L;

View File

@ -19,11 +19,12 @@ package org.springframework.boot.autoconfigure.data.mongo.country;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
import org.springframework.data.mongodb.core.mapping.Document;
@Document
public class Country implements Serializable {
private static final long serialVersionUID = 1L;

View File

@ -107,7 +107,7 @@
<spring-amqp.version>1.4.0.M1</spring-amqp.version>
<spring-cloud.version>1.1.0.RELEASE</spring-cloud.version>
<spring-batch.version>3.0.1.RELEASE</spring-batch.version>
<spring-data-releasetrain.version>Dijkstra-SR4</spring-data-releasetrain.version>
<spring-data-releasetrain.version>Evans-RELEASE</spring-data-releasetrain.version>
<spring-hateoas.version>0.16.0.RELEASE</spring-hateoas.version>
<spring-integration.version>4.1.0.M1</spring-integration.version>
<spring-loaded.version>1.2.0.RELEASE</spring-loaded.version>