diff --git a/src/main/java/org/springframework/data/jpa/repository/support/JpaRepositoryFactoryBean.java b/src/main/java/org/springframework/data/jpa/repository/support/JpaRepositoryFactoryBean.java index 68ec233f9..e4bb8f3cf 100644 --- a/src/main/java/org/springframework/data/jpa/repository/support/JpaRepositoryFactoryBean.java +++ b/src/main/java/org/springframework/data/jpa/repository/support/JpaRepositoryFactoryBean.java @@ -34,11 +34,20 @@ import org.springframework.util.Assert; * @author Eberhard Wolff * @param the type of the repository */ -public class JpaRepositoryFactoryBean, S, ID extends Serializable> extends - TransactionalRepositoryFactoryBeanSupport { +public class JpaRepositoryFactoryBean, S, ID extends Serializable> + extends TransactionalRepositoryFactoryBeanSupport { private EntityManager entityManager; + /** + * Creates a new {@link JpaRepositoryFactoryBean} for the given repository interface. + * + * @param repositoryInterface must not be {@literal null}. + */ + public JpaRepositoryFactoryBean(Class repositoryInterface) { + super(repositoryInterface); + } + /** * The {@link EntityManager} to be used. * diff --git a/src/test/java/org/springframework/data/jpa/repository/JavaConfigUserRepositoryTests.java b/src/test/java/org/springframework/data/jpa/repository/JavaConfigUserRepositoryTests.java index bb927fc55..0a1f1428b 100644 --- a/src/test/java/org/springframework/data/jpa/repository/JavaConfigUserRepositoryTests.java +++ b/src/test/java/org/springframework/data/jpa/repository/JavaConfigUserRepositoryTests.java @@ -76,10 +76,10 @@ public class JavaConfigUserRepositoryTests extends UserRepositoryTests { extensions); evaluationContextProvider.setApplicationContext(applicationContext); - JpaRepositoryFactoryBean factory = new JpaRepositoryFactoryBean(); + JpaRepositoryFactoryBean factory = new JpaRepositoryFactoryBean( + UserRepository.class); factory.setEntityManager(entityManager); factory.setBeanFactory(applicationContext); - factory.setRepositoryInterface(UserRepository.class); factory .setCustomImplementation(new UserRepositoryImpl(new DefaultJpaContext(Collections.singleton(entityManager)))); factory.setNamedQueries(namedQueries()); diff --git a/src/test/java/org/springframework/data/jpa/repository/config/JpaRepositoryConfigExtensionUnitTests.java b/src/test/java/org/springframework/data/jpa/repository/config/JpaRepositoryConfigExtensionUnitTests.java index f0e6cb44a..26b46e6af 100644 --- a/src/test/java/org/springframework/data/jpa/repository/config/JpaRepositoryConfigExtensionUnitTests.java +++ b/src/test/java/org/springframework/data/jpa/repository/config/JpaRepositoryConfigExtensionUnitTests.java @@ -41,7 +41,6 @@ import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigUtils; import org.springframework.data.repository.config.RepositoryConfigurationExtension; import org.springframework.data.repository.config.RepositoryConfigurationSource; -import org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport; import org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor; /** @@ -52,8 +51,6 @@ import org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcesso @RunWith(MockitoJUnitRunner.class) public class JpaRepositoryConfigExtensionUnitTests { - private static final String RIABPP_CLASS_NAME = RepositoryFactoryBeanSupport.class.getName().concat("_Predictor"); - @Mock RepositoryConfigurationSource configSource; public @Rule ExpectedException exception = ExpectedException.none(); @@ -68,7 +65,7 @@ public class JpaRepositoryConfigExtensionUnitTests { Iterable names = Arrays.asList(factory.getBeanDefinitionNames()); - assertThat(names, hasItems(AnnotationConfigUtils.PERSISTENCE_ANNOTATION_PROCESSOR_BEAN_NAME, RIABPP_CLASS_NAME)); + assertThat(names, hasItems(AnnotationConfigUtils.PERSISTENCE_ANNOTATION_PROCESSOR_BEAN_NAME)); } @Test diff --git a/src/test/java/org/springframework/data/jpa/repository/custom/CustomGenericJpaRepositoryFactoryBean.java b/src/test/java/org/springframework/data/jpa/repository/custom/CustomGenericJpaRepositoryFactoryBean.java index e9465b8cb..bec2a5313 100644 --- a/src/test/java/org/springframework/data/jpa/repository/custom/CustomGenericJpaRepositoryFactoryBean.java +++ b/src/test/java/org/springframework/data/jpa/repository/custom/CustomGenericJpaRepositoryFactoryBean.java @@ -1,5 +1,5 @@ /* - * Copyright 2008-2011 the original author or authors. + * Copyright 2008-2016 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. @@ -29,8 +29,12 @@ import org.springframework.data.repository.core.support.RepositoryFactorySupport * @author Gil Markham * @author Oliver Gierke */ -public class CustomGenericJpaRepositoryFactoryBean> extends - JpaRepositoryFactoryBean { +public class CustomGenericJpaRepositoryFactoryBean> + extends JpaRepositoryFactoryBean { + + public CustomGenericJpaRepositoryFactoryBean(Class repositoryInterface) { + super(repositoryInterface); + } /* * (non-Javadoc) diff --git a/src/test/java/org/springframework/data/jpa/repository/support/JpaRepositoryFactoryBeanUnitTests.java b/src/test/java/org/springframework/data/jpa/repository/support/JpaRepositoryFactoryBeanUnitTests.java index 75b69d46b..e909b4fab 100644 --- a/src/test/java/org/springframework/data/jpa/repository/support/JpaRepositoryFactoryBeanUnitTests.java +++ b/src/test/java/org/springframework/data/jpa/repository/support/JpaRepositoryFactoryBeanUnitTests.java @@ -51,18 +51,12 @@ public class JpaRepositoryFactoryBeanUnitTests { JpaRepositoryFactoryBean factoryBean; - @Mock - EntityManager entityManager; - @Mock - RepositoryFactorySupport factory; - @Mock - ListableBeanFactory beanFactory; - @Mock - PersistenceExceptionTranslator translator; - @Mock - Repository repository; - @Mock - Metamodel metamodel; + @Mock EntityManager entityManager; + @Mock RepositoryFactorySupport factory; + @Mock ListableBeanFactory beanFactory; + @Mock PersistenceExceptionTranslator translator; + @Mock Repository repository; + @Mock Metamodel metamodel; @Before @SuppressWarnings("unchecked") @@ -70,14 +64,14 @@ public class JpaRepositoryFactoryBeanUnitTests { Map beans = new HashMap(); beans.put("foo", translator); - when(beanFactory.getBeansOfType(eq(PersistenceExceptionTranslator.class), anyBoolean(), anyBoolean())).thenReturn( - beans); + when(beanFactory.getBeansOfType(eq(PersistenceExceptionTranslator.class), anyBoolean(), anyBoolean())) + .thenReturn(beans); when(factory.getRepository(any(Class.class), any(Object.class))).thenReturn(repository); when(entityManager.getMetamodel()).thenReturn(metamodel); // Setup standard factory configuration - factoryBean = new DummyJpaRepositoryFactoryBean(); - factoryBean.setRepositoryInterface(SimpleSampleRepository.class); + factoryBean = new DummyJpaRepositoryFactoryBean( + SimpleSampleRepository.class); factoryBean.setEntityManager(entityManager); } @@ -107,34 +101,22 @@ public class JpaRepositoryFactoryBeanUnitTests { */ @Test(expected = IllegalArgumentException.class) public void preventsNullRepositoryInterface() { - - factoryBean.setRepositoryInterface(null); + new JpaRepositoryFactoryBean, Object, Long>(null); } - /** - * Assert that the factory detects unset repository class and interface in - * {@code JpaRepositoryFactoryBean#afterPropertiesSet()}. - */ - @Test(expected = IllegalArgumentException.class) - public void preventsUnsetRepositoryInterface() throws Exception { + private class DummyJpaRepositoryFactoryBean, S, ID extends Serializable> + extends JpaRepositoryFactoryBean { - factoryBean = new JpaRepositoryFactoryBean(); - factoryBean.afterPropertiesSet(); - } - - private class DummyJpaRepositoryFactoryBean, S, ID extends Serializable> extends - JpaRepositoryFactoryBean { + public DummyJpaRepositoryFactoryBean(Class repositoryInterface) { + super(repositoryInterface); + } /* * (non-Javadoc) - * - * @see - * org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean - * #createRepositoryFactory() + * @see org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean#doCreateRepositoryFactory() */ @Override protected RepositoryFactorySupport doCreateRepositoryFactory() { - return factory; } } diff --git a/src/test/resources/application-context.xml b/src/test/resources/application-context.xml index 55c14fb44..2584f2f05 100644 --- a/src/test/resources/application-context.xml +++ b/src/test/resources/application-context.xml @@ -10,7 +10,7 @@ - + @@ -25,12 +25,11 @@ - - +