From 154e3370cfb0e973b0ad22b9bac1ecb1b37966cf Mon Sep 17 00:00:00 2001 From: Oliver Gierke Date: Sat, 5 Mar 2016 16:12:25 +0100 Subject: [PATCH] DATAJPA-813 - Made JNDI EntityManagerFactory detection more lenient. We now don't assume an expectedType property configured for every declaration of but rather skip elements that don't have the attribute configured. --- .../springframework/data/jpa/util/BeanDefinitionUtils.java | 2 +- .../support/DefaultJpaContextIntegrationTests.java | 1 + src/test/resources/config/jpa-context-with-jndi.xml | 5 ++++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/springframework/data/jpa/util/BeanDefinitionUtils.java b/src/main/java/org/springframework/data/jpa/util/BeanDefinitionUtils.java index ec76eb833..e8780376e 100644 --- a/src/main/java/org/springframework/data/jpa/util/BeanDefinitionUtils.java +++ b/src/main/java/org/springframework/data/jpa/util/BeanDefinitionUtils.java @@ -124,7 +124,7 @@ public class BeanDefinitionUtils { BeanDefinition definition = beanFactory.getBeanDefinition(name); if (JNDI_OBJECT_FACTORY_BEAN.equals(definition.getBeanClassName())) { - if (!definition.getPropertyValues().get("expectedType").equals(EntityManagerFactory.class.getName())) { + if (!EntityManagerFactory.class.getName().equals(definition.getPropertyValues().get("expectedType"))) { return; } } diff --git a/src/test/java/org/springframework/data/jpa/repository/support/DefaultJpaContextIntegrationTests.java b/src/test/java/org/springframework/data/jpa/repository/support/DefaultJpaContextIntegrationTests.java index e1b8da124..8098145bd 100644 --- a/src/test/java/org/springframework/data/jpa/repository/support/DefaultJpaContextIntegrationTests.java +++ b/src/test/java/org/springframework/data/jpa/repository/support/DefaultJpaContextIntegrationTests.java @@ -133,6 +133,7 @@ public class DefaultJpaContextIntegrationTests { SimpleNamingContextBuilder builder = SimpleNamingContextBuilder.emptyActivatedContextBuilder(); builder.bind("some/EMF", createEntityManagerFactory("spring-data-jpa")); + builder.bind("some/other/Component", new Object()); ConfigurableApplicationContext context = new ClassPathXmlApplicationContext("config/jpa-context-with-jndi.xml"); ApplicationComponent component = context.getBean(ApplicationComponent.class); diff --git a/src/test/resources/config/jpa-context-with-jndi.xml b/src/test/resources/config/jpa-context-with-jndi.xml index 70be5f779..74d6ed048 100644 --- a/src/test/resources/config/jpa-context-with-jndi.xml +++ b/src/test/resources/config/jpa-context-with-jndi.xml @@ -14,7 +14,10 @@ - + + +