Rationalize Spring Data auto-configurations
Relocate several auto-configuration classes to `...autoconfigure.data` to make it clearer that they are Spring Data specific. Also moved `EntityManagerFactoryBuilder` to `spring-boot` since it is generally useful and doesn't need to be directly tied to the auto-configuration module. Fixes gh-4002
This commit is contained in:
		
							parent
							
								
									e9349ee53f
								
							
						
					
					
						commit
						c629813165
					
				| 
						 | 
					@ -50,7 +50,9 @@ import org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 | 
					import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
 | 
					import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 | 
					import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchAutoConfiguration;
 | 
					import org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchAutoConfiguration;
 | 
				
			||||||
 | 
					import org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration;
 | 
				
			||||||
 | 
					import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
 | 
					import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.jdbc.metadata.DataSourcePoolMetadata;
 | 
					import org.springframework.boot.autoconfigure.jdbc.metadata.DataSourcePoolMetadata;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.jdbc.metadata.DataSourcePoolMetadataProvider;
 | 
					import org.springframework.boot.autoconfigure.jdbc.metadata.DataSourcePoolMetadataProvider;
 | 
				
			||||||
| 
						 | 
					@ -58,8 +60,6 @@ import org.springframework.boot.autoconfigure.jdbc.metadata.DataSourcePoolMetada
 | 
				
			||||||
import org.springframework.boot.autoconfigure.jms.JmsAutoConfiguration;
 | 
					import org.springframework.boot.autoconfigure.jms.JmsAutoConfiguration;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.mail.MailSenderAutoConfiguration;
 | 
					import org.springframework.boot.autoconfigure.mail.MailSenderAutoConfiguration;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration;
 | 
					import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.mongo.MongoDataAutoConfiguration;
 | 
					 | 
				
			||||||
import org.springframework.boot.autoconfigure.redis.RedisAutoConfiguration;
 | 
					 | 
				
			||||||
import org.springframework.boot.autoconfigure.solr.SolrAutoConfiguration;
 | 
					import org.springframework.boot.autoconfigure.solr.SolrAutoConfiguration;
 | 
				
			||||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
 | 
					import org.springframework.boot.context.properties.EnableConfigurationProperties;
 | 
				
			||||||
import org.springframework.context.annotation.Bean;
 | 
					import org.springframework.context.annotation.Bean;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -36,7 +36,9 @@ import org.springframework.boot.actuate.health.RedisHealthIndicator;
 | 
				
			||||||
import org.springframework.boot.actuate.health.SolrHealthIndicator;
 | 
					import org.springframework.boot.actuate.health.SolrHealthIndicator;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.PropertyPlaceholderAutoConfiguration;
 | 
					import org.springframework.boot.autoconfigure.PropertyPlaceholderAutoConfiguration;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration;
 | 
					import org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchAutoConfiguration;
 | 
					import org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchAutoConfiguration;
 | 
				
			||||||
 | 
					import org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration;
 | 
				
			||||||
 | 
					import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
 | 
					import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
 | 
					import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.jdbc.EmbeddedDataSourceConfiguration;
 | 
					import org.springframework.boot.autoconfigure.jdbc.EmbeddedDataSourceConfiguration;
 | 
				
			||||||
| 
						 | 
					@ -44,8 +46,6 @@ import org.springframework.boot.autoconfigure.jdbc.metadata.DataSourcePoolMetada
 | 
				
			||||||
import org.springframework.boot.autoconfigure.jms.activemq.ActiveMQAutoConfiguration;
 | 
					import org.springframework.boot.autoconfigure.jms.activemq.ActiveMQAutoConfiguration;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.mail.MailSenderAutoConfiguration;
 | 
					import org.springframework.boot.autoconfigure.mail.MailSenderAutoConfiguration;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration;
 | 
					import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.mongo.MongoDataAutoConfiguration;
 | 
					 | 
				
			||||||
import org.springframework.boot.autoconfigure.redis.RedisAutoConfiguration;
 | 
					 | 
				
			||||||
import org.springframework.boot.autoconfigure.solr.SolrAutoConfiguration;
 | 
					import org.springframework.boot.autoconfigure.solr.SolrAutoConfiguration;
 | 
				
			||||||
import org.springframework.boot.context.properties.ConfigurationProperties;
 | 
					import org.springframework.boot.context.properties.ConfigurationProperties;
 | 
				
			||||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
 | 
					import org.springframework.boot.context.properties.EnableConfigurationProperties;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -19,8 +19,8 @@ package org.springframework.boot.actuate.autoconfigure;
 | 
				
			||||||
import org.junit.After;
 | 
					import org.junit.After;
 | 
				
			||||||
import org.junit.Test;
 | 
					import org.junit.Test;
 | 
				
			||||||
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.elasticsearch.ElasticsearchRepositoriesAutoConfiguration;
 | 
					import org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchRepositoriesAutoConfiguration;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchDataAutoConfiguration;
 | 
					 | 
				
			||||||
import org.springframework.boot.builder.SpringApplicationBuilder;
 | 
					import org.springframework.boot.builder.SpringApplicationBuilder;
 | 
				
			||||||
import org.springframework.boot.test.ApplicationContextTestUtils;
 | 
					import org.springframework.boot.test.ApplicationContextTestUtils;
 | 
				
			||||||
import org.springframework.context.ConfigurableApplicationContext;
 | 
					import org.springframework.context.ConfigurableApplicationContext;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,5 @@
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * Copyright 2012-2014 the original author or authors.
 | 
					 * Copyright 2012-2015 the original author or authors.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * Licensed under the Apache License, Version 2.0 (the "License");
 | 
					 * Licensed under the Apache License, Version 2.0 (the "License");
 | 
				
			||||||
 * you may not use this file except in compliance with the License.
 | 
					 * you may not use this file except in compliance with the License.
 | 
				
			||||||
| 
						 | 
					@ -21,8 +21,8 @@ import org.junit.Test;
 | 
				
			||||||
import org.springframework.boot.actuate.autoconfigure.EndpointAutoConfiguration;
 | 
					import org.springframework.boot.actuate.autoconfigure.EndpointAutoConfiguration;
 | 
				
			||||||
import org.springframework.boot.actuate.autoconfigure.HealthIndicatorAutoConfiguration;
 | 
					import org.springframework.boot.actuate.autoconfigure.HealthIndicatorAutoConfiguration;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.PropertyPlaceholderAutoConfiguration;
 | 
					import org.springframework.boot.autoconfigure.PropertyPlaceholderAutoConfiguration;
 | 
				
			||||||
 | 
					import org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration;
 | 
					import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.mongo.MongoDataAutoConfiguration;
 | 
					 | 
				
			||||||
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
 | 
					import org.springframework.context.annotation.AnnotationConfigApplicationContext;
 | 
				
			||||||
import org.springframework.data.mongodb.core.MongoTemplate;
 | 
					import org.springframework.data.mongodb.core.MongoTemplate;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,5 @@
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * Copyright 2012-2014 the original author or authors.
 | 
					 * Copyright 2012-2015 the original author or authors.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * Licensed under the Apache License, Version 2.0 (the "License");
 | 
					 * Licensed under the Apache License, Version 2.0 (the "License");
 | 
				
			||||||
 * you may not use this file except in compliance with the License.
 | 
					 * you may not use this file except in compliance with the License.
 | 
				
			||||||
| 
						 | 
					@ -23,7 +23,7 @@ import org.junit.Test;
 | 
				
			||||||
import org.springframework.boot.actuate.autoconfigure.EndpointAutoConfiguration;
 | 
					import org.springframework.boot.actuate.autoconfigure.EndpointAutoConfiguration;
 | 
				
			||||||
import org.springframework.boot.actuate.autoconfigure.HealthIndicatorAutoConfiguration;
 | 
					import org.springframework.boot.actuate.autoconfigure.HealthIndicatorAutoConfiguration;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.PropertyPlaceholderAutoConfiguration;
 | 
					import org.springframework.boot.autoconfigure.PropertyPlaceholderAutoConfiguration;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.redis.RedisAutoConfiguration;
 | 
					import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration;
 | 
				
			||||||
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
 | 
					import org.springframework.context.annotation.AnnotationConfigApplicationContext;
 | 
				
			||||||
import org.springframework.data.redis.RedisConnectionFailureException;
 | 
					import org.springframework.data.redis.RedisConnectionFailureException;
 | 
				
			||||||
import org.springframework.data.redis.connection.RedisConnection;
 | 
					import org.springframework.data.redis.connection.RedisConnection;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -29,7 +29,7 @@ import org.springframework.boot.autoconfigure.cache.CacheAutoConfiguration.Cache
 | 
				
			||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 | 
					import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
 | 
					import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 | 
					import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.redis.RedisAutoConfiguration;
 | 
					import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration;
 | 
				
			||||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
 | 
					import org.springframework.boot.context.properties.EnableConfigurationProperties;
 | 
				
			||||||
import org.springframework.cache.CacheManager;
 | 
					import org.springframework.cache.CacheManager;
 | 
				
			||||||
import org.springframework.cache.annotation.EnableCaching;
 | 
					import org.springframework.cache.annotation.EnableCaching;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -22,7 +22,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 | 
					import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 | 
					import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 | 
					import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.redis.RedisAutoConfiguration;
 | 
					import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration;
 | 
				
			||||||
import org.springframework.cache.CacheManager;
 | 
					import org.springframework.cache.CacheManager;
 | 
				
			||||||
import org.springframework.context.annotation.Bean;
 | 
					import org.springframework.context.annotation.Bean;
 | 
				
			||||||
import org.springframework.context.annotation.Conditional;
 | 
					import org.springframework.context.annotation.Conditional;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -14,7 +14,7 @@
 | 
				
			||||||
 * limitations under the License.
 | 
					 * limitations under the License.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
package org.springframework.boot.autoconfigure.elasticsearch;
 | 
					package org.springframework.boot.autoconfigure.data.elasticsearch;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.Collections;
 | 
					import java.util.Collections;
 | 
				
			||||||
import java.util.LinkedHashMap;
 | 
					import java.util.LinkedHashMap;
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,5 @@
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * Copyright 2012-2014 the original author or authors.
 | 
					 * Copyright 2012-2015 the original author or authors.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * Licensed under the Apache License, Version 2.0 (the "License");
 | 
					 * Licensed under the Apache License, Version 2.0 (the "License");
 | 
				
			||||||
 * you may not use this file except in compliance with the License.
 | 
					 * you may not use this file except in compliance with the License.
 | 
				
			||||||
| 
						 | 
					@ -14,7 +14,7 @@
 | 
				
			||||||
 * limitations under the License.
 | 
					 * limitations under the License.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
package org.springframework.boot.autoconfigure.elasticsearch;
 | 
					package org.springframework.boot.autoconfigure.data.elasticsearch;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import org.elasticsearch.client.Client;
 | 
					import org.elasticsearch.client.Client;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 | 
					import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 | 
				
			||||||
| 
						 | 
					@ -14,7 +14,7 @@
 | 
				
			||||||
 * limitations under the License.
 | 
					 * limitations under the License.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
package org.springframework.boot.autoconfigure.elasticsearch;
 | 
					package org.springframework.boot.autoconfigure.data.elasticsearch;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.HashMap;
 | 
					import java.util.HashMap;
 | 
				
			||||||
import java.util.Map;
 | 
					import java.util.Map;
 | 
				
			||||||
| 
						 | 
					@ -14,7 +14,7 @@
 | 
				
			||||||
 * limitations under the License.
 | 
					 * limitations under the License.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
package org.springframework.boot.autoconfigure.mongo.embedded;
 | 
					package org.springframework.boot.autoconfigure.data.mongo;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import org.springframework.beans.factory.config.BeanDefinition;
 | 
					import org.springframework.beans.factory.config.BeanDefinition;
 | 
				
			||||||
import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
 | 
					import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
 | 
				
			||||||
| 
						 | 
					@ -14,7 +14,7 @@
 | 
				
			||||||
 * limitations under the License.
 | 
					 * limitations under the License.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
package org.springframework.boot.autoconfigure.mongo;
 | 
					package org.springframework.boot.autoconfigure.data.mongo;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.net.UnknownHostException;
 | 
					import java.net.UnknownHostException;
 | 
				
			||||||
import java.util.Collection;
 | 
					import java.util.Collection;
 | 
				
			||||||
| 
						 | 
					@ -33,6 +33,8 @@ import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 | 
				
			||||||
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.autoconfigure.condition.ConditionalOnMissingBean;
 | 
					import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 | 
				
			||||||
 | 
					import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration;
 | 
				
			||||||
 | 
					import org.springframework.boot.autoconfigure.mongo.MongoProperties;
 | 
				
			||||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
 | 
					import org.springframework.boot.context.properties.EnableConfigurationProperties;
 | 
				
			||||||
import org.springframework.context.annotation.Bean;
 | 
					import org.springframework.context.annotation.Bean;
 | 
				
			||||||
import org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider;
 | 
					import org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider;
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,5 @@
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * Copyright 2012-2014 the original author or authors.
 | 
					 * Copyright 2012-2015 the original author or authors.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * Licensed under the Apache License, Version 2.0 (the "License");
 | 
					 * Licensed under the Apache License, Version 2.0 (the "License");
 | 
				
			||||||
 * you may not use this file except in compliance with the License.
 | 
					 * you may not use this file except in compliance with the License.
 | 
				
			||||||
| 
						 | 
					@ -21,7 +21,6 @@ import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
 | 
					import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 | 
					import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 | 
					import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.mongo.MongoDataAutoConfiguration;
 | 
					 | 
				
			||||||
import org.springframework.context.annotation.Configuration;
 | 
					import org.springframework.context.annotation.Configuration;
 | 
				
			||||||
import org.springframework.context.annotation.Import;
 | 
					import org.springframework.context.annotation.Import;
 | 
				
			||||||
import org.springframework.data.mongodb.repository.MongoRepository;
 | 
					import org.springframework.data.mongodb.repository.MongoRepository;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -14,7 +14,7 @@
 | 
				
			||||||
 * limitations under the License.
 | 
					 * limitations under the License.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
package org.springframework.boot.autoconfigure.redis;
 | 
					package org.springframework.boot.autoconfigure.data.redis;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.net.UnknownHostException;
 | 
					import java.net.UnknownHostException;
 | 
				
			||||||
import java.util.ArrayList;
 | 
					import java.util.ArrayList;
 | 
				
			||||||
| 
						 | 
					@ -26,7 +26,7 @@ import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
 | 
					import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 | 
					import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingClass;
 | 
					import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingClass;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.redis.RedisProperties.Sentinel;
 | 
					import org.springframework.boot.autoconfigure.data.redis.RedisProperties.Sentinel;
 | 
				
			||||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
 | 
					import org.springframework.boot.context.properties.EnableConfigurationProperties;
 | 
				
			||||||
import org.springframework.context.annotation.Bean;
 | 
					import org.springframework.context.annotation.Bean;
 | 
				
			||||||
import org.springframework.context.annotation.Configuration;
 | 
					import org.springframework.context.annotation.Configuration;
 | 
				
			||||||
| 
						 | 
					@ -14,7 +14,7 @@
 | 
				
			||||||
 * limitations under the License.
 | 
					 * limitations under the License.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
package org.springframework.boot.autoconfigure.redis;
 | 
					package org.springframework.boot.autoconfigure.data.redis;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import org.springframework.boot.context.properties.ConfigurationProperties;
 | 
					import org.springframework.boot.context.properties.ConfigurationProperties;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -15,7 +15,7 @@
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Auto-configuration for Elasticsearch.
 | 
					 * Auto-configuration for Spring Data Redis.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
package org.springframework.boot.autoconfigure.elasticsearch;
 | 
					package org.springframework.boot.autoconfigure.data.redis;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -29,6 +29,7 @@ import org.springframework.boot.autoconfigure.AutoConfigureBefore;
 | 
				
			||||||
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.autoconfigure.condition.ConditionalOnMissingBean;
 | 
					import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 | 
				
			||||||
 | 
					import org.springframework.boot.autoconfigure.data.mongo.MongoClientDependsOnBeanFactoryPostProcessor;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration;
 | 
					import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.mongo.MongoProperties;
 | 
					import org.springframework.boot.autoconfigure.mongo.MongoProperties;
 | 
				
			||||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
 | 
					import org.springframework.boot.context.properties.EnableConfigurationProperties;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -16,17 +16,13 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
package org.springframework.boot.autoconfigure.orm.jpa;
 | 
					package org.springframework.boot.autoconfigure.orm.jpa;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.HashMap;
 | 
					 | 
				
			||||||
import java.util.HashSet;
 | 
					 | 
				
			||||||
import java.util.Map;
 | 
					import java.util.Map;
 | 
				
			||||||
import java.util.Set;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
import javax.sql.DataSource;
 | 
					import javax.sql.DataSource;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import org.springframework.orm.jpa.JpaVendorAdapter;
 | 
					import org.springframework.orm.jpa.JpaVendorAdapter;
 | 
				
			||||||
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
 | 
					import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
 | 
				
			||||||
import org.springframework.orm.jpa.persistenceunit.PersistenceUnitManager;
 | 
					import org.springframework.orm.jpa.persistenceunit.PersistenceUnitManager;
 | 
				
			||||||
import org.springframework.util.ClassUtils;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Convenient builder for JPA EntityManagerFactory instances. Collects common
 | 
					 * Convenient builder for JPA EntityManagerFactory instances. Collects common
 | 
				
			||||||
| 
						 | 
					@ -38,16 +34,13 @@ import org.springframework.util.ClassUtils;
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * @author Dave Syer
 | 
					 * @author Dave Syer
 | 
				
			||||||
 * @since 1.1.0
 | 
					 * @since 1.1.0
 | 
				
			||||||
 | 
					 * @deprecated since 1.3.0 in favor of
 | 
				
			||||||
 | 
					 * {@link org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder}
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					@Deprecated
 | 
				
			||||||
public class EntityManagerFactoryBuilder {
 | 
					public class EntityManagerFactoryBuilder {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	private JpaVendorAdapter jpaVendorAdapter;
 | 
						private final Delegate delegate;
 | 
				
			||||||
 | 
					 | 
				
			||||||
	private PersistenceUnitManager persistenceUnitManager;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	private JpaProperties properties;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	private EntityManagerFactoryBeanCallback callback;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * Create a new instance passing in the common pieces that will be shared if multiple
 | 
						 * Create a new instance passing in the common pieces that will be shared if multiple
 | 
				
			||||||
| 
						 | 
					@ -60,40 +53,43 @@ public class EntityManagerFactoryBuilder {
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	public EntityManagerFactoryBuilder(JpaVendorAdapter jpaVendorAdapter,
 | 
						public EntityManagerFactoryBuilder(JpaVendorAdapter jpaVendorAdapter,
 | 
				
			||||||
			JpaProperties properties, PersistenceUnitManager persistenceUnitManager) {
 | 
								JpaProperties properties, PersistenceUnitManager persistenceUnitManager) {
 | 
				
			||||||
		this.jpaVendorAdapter = jpaVendorAdapter;
 | 
							this.delegate = new Delegate(jpaVendorAdapter, properties.getProperties(),
 | 
				
			||||||
		this.persistenceUnitManager = persistenceUnitManager;
 | 
									persistenceUnitManager);
 | 
				
			||||||
		this.properties = properties;
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public Builder dataSource(DataSource dataSource) {
 | 
						public Builder dataSource(DataSource dataSource) {
 | 
				
			||||||
		return new Builder(dataSource);
 | 
							return new Builder(this.delegate.dataSource(dataSource));
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * An optional callback for new entity manager factory beans.
 | 
						 * An optional callback for new entity manager factory beans.
 | 
				
			||||||
	 * @param callback the entity manager factory bean callback
 | 
						 * @param callback the entity manager factory bean callback
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	public void setCallback(EntityManagerFactoryBeanCallback callback) {
 | 
						public void setCallback(final EntityManagerFactoryBeanCallback callback) {
 | 
				
			||||||
		this.callback = callback;
 | 
							this.delegate
 | 
				
			||||||
 | 
									.setCallback(new org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder.EntityManagerFactoryBeanCallback() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										@Override
 | 
				
			||||||
 | 
										public void execute(LocalContainerEntityManagerFactoryBean factory) {
 | 
				
			||||||
 | 
											callback.execute(factory);
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									});
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * A fluent builder for a LocalContainerEntityManagerFactoryBean.
 | 
						 * A fluent builder for a LocalContainerEntityManagerFactoryBean.
 | 
				
			||||||
 | 
						 * @deprecated since 1.3.0 in favor of
 | 
				
			||||||
 | 
						 * {@link org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder}
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
 | 
						@Deprecated
 | 
				
			||||||
	public final class Builder {
 | 
						public final class Builder {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		private DataSource dataSource;
 | 
							private final org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder.Builder delegate;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		private String[] packagesToScan;
 | 
							private Builder(
 | 
				
			||||||
 | 
									org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder.Builder delegate) {
 | 
				
			||||||
		private String persistenceUnit;
 | 
								this.delegate = delegate;
 | 
				
			||||||
 | 
					 | 
				
			||||||
		private Map<String, Object> properties = new HashMap<String, Object>();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		private boolean jta;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		private Builder(DataSource dataSource) {
 | 
					 | 
				
			||||||
			this.dataSource = dataSource;
 | 
					 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		/**
 | 
							/**
 | 
				
			||||||
| 
						 | 
					@ -102,7 +98,7 @@ public class EntityManagerFactoryBuilder {
 | 
				
			||||||
		 * @return the builder for fluent usage
 | 
							 * @return the builder for fluent usage
 | 
				
			||||||
		 */
 | 
							 */
 | 
				
			||||||
		public Builder packages(String... packagesToScan) {
 | 
							public Builder packages(String... packagesToScan) {
 | 
				
			||||||
			this.packagesToScan = packagesToScan;
 | 
								this.delegate.packages(packagesToScan);
 | 
				
			||||||
			return this;
 | 
								return this;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -112,11 +108,7 @@ public class EntityManagerFactoryBuilder {
 | 
				
			||||||
		 * @return the builder for fluent usage
 | 
							 * @return the builder for fluent usage
 | 
				
			||||||
		 */
 | 
							 */
 | 
				
			||||||
		public Builder packages(Class<?>... basePackageClasses) {
 | 
							public Builder packages(Class<?>... basePackageClasses) {
 | 
				
			||||||
			Set<String> packages = new HashSet<String>();
 | 
								this.delegate.packages(basePackageClasses);
 | 
				
			||||||
			for (Class<?> type : basePackageClasses) {
 | 
					 | 
				
			||||||
				packages.add(ClassUtils.getPackageName(type));
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			this.packagesToScan = packages.toArray(new String[0]);
 | 
					 | 
				
			||||||
			return this;
 | 
								return this;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -128,7 +120,7 @@ public class EntityManagerFactoryBuilder {
 | 
				
			||||||
		 * @return the builder for fluent usage
 | 
							 * @return the builder for fluent usage
 | 
				
			||||||
		 */
 | 
							 */
 | 
				
			||||||
		public Builder persistenceUnit(String persistenceUnit) {
 | 
							public Builder persistenceUnit(String persistenceUnit) {
 | 
				
			||||||
			this.persistenceUnit = persistenceUnit;
 | 
								this.delegate.persistenceUnit(persistenceUnit);
 | 
				
			||||||
			return this;
 | 
								return this;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -140,7 +132,7 @@ public class EntityManagerFactoryBuilder {
 | 
				
			||||||
		 * @return the builder for fluent usage
 | 
							 * @return the builder for fluent usage
 | 
				
			||||||
		 */
 | 
							 */
 | 
				
			||||||
		public Builder properties(Map<String, ?> properties) {
 | 
							public Builder properties(Map<String, ?> properties) {
 | 
				
			||||||
			this.properties.putAll(properties);
 | 
								this.delegate.properties(properties);
 | 
				
			||||||
			return this;
 | 
								return this;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -155,49 +147,36 @@ public class EntityManagerFactoryBuilder {
 | 
				
			||||||
		 * @return the builder for fluent usage
 | 
							 * @return the builder for fluent usage
 | 
				
			||||||
		 */
 | 
							 */
 | 
				
			||||||
		public Builder jta(boolean jta) {
 | 
							public Builder jta(boolean jta) {
 | 
				
			||||||
			this.jta = jta;
 | 
								this.delegate.jta(jta);
 | 
				
			||||||
			return this;
 | 
								return this;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		public LocalContainerEntityManagerFactoryBean build() {
 | 
							public LocalContainerEntityManagerFactoryBean build() {
 | 
				
			||||||
			LocalContainerEntityManagerFactoryBean entityManagerFactoryBean = new LocalContainerEntityManagerFactoryBean();
 | 
								return this.delegate.build();
 | 
				
			||||||
			if (EntityManagerFactoryBuilder.this.persistenceUnitManager != null) {
 | 
					 | 
				
			||||||
				entityManagerFactoryBean
 | 
					 | 
				
			||||||
						.setPersistenceUnitManager(EntityManagerFactoryBuilder.this.persistenceUnitManager);
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			if (this.persistenceUnit != null) {
 | 
					 | 
				
			||||||
				entityManagerFactoryBean.setPersistenceUnitName(this.persistenceUnit);
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			entityManagerFactoryBean
 | 
					 | 
				
			||||||
					.setJpaVendorAdapter(EntityManagerFactoryBuilder.this.jpaVendorAdapter);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			if (this.jta) {
 | 
					 | 
				
			||||||
				entityManagerFactoryBean.setJtaDataSource(this.dataSource);
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			else {
 | 
					 | 
				
			||||||
				entityManagerFactoryBean.setDataSource(this.dataSource);
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			entityManagerFactoryBean.setPackagesToScan(this.packagesToScan);
 | 
					 | 
				
			||||||
			entityManagerFactoryBean.getJpaPropertyMap().putAll(
 | 
					 | 
				
			||||||
					EntityManagerFactoryBuilder.this.properties.getProperties());
 | 
					 | 
				
			||||||
			entityManagerFactoryBean.getJpaPropertyMap().putAll(this.properties);
 | 
					 | 
				
			||||||
			if (EntityManagerFactoryBuilder.this.callback != null) {
 | 
					 | 
				
			||||||
				EntityManagerFactoryBuilder.this.callback
 | 
					 | 
				
			||||||
						.execute(entityManagerFactoryBean);
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			return entityManagerFactoryBean;
 | 
					 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * A callback for new entity manager factory beans created by a Builder.
 | 
						 * A callback for new entity manager factory beans created by a Builder.
 | 
				
			||||||
 | 
						 * @deprecated since 1.3.0 in favor of
 | 
				
			||||||
 | 
						 * {@link org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder}
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
 | 
						@Deprecated
 | 
				
			||||||
	public interface EntityManagerFactoryBeanCallback {
 | 
						public interface EntityManagerFactoryBeanCallback {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		void execute(LocalContainerEntityManagerFactoryBean factory);
 | 
							void execute(LocalContainerEntityManagerFactoryBean factory);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						private static class Delegate extends
 | 
				
			||||||
 | 
								org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							Delegate(JpaVendorAdapter jpaVendorAdapter, Map<String, ?> jpaProperties,
 | 
				
			||||||
 | 
									PersistenceUnitManager persistenceUnitManager) {
 | 
				
			||||||
 | 
								super(jpaVendorAdapter, jpaProperties, persistenceUnitManager);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -34,6 +34,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean
 | 
				
			||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 | 
					import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
 | 
					import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
 | 
				
			||||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
 | 
					import org.springframework.boot.context.properties.EnableConfigurationProperties;
 | 
				
			||||||
 | 
					import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder;
 | 
				
			||||||
import org.springframework.context.annotation.Bean;
 | 
					import org.springframework.context.annotation.Bean;
 | 
				
			||||||
import org.springframework.context.annotation.Configuration;
 | 
					import org.springframework.context.annotation.Configuration;
 | 
				
			||||||
import org.springframework.context.annotation.Import;
 | 
					import org.springframework.context.annotation.Import;
 | 
				
			||||||
| 
						 | 
					@ -99,7 +100,8 @@ public abstract class JpaBaseConfiguration implements BeanFactoryAware {
 | 
				
			||||||
	public EntityManagerFactoryBuilder entityManagerFactoryBuilder(
 | 
						public EntityManagerFactoryBuilder entityManagerFactoryBuilder(
 | 
				
			||||||
			JpaVendorAdapter jpaVendorAdapter) {
 | 
								JpaVendorAdapter jpaVendorAdapter) {
 | 
				
			||||||
		EntityManagerFactoryBuilder builder = new EntityManagerFactoryBuilder(
 | 
							EntityManagerFactoryBuilder builder = new EntityManagerFactoryBuilder(
 | 
				
			||||||
				jpaVendorAdapter, this.jpaProperties, this.persistenceUnitManager);
 | 
									jpaVendorAdapter, this.jpaProperties.getProperties(),
 | 
				
			||||||
 | 
									this.persistenceUnitManager);
 | 
				
			||||||
		builder.setCallback(getVendorCallback());
 | 
							builder.setCallback(getVendorCallback());
 | 
				
			||||||
		return builder;
 | 
							return builder;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,21 +0,0 @@
 | 
				
			||||||
/*
 | 
					 | 
				
			||||||
 * Copyright 2012-2015 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
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 *      http://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 Redis.
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
package org.springframework.boot.autoconfigure.redis;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
| 
						 | 
					@ -25,7 +25,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 | 
					import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
 | 
					import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.condition.SearchStrategy;
 | 
					import org.springframework.boot.autoconfigure.condition.SearchStrategy;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.redis.RedisAutoConfiguration;
 | 
					import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.web.ServerProperties;
 | 
					import org.springframework.boot.autoconfigure.web.ServerProperties;
 | 
				
			||||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
 | 
					import org.springframework.boot.context.properties.EnableConfigurationProperties;
 | 
				
			||||||
import org.springframework.context.annotation.Bean;
 | 
					import org.springframework.context.annotation.Bean;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -14,10 +14,14 @@ org.springframework.boot.autoconfigure.cache.CacheAutoConfiguration,\
 | 
				
			||||||
org.springframework.boot.autoconfigure.cloud.CloudAutoConfiguration,\
 | 
					org.springframework.boot.autoconfigure.cloud.CloudAutoConfiguration,\
 | 
				
			||||||
org.springframework.boot.autoconfigure.context.ConfigurationPropertiesAutoConfiguration,\
 | 
					org.springframework.boot.autoconfigure.context.ConfigurationPropertiesAutoConfiguration,\
 | 
				
			||||||
org.springframework.boot.autoconfigure.dao.PersistenceExceptionTranslationAutoConfiguration,\
 | 
					org.springframework.boot.autoconfigure.dao.PersistenceExceptionTranslationAutoConfiguration,\
 | 
				
			||||||
 | 
					org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchAutoConfiguration,\
 | 
				
			||||||
 | 
					org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataAutoConfiguration,\
 | 
				
			||||||
org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchRepositoriesAutoConfiguration,\
 | 
					org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchRepositoriesAutoConfiguration,\
 | 
				
			||||||
org.springframework.boot.autoconfigure.data.jpa.JpaRepositoriesAutoConfiguration,\
 | 
					org.springframework.boot.autoconfigure.data.jpa.JpaRepositoriesAutoConfiguration,\
 | 
				
			||||||
 | 
					org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration,\
 | 
				
			||||||
org.springframework.boot.autoconfigure.data.mongo.MongoRepositoriesAutoConfiguration,\
 | 
					org.springframework.boot.autoconfigure.data.mongo.MongoRepositoriesAutoConfiguration,\
 | 
				
			||||||
org.springframework.boot.autoconfigure.data.solr.SolrRepositoriesAutoConfiguration,\
 | 
					org.springframework.boot.autoconfigure.data.solr.SolrRepositoriesAutoConfiguration,\
 | 
				
			||||||
 | 
					org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration,\
 | 
				
			||||||
org.springframework.boot.autoconfigure.data.rest.RepositoryRestMvcAutoConfiguration,\
 | 
					org.springframework.boot.autoconfigure.data.rest.RepositoryRestMvcAutoConfiguration,\
 | 
				
			||||||
org.springframework.boot.autoconfigure.data.web.SpringDataWebAutoConfiguration,\
 | 
					org.springframework.boot.autoconfigure.data.web.SpringDataWebAutoConfiguration,\
 | 
				
			||||||
org.springframework.boot.autoconfigure.freemarker.FreeMarkerAutoConfiguration,\
 | 
					org.springframework.boot.autoconfigure.freemarker.FreeMarkerAutoConfiguration,\
 | 
				
			||||||
| 
						 | 
					@ -37,8 +41,6 @@ org.springframework.boot.autoconfigure.jms.JndiConnectionFactoryAutoConfiguratio
 | 
				
			||||||
org.springframework.boot.autoconfigure.jms.activemq.ActiveMQAutoConfiguration,\
 | 
					org.springframework.boot.autoconfigure.jms.activemq.ActiveMQAutoConfiguration,\
 | 
				
			||||||
org.springframework.boot.autoconfigure.jms.artemis.ArtemisAutoConfiguration,\
 | 
					org.springframework.boot.autoconfigure.jms.artemis.ArtemisAutoConfiguration,\
 | 
				
			||||||
org.springframework.boot.autoconfigure.jms.hornetq.HornetQAutoConfiguration,\
 | 
					org.springframework.boot.autoconfigure.jms.hornetq.HornetQAutoConfiguration,\
 | 
				
			||||||
org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchAutoConfiguration,\
 | 
					 | 
				
			||||||
org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchDataAutoConfiguration,\
 | 
					 | 
				
			||||||
org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration,\
 | 
					org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration,\
 | 
				
			||||||
org.springframework.boot.autoconfigure.groovy.template.GroovyTemplateAutoConfiguration,\
 | 
					org.springframework.boot.autoconfigure.groovy.template.GroovyTemplateAutoConfiguration,\
 | 
				
			||||||
org.springframework.boot.autoconfigure.jersey.JerseyAutoConfiguration,\
 | 
					org.springframework.boot.autoconfigure.jersey.JerseyAutoConfiguration,\
 | 
				
			||||||
| 
						 | 
					@ -51,11 +53,9 @@ org.springframework.boot.autoconfigure.mobile.DeviceDelegatingViewResolverAutoCo
 | 
				
			||||||
org.springframework.boot.autoconfigure.mobile.SitePreferenceAutoConfiguration,\
 | 
					org.springframework.boot.autoconfigure.mobile.SitePreferenceAutoConfiguration,\
 | 
				
			||||||
org.springframework.boot.autoconfigure.mongo.embedded.EmbeddedMongoAutoConfiguration,\
 | 
					org.springframework.boot.autoconfigure.mongo.embedded.EmbeddedMongoAutoConfiguration,\
 | 
				
			||||||
org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration,\
 | 
					org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration,\
 | 
				
			||||||
org.springframework.boot.autoconfigure.mongo.MongoDataAutoConfiguration,\
 | 
					 | 
				
			||||||
org.springframework.boot.autoconfigure.mustache.MustacheAutoConfiguration,\
 | 
					org.springframework.boot.autoconfigure.mustache.MustacheAutoConfiguration,\
 | 
				
			||||||
org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration,\
 | 
					org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration,\
 | 
				
			||||||
org.springframework.boot.autoconfigure.reactor.ReactorAutoConfiguration,\
 | 
					org.springframework.boot.autoconfigure.reactor.ReactorAutoConfiguration,\
 | 
				
			||||||
org.springframework.boot.autoconfigure.redis.RedisAutoConfiguration,\
 | 
					 | 
				
			||||||
org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration,\
 | 
					org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration,\
 | 
				
			||||||
org.springframework.boot.autoconfigure.security.SecurityFilterAutoConfiguration,\
 | 
					org.springframework.boot.autoconfigure.security.SecurityFilterAutoConfiguration,\
 | 
				
			||||||
org.springframework.boot.autoconfigure.security.FallbackWebSecurityAutoConfiguration,\
 | 
					org.springframework.boot.autoconfigure.security.FallbackWebSecurityAutoConfiguration,\
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -14,7 +14,7 @@
 | 
				
			||||||
 * limitations under the License.
 | 
					 * limitations under the License.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
package org.springframework.boot.autoconfigure.elasticsearch;
 | 
					package org.springframework.boot.autoconfigure.data.elasticsearch;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import org.elasticsearch.client.Client;
 | 
					import org.elasticsearch.client.Client;
 | 
				
			||||||
import org.elasticsearch.client.node.NodeClient;
 | 
					import org.elasticsearch.client.node.NodeClient;
 | 
				
			||||||
| 
						 | 
					@ -14,7 +14,7 @@
 | 
				
			||||||
 * limitations under the License.
 | 
					 * limitations under the License.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
package org.springframework.boot.autoconfigure.elasticsearch;
 | 
					package org.springframework.boot.autoconfigure.data.elasticsearch;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import org.junit.After;
 | 
					import org.junit.After;
 | 
				
			||||||
import org.junit.Test;
 | 
					import org.junit.Test;
 | 
				
			||||||
| 
						 | 
					@ -25,8 +25,6 @@ import org.springframework.boot.autoconfigure.data.alt.elasticsearch.CityElastic
 | 
				
			||||||
import org.springframework.boot.autoconfigure.data.elasticsearch.city.City;
 | 
					import org.springframework.boot.autoconfigure.data.elasticsearch.city.City;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.data.elasticsearch.city.CityRepository;
 | 
					import org.springframework.boot.autoconfigure.data.elasticsearch.city.CityRepository;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.data.empty.EmptyDataPackage;
 | 
					import org.springframework.boot.autoconfigure.data.empty.EmptyDataPackage;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchAutoConfiguration;
 | 
					 | 
				
			||||||
import org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchDataAutoConfiguration;
 | 
					 | 
				
			||||||
import org.springframework.boot.test.EnvironmentTestUtils;
 | 
					import org.springframework.boot.test.EnvironmentTestUtils;
 | 
				
			||||||
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
 | 
					import org.springframework.context.annotation.AnnotationConfigApplicationContext;
 | 
				
			||||||
import org.springframework.context.annotation.Configuration;
 | 
					import org.springframework.context.annotation.Configuration;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,5 @@
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * Copyright 2012-2014 the original author or authors.
 | 
					 * Copyright 2012-2015 the original author or authors.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * Licensed under the Apache License, Version 2.0 (the "License");
 | 
					 * Licensed under the Apache License, Version 2.0 (the "License");
 | 
				
			||||||
 * you may not use this file except in compliance with the License.
 | 
					 * you may not use this file except in compliance with the License.
 | 
				
			||||||
| 
						 | 
					@ -30,7 +30,6 @@ import org.springframework.boot.autoconfigure.data.mongo.country.CountryReposito
 | 
				
			||||||
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
 | 
					import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration;
 | 
					import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.mongo.MongoAutoConfigurationTests;
 | 
					import org.springframework.boot.autoconfigure.mongo.MongoAutoConfigurationTests;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.mongo.MongoDataAutoConfiguration;
 | 
					 | 
				
			||||||
import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration;
 | 
					import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration;
 | 
				
			||||||
import org.springframework.boot.orm.jpa.EntityScan;
 | 
					import org.springframework.boot.orm.jpa.EntityScan;
 | 
				
			||||||
import org.springframework.boot.test.EnvironmentTestUtils;
 | 
					import org.springframework.boot.test.EnvironmentTestUtils;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -14,7 +14,7 @@
 | 
				
			||||||
 * limitations under the License.
 | 
					 * limitations under the License.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
package org.springframework.boot.autoconfigure.mongo;
 | 
					package org.springframework.boot.autoconfigure.data.mongo;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.Arrays;
 | 
					import java.util.Arrays;
 | 
				
			||||||
import java.util.Set;
 | 
					import java.util.Set;
 | 
				
			||||||
| 
						 | 
					@ -29,6 +29,7 @@ import org.springframework.beans.factory.UnsatisfiedDependencyException;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.AutoConfigurationPackages;
 | 
					import org.springframework.boot.autoconfigure.AutoConfigurationPackages;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.PropertyPlaceholderAutoConfiguration;
 | 
					import org.springframework.boot.autoconfigure.PropertyPlaceholderAutoConfiguration;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.data.mongo.city.City;
 | 
					import org.springframework.boot.autoconfigure.data.mongo.city.City;
 | 
				
			||||||
 | 
					import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration;
 | 
				
			||||||
import org.springframework.boot.test.EnvironmentTestUtils;
 | 
					import org.springframework.boot.test.EnvironmentTestUtils;
 | 
				
			||||||
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
 | 
					import org.springframework.context.annotation.AnnotationConfigApplicationContext;
 | 
				
			||||||
import org.springframework.context.annotation.Bean;
 | 
					import org.springframework.context.annotation.Bean;
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,5 @@
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * Copyright 2012-2014 the original author or authors.
 | 
					 * Copyright 2012-2015 the original author or authors.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * Licensed under the Apache License, Version 2.0 (the "License");
 | 
					 * Licensed under the Apache License, Version 2.0 (the "License");
 | 
				
			||||||
 * you may not use this file except in compliance with the License.
 | 
					 * you may not use this file except in compliance with the License.
 | 
				
			||||||
| 
						 | 
					@ -28,7 +28,6 @@ import org.springframework.boot.autoconfigure.data.empty.EmptyDataPackage;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.data.mongo.city.City;
 | 
					import org.springframework.boot.autoconfigure.data.mongo.city.City;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.data.mongo.city.CityRepository;
 | 
					import org.springframework.boot.autoconfigure.data.mongo.city.CityRepository;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration;
 | 
					import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.mongo.MongoDataAutoConfiguration;
 | 
					 | 
				
			||||||
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
 | 
					import org.springframework.context.annotation.AnnotationConfigApplicationContext;
 | 
				
			||||||
import org.springframework.context.annotation.Configuration;
 | 
					import org.springframework.context.annotation.Configuration;
 | 
				
			||||||
import org.springframework.data.mongodb.core.mapping.MongoMappingContext;
 | 
					import org.springframework.data.mongodb.core.mapping.MongoMappingContext;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -14,7 +14,7 @@
 | 
				
			||||||
 * limitations under the License.
 | 
					 * limitations under the License.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
package org.springframework.boot.autoconfigure.redis;
 | 
					package org.springframework.boot.autoconfigure.data.redis;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.Arrays;
 | 
					import java.util.Arrays;
 | 
				
			||||||
import java.util.List;
 | 
					import java.util.List;
 | 
				
			||||||
| 
						 | 
					@ -22,8 +22,8 @@ import org.junit.After;
 | 
				
			||||||
import org.junit.Test;
 | 
					import org.junit.Test;
 | 
				
			||||||
import org.springframework.beans.factory.annotation.Value;
 | 
					import org.springframework.beans.factory.annotation.Value;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.PropertyPlaceholderAutoConfiguration;
 | 
					import org.springframework.boot.autoconfigure.PropertyPlaceholderAutoConfiguration;
 | 
				
			||||||
 | 
					import org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration;
 | 
					import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.mongo.MongoDataAutoConfiguration;
 | 
					 | 
				
			||||||
import org.springframework.boot.test.EnvironmentTestUtils;
 | 
					import org.springframework.boot.test.EnvironmentTestUtils;
 | 
				
			||||||
import org.springframework.context.ConfigurableApplicationContext;
 | 
					import org.springframework.context.ConfigurableApplicationContext;
 | 
				
			||||||
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
 | 
					import org.springframework.context.annotation.AnnotationConfigApplicationContext;
 | 
				
			||||||
| 
						 | 
					@ -36,7 +36,6 @@ import com.mongodb.CommandResult;
 | 
				
			||||||
import com.mongodb.MongoClient;
 | 
					import com.mongodb.MongoClient;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import de.flapdoodle.embed.mongo.distribution.Feature;
 | 
					import de.flapdoodle.embed.mongo.distribution.Feature;
 | 
				
			||||||
 | 
					 | 
				
			||||||
import static org.hamcrest.Matchers.equalTo;
 | 
					import static org.hamcrest.Matchers.equalTo;
 | 
				
			||||||
import static org.hamcrest.Matchers.hasItems;
 | 
					import static org.hamcrest.Matchers.hasItems;
 | 
				
			||||||
import static org.hamcrest.Matchers.is;
 | 
					import static org.hamcrest.Matchers.is;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,5 @@
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * Copyright 2012-2014 the original author or authors.
 | 
					 * Copyright 2012-2015 the original author or authors.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * Licensed under the Apache License, Version 2.0 (the "License");
 | 
					 * Licensed under the Apache License, Version 2.0 (the "License");
 | 
				
			||||||
 * you may not use this file except in compliance with the License.
 | 
					 * you may not use this file except in compliance with the License.
 | 
				
			||||||
| 
						 | 
					@ -33,6 +33,7 @@ import static org.mockito.Mockito.mock;
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * @author Dave Syer
 | 
					 * @author Dave Syer
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					@Deprecated
 | 
				
			||||||
public class EntityManagerFactoryBuilderTests {
 | 
					public class EntityManagerFactoryBuilderTests {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	private JpaProperties properties = new JpaProperties();
 | 
						private JpaProperties properties = new JpaProperties();
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -20,7 +20,7 @@ import org.junit.After;
 | 
				
			||||||
import org.junit.Rule;
 | 
					import org.junit.Rule;
 | 
				
			||||||
import org.junit.Test;
 | 
					import org.junit.Test;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.PropertyPlaceholderAutoConfiguration;
 | 
					import org.springframework.boot.autoconfigure.PropertyPlaceholderAutoConfiguration;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.redis.RedisAutoConfiguration;
 | 
					import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.web.ServerProperties;
 | 
					import org.springframework.boot.autoconfigure.web.ServerProperties;
 | 
				
			||||||
import org.springframework.boot.autoconfigure.web.ServerPropertiesAutoConfiguration;
 | 
					import org.springframework.boot.autoconfigure.web.ServerPropertiesAutoConfiguration;
 | 
				
			||||||
import org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext;
 | 
					import org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,203 @@
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright 2012-2015 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
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *      http://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.orm.jpa;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.HashMap;
 | 
				
			||||||
 | 
					import java.util.HashSet;
 | 
				
			||||||
 | 
					import java.util.LinkedHashMap;
 | 
				
			||||||
 | 
					import java.util.Map;
 | 
				
			||||||
 | 
					import java.util.Set;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import javax.sql.DataSource;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import org.springframework.orm.jpa.JpaVendorAdapter;
 | 
				
			||||||
 | 
					import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
 | 
				
			||||||
 | 
					import org.springframework.orm.jpa.persistenceunit.PersistenceUnitManager;
 | 
				
			||||||
 | 
					import org.springframework.util.ClassUtils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Convenient builder for JPA EntityManagerFactory instances. Collects common
 | 
				
			||||||
 | 
					 * configuration when constructed and then allows you to create one or more
 | 
				
			||||||
 | 
					 * {@link LocalContainerEntityManagerFactoryBean} through a fluent builder pattern. The
 | 
				
			||||||
 | 
					 * most common options are covered in the builder, but you can always manipulate the
 | 
				
			||||||
 | 
					 * product of the builder if you need more control, before returning it from a
 | 
				
			||||||
 | 
					 * {@code @Bean} definition.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @author Dave Syer
 | 
				
			||||||
 | 
					 * @author Phillip Webb
 | 
				
			||||||
 | 
					 * @since 1.3.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					public class EntityManagerFactoryBuilder {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						private JpaVendorAdapter jpaVendorAdapter;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						private PersistenceUnitManager persistenceUnitManager;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						private Map<String, Object> jpaProperties;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						private EntityManagerFactoryBeanCallback callback;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Create a new instance passing in the common pieces that will be shared if multiple
 | 
				
			||||||
 | 
						 * EntityManagerFactory instances are created.
 | 
				
			||||||
 | 
						 * @param jpaVendorAdapter a vendor adapter
 | 
				
			||||||
 | 
						 * @param jpaProperties JPA properties to be passed to the persistence provider.
 | 
				
			||||||
 | 
						 * @param persistenceUnitManager optional source of persistence unit information (can
 | 
				
			||||||
 | 
						 * be null)
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public EntityManagerFactoryBuilder(JpaVendorAdapter jpaVendorAdapter,
 | 
				
			||||||
 | 
								Map<String, ?> jpaProperties, PersistenceUnitManager persistenceUnitManager) {
 | 
				
			||||||
 | 
							this.jpaVendorAdapter = jpaVendorAdapter;
 | 
				
			||||||
 | 
							this.persistenceUnitManager = persistenceUnitManager;
 | 
				
			||||||
 | 
							this.jpaProperties = new LinkedHashMap<String, Object>(jpaProperties);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public Builder dataSource(DataSource dataSource) {
 | 
				
			||||||
 | 
							return new Builder(dataSource);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * An optional callback for new entity manager factory beans.
 | 
				
			||||||
 | 
						 * @param callback the entity manager factory bean callback
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public void setCallback(EntityManagerFactoryBeanCallback callback) {
 | 
				
			||||||
 | 
							this.callback = callback;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * A fluent builder for a LocalContainerEntityManagerFactoryBean.
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public final class Builder {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							private DataSource dataSource;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							private String[] packagesToScan;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							private String persistenceUnit;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							private Map<String, Object> properties = new HashMap<String, Object>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							private boolean jta;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							private Builder(DataSource dataSource) {
 | 
				
			||||||
 | 
								this.dataSource = dataSource;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							/**
 | 
				
			||||||
 | 
							 * The names of packages to scan for {@code @Entity} annotations.
 | 
				
			||||||
 | 
							 * @param packagesToScan packages to scan
 | 
				
			||||||
 | 
							 * @return the builder for fluent usage
 | 
				
			||||||
 | 
							 */
 | 
				
			||||||
 | 
							public Builder packages(String... packagesToScan) {
 | 
				
			||||||
 | 
								this.packagesToScan = packagesToScan;
 | 
				
			||||||
 | 
								return this;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							/**
 | 
				
			||||||
 | 
							 * The classes whose packages should be scanned for {@code @Entity} annotations.
 | 
				
			||||||
 | 
							 * @param basePackageClasses the classes to use
 | 
				
			||||||
 | 
							 * @return the builder for fluent usage
 | 
				
			||||||
 | 
							 */
 | 
				
			||||||
 | 
							public Builder packages(Class<?>... basePackageClasses) {
 | 
				
			||||||
 | 
								Set<String> packages = new HashSet<String>();
 | 
				
			||||||
 | 
								for (Class<?> type : basePackageClasses) {
 | 
				
			||||||
 | 
									packages.add(ClassUtils.getPackageName(type));
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								this.packagesToScan = packages.toArray(new String[0]);
 | 
				
			||||||
 | 
								return this;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							/**
 | 
				
			||||||
 | 
							 * The name of the persistence unit. If only building one EntityManagerFactory you
 | 
				
			||||||
 | 
							 * can omit this, but if there are more than one in the same application you
 | 
				
			||||||
 | 
							 * should give them distinct names.
 | 
				
			||||||
 | 
							 * @param persistenceUnit the name of the persistence unit
 | 
				
			||||||
 | 
							 * @return the builder for fluent usage
 | 
				
			||||||
 | 
							 */
 | 
				
			||||||
 | 
							public Builder persistenceUnit(String persistenceUnit) {
 | 
				
			||||||
 | 
								this.persistenceUnit = persistenceUnit;
 | 
				
			||||||
 | 
								return this;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							/**
 | 
				
			||||||
 | 
							 * Generic properties for standard JPA or vendor-specific configuration. These
 | 
				
			||||||
 | 
							 * properties override any values provided in the constructor.
 | 
				
			||||||
 | 
							 * @param properties the properties to use
 | 
				
			||||||
 | 
							 * @return the builder for fluent usage
 | 
				
			||||||
 | 
							 */
 | 
				
			||||||
 | 
							public Builder properties(Map<String, ?> properties) {
 | 
				
			||||||
 | 
								this.properties.putAll(properties);
 | 
				
			||||||
 | 
								return this;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							/**
 | 
				
			||||||
 | 
							 * Configure if using a JTA {@link DataSource}, i.e. if
 | 
				
			||||||
 | 
							 * {@link LocalContainerEntityManagerFactoryBean#setDataSource(DataSource)
 | 
				
			||||||
 | 
							 * setDataSource} or
 | 
				
			||||||
 | 
							 * {@link LocalContainerEntityManagerFactoryBean#setJtaDataSource(DataSource)
 | 
				
			||||||
 | 
							 * setJtaDataSource} should be called on the
 | 
				
			||||||
 | 
							 * {@link LocalContainerEntityManagerFactoryBean}.
 | 
				
			||||||
 | 
							 * @param jta if the data source is JTA
 | 
				
			||||||
 | 
							 * @return the builder for fluent usage
 | 
				
			||||||
 | 
							 */
 | 
				
			||||||
 | 
							public Builder jta(boolean jta) {
 | 
				
			||||||
 | 
								this.jta = jta;
 | 
				
			||||||
 | 
								return this;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							public LocalContainerEntityManagerFactoryBean build() {
 | 
				
			||||||
 | 
								LocalContainerEntityManagerFactoryBean entityManagerFactoryBean = new LocalContainerEntityManagerFactoryBean();
 | 
				
			||||||
 | 
								if (EntityManagerFactoryBuilder.this.persistenceUnitManager != null) {
 | 
				
			||||||
 | 
									entityManagerFactoryBean
 | 
				
			||||||
 | 
											.setPersistenceUnitManager(EntityManagerFactoryBuilder.this.persistenceUnitManager);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								if (this.persistenceUnit != null) {
 | 
				
			||||||
 | 
									entityManagerFactoryBean.setPersistenceUnitName(this.persistenceUnit);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								entityManagerFactoryBean
 | 
				
			||||||
 | 
										.setJpaVendorAdapter(EntityManagerFactoryBuilder.this.jpaVendorAdapter);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								if (this.jta) {
 | 
				
			||||||
 | 
									entityManagerFactoryBean.setJtaDataSource(this.dataSource);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								else {
 | 
				
			||||||
 | 
									entityManagerFactoryBean.setDataSource(this.dataSource);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								entityManagerFactoryBean.setPackagesToScan(this.packagesToScan);
 | 
				
			||||||
 | 
								entityManagerFactoryBean.getJpaPropertyMap().putAll(
 | 
				
			||||||
 | 
										EntityManagerFactoryBuilder.this.jpaProperties);
 | 
				
			||||||
 | 
								entityManagerFactoryBean.getJpaPropertyMap().putAll(this.properties);
 | 
				
			||||||
 | 
								if (EntityManagerFactoryBuilder.this.callback != null) {
 | 
				
			||||||
 | 
									EntityManagerFactoryBuilder.this.callback
 | 
				
			||||||
 | 
											.execute(entityManagerFactoryBean);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								return entityManagerFactoryBean;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * A callback for new entity manager factory beans created by a Builder.
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public interface EntityManagerFactoryBeanCallback {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							void execute(LocalContainerEntityManagerFactoryBean factory);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,71 @@
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright 2012-2015 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
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *      http://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.orm.jpa;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.Collections;
 | 
				
			||||||
 | 
					import java.util.LinkedHashMap;
 | 
				
			||||||
 | 
					import java.util.Map;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import javax.sql.DataSource;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import org.junit.Test;
 | 
				
			||||||
 | 
					import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
 | 
				
			||||||
 | 
					import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import static org.junit.Assert.assertFalse;
 | 
				
			||||||
 | 
					import static org.junit.Assert.assertTrue;
 | 
				
			||||||
 | 
					import static org.mockito.Mockito.mock;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Tests for {@link EntityManagerFactoryBuilder}.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @author Dave Syer
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Deprecated
 | 
				
			||||||
 | 
					public class EntityManagerFactoryBuilderTests {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						private Map<String, Object> properties = new LinkedHashMap<String, Object>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						private DataSource dataSource1 = mock(DataSource.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						private DataSource dataSource2 = mock(DataSource.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						@Test
 | 
				
			||||||
 | 
						public void entityManagerFactoryPropertiesNotOverwritingDefaults() {
 | 
				
			||||||
 | 
							EntityManagerFactoryBuilder factory = new EntityManagerFactoryBuilder(
 | 
				
			||||||
 | 
									new HibernateJpaVendorAdapter(), this.properties, null);
 | 
				
			||||||
 | 
							LocalContainerEntityManagerFactoryBean result1 = factory
 | 
				
			||||||
 | 
									.dataSource(this.dataSource1)
 | 
				
			||||||
 | 
									.properties(Collections.singletonMap("foo", "spam")).build();
 | 
				
			||||||
 | 
							assertFalse(result1.getJpaPropertyMap().isEmpty());
 | 
				
			||||||
 | 
							assertTrue(this.properties.isEmpty());
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						@Test
 | 
				
			||||||
 | 
						public void multipleEntityManagerFactoriesDoNotOverwriteEachOther() {
 | 
				
			||||||
 | 
							EntityManagerFactoryBuilder factory = new EntityManagerFactoryBuilder(
 | 
				
			||||||
 | 
									new HibernateJpaVendorAdapter(), this.properties, null);
 | 
				
			||||||
 | 
							LocalContainerEntityManagerFactoryBean result1 = factory
 | 
				
			||||||
 | 
									.dataSource(this.dataSource1)
 | 
				
			||||||
 | 
									.properties(Collections.singletonMap("foo", "spam")).build();
 | 
				
			||||||
 | 
							assertFalse(result1.getJpaPropertyMap().isEmpty());
 | 
				
			||||||
 | 
							LocalContainerEntityManagerFactoryBean result2 = factory.dataSource(
 | 
				
			||||||
 | 
									this.dataSource2).build();
 | 
				
			||||||
 | 
							assertTrue(result2.getJpaPropertyMap().isEmpty());
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
		Reference in New Issue