From 6a227a2298c309777f8333c731fc165a7affae79 Mon Sep 17 00:00:00 2001 From: Phillip Webb Date: Tue, 27 Aug 2013 10:58:12 -0700 Subject: [PATCH] Move non-inherited JPA @Condition annotations Move JPA @Condition annotations from JpaBaseConfiguration to HibernateJpaAutoConfiguration since they are not inherited. --- .../orm/jpa/HibernateJpaAutoConfiguration.java | 9 ++++++++- .../boot/autoconfigure/orm/jpa/JpaBaseConfiguration.java | 7 ------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.java index 470f8812baf..38c1bc96e6f 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.java @@ -18,9 +18,13 @@ package org.springframework.boot.autoconfigure.orm.jpa; import java.util.Map; +import javax.persistence.EntityManager; +import javax.sql.DataSource; + import org.hibernate.cfg.ImprovedNamingStrategy; import org.hibernate.ejb.HibernateEntityManager; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.bind.RelaxedPropertyResolver; import org.springframework.context.annotation.Configuration; @@ -36,7 +40,10 @@ import org.springframework.transaction.annotation.EnableTransactionManagement; * @author Phillip Webb */ @Configuration -@ConditionalOnClass(HibernateEntityManager.class) +@ConditionalOnClass({ LocalContainerEntityManagerFactoryBean.class, + EnableTransactionManagement.class, EntityManager.class, + HibernateEntityManager.class }) +@ConditionalOnBean(DataSource.class) @EnableTransactionManagement public class HibernateJpaAutoConfiguration extends JpaBaseConfiguration { diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/orm/jpa/JpaBaseConfiguration.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/orm/jpa/JpaBaseConfiguration.java index 1dbb22cd45e..d73aa5f696e 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/orm/jpa/JpaBaseConfiguration.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/orm/jpa/JpaBaseConfiguration.java @@ -18,7 +18,6 @@ package org.springframework.boot.autoconfigure.orm.jpa; import java.util.List; -import javax.persistence.EntityManager; import javax.sql.DataSource; import org.springframework.beans.BeansException; @@ -27,8 +26,6 @@ import org.springframework.beans.factory.BeanFactoryAware; import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; import org.springframework.boot.autoconfigure.AutoConfigurationUtils; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; -import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; -import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication; @@ -45,7 +42,6 @@ import org.springframework.orm.jpa.support.OpenEntityManagerInViewInterceptor; import org.springframework.orm.jpa.vendor.AbstractJpaVendorAdapter; import org.springframework.orm.jpa.vendor.Database; import org.springframework.transaction.PlatformTransactionManager; -import org.springframework.transaction.annotation.EnableTransactionManagement; import org.springframework.util.Assert; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; @@ -56,9 +52,6 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter * @author Phillip Webb * @author Dave Syer */ -@ConditionalOnClass({ LocalContainerEntityManagerFactoryBean.class, - EnableTransactionManagement.class, EntityManager.class }) -@ConditionalOnBean(DataSource.class) public abstract class JpaBaseConfiguration implements BeanFactoryAware, EnvironmentAware { private ConfigurableListableBeanFactory beanFactory;