From 1905fed81cff1a20b8855325b24a49e323abfd2f Mon Sep 17 00:00:00 2001 From: Oliver Gierke Date: Thu, 27 Jan 2011 14:51:49 +0200 Subject: [PATCH] DATACMNS-13 - Moved registration PersistenceExceptionTranslationPostProcessor into JPA bean definition parser. --- .../config/JpaRepositoryConfigDefinitionParser.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/main/java/org/springframework/data/jpa/repository/config/JpaRepositoryConfigDefinitionParser.java b/src/main/java/org/springframework/data/jpa/repository/config/JpaRepositoryConfigDefinitionParser.java index f1e9d9cb4..cf0f7c171 100644 --- a/src/main/java/org/springframework/data/jpa/repository/config/JpaRepositoryConfigDefinitionParser.java +++ b/src/main/java/org/springframework/data/jpa/repository/config/JpaRepositoryConfigDefinitionParser.java @@ -19,6 +19,7 @@ import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.beans.factory.support.AbstractBeanDefinition; import org.springframework.beans.factory.support.BeanDefinitionBuilder; import org.springframework.beans.factory.support.BeanDefinitionRegistry; +import org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor; import org.springframework.data.jpa.repository.config.SimpleJpaRepositoryConfiguration.JpaRepositoryConfiguration; import org.springframework.data.repository.config.AbstractRepositoryConfigDefinitionParser; import org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor; @@ -47,6 +48,8 @@ class JpaRepositoryConfigDefinitionParser private static final Class PAB_POST_PROCESSOR = PersistenceAnnotationBeanPostProcessor.class; + private static final Class PET_POST_PROCESSOR = + PersistenceExceptionTranslationPostProcessor.class; /* @@ -129,6 +132,16 @@ class JpaRepositoryConfigDefinitionParser super.registerBeansForRoot(registry, source); + if (!hasBean(PET_POST_PROCESSOR, registry)) { + + AbstractBeanDefinition definition = + BeanDefinitionBuilder + .rootBeanDefinition(PET_POST_PROCESSOR) + .getBeanDefinition(); + + registerWithSourceAndGeneratedBeanName(registry, definition, source); + } + if (!hasBean(PAB_POST_PROCESSOR, registry)) { AbstractBeanDefinition definition =