DATACMNS-391 - Ensure compatibility with Spring Framework 4.0.
Some tests required an explicit dependency to servlet-api-3.x. The GenericApplicationContext doesn't refresh automatically in Spring 4.x we thus we have to call refresh manually. Added a specific version of populators.xml for Spring 4.x since the jaxb2-marshaller element definition no longer renamed the contextPath attribute to context-path in 4.x. Original pull request: #52.
This commit is contained in:
committed by
Oliver Gierke
parent
3a7acf29d7
commit
c34983b22b
@@ -24,6 +24,7 @@ import org.junit.Test;
|
||||
import org.springframework.beans.factory.config.BeanDefinition;
|
||||
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
|
||||
import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;
|
||||
import org.springframework.core.SpringVersion;
|
||||
import org.springframework.core.io.ClassPathResource;
|
||||
import org.springframework.data.repository.init.Jackson2ResourceReader;
|
||||
import org.springframework.data.repository.init.JacksonResourceReader;
|
||||
@@ -40,6 +41,14 @@ import org.springframework.test.util.ReflectionTestUtils;
|
||||
*/
|
||||
public class ResourceReaderRepositoryPopulatorBeanDefinitionParserIntegrationTests {
|
||||
|
||||
private ClassPathResource getPopulatorResource() {
|
||||
String populatorsResourceName = "populators.xml";
|
||||
if (SpringVersion.getVersion().startsWith("4.0")) {
|
||||
populatorsResourceName = "populators-spring-4.0.xml";
|
||||
}
|
||||
return new ClassPathResource(populatorsResourceName, getClass());
|
||||
}
|
||||
|
||||
/**
|
||||
* @see DATACMNS-58
|
||||
*/
|
||||
@@ -48,7 +57,7 @@ public class ResourceReaderRepositoryPopulatorBeanDefinitionParserIntegrationTes
|
||||
|
||||
DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();
|
||||
XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(beanFactory);
|
||||
reader.loadBeanDefinitions(new ClassPathResource("populators.xml", getClass()));
|
||||
reader.loadBeanDefinitions(getPopulatorResource());
|
||||
|
||||
BeanDefinition definition = beanFactory.getBeanDefinition("jackson-populator");
|
||||
assertThat(definition, is(notNullValue()));
|
||||
@@ -70,7 +79,7 @@ public class ResourceReaderRepositoryPopulatorBeanDefinitionParserIntegrationTes
|
||||
|
||||
DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();
|
||||
XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(beanFactory);
|
||||
reader.loadBeanDefinitions(new ClassPathResource("populators.xml", getClass()));
|
||||
reader.loadBeanDefinitions(getPopulatorResource());
|
||||
|
||||
BeanDefinition definition = beanFactory.getBeanDefinition("jackson2-populator");
|
||||
assertThat(definition, is(notNullValue()));
|
||||
@@ -92,7 +101,7 @@ public class ResourceReaderRepositoryPopulatorBeanDefinitionParserIntegrationTes
|
||||
|
||||
DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();
|
||||
XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(beanFactory);
|
||||
reader.loadBeanDefinitions(new ClassPathResource("populators.xml", getClass()));
|
||||
reader.loadBeanDefinitions(getPopulatorResource());
|
||||
|
||||
BeanDefinition definition = beanFactory.getBeanDefinition("xml-populator");
|
||||
assertThat(definition, is(notNullValue()));
|
||||
|
||||
@@ -48,13 +48,9 @@ import org.springframework.data.repository.core.support.RepositoryFactoryInforma
|
||||
@RunWith(MockitoJUnitRunner.class)
|
||||
public class DomainClassConverterIntegrationTests {
|
||||
|
||||
@Mock
|
||||
@SuppressWarnings("rawtypes")
|
||||
RepositoryFactoryBeanSupport factory;
|
||||
@Mock
|
||||
PersonRepository repository;
|
||||
@Mock
|
||||
RepositoryInformation information;
|
||||
@Mock @SuppressWarnings("rawtypes") RepositoryFactoryBeanSupport factory;
|
||||
@Mock PersonRepository repository;
|
||||
@Mock RepositoryInformation information;
|
||||
|
||||
@Test
|
||||
@SuppressWarnings({ "rawtypes", "unchecked" })
|
||||
@@ -82,6 +78,7 @@ public class DomainClassConverterIntegrationTests {
|
||||
when(factory.getRepositoryInformation()).thenReturn(information);
|
||||
|
||||
GenericApplicationContext context = new GenericApplicationContext(beanFactory);
|
||||
context.refresh();
|
||||
assertThat(context.getBeansOfType(RepositoryFactoryInformation.class).values().size(), is(1));
|
||||
|
||||
DomainClassConverter converter = new DomainClassConverter(new DefaultConversionService());
|
||||
|
||||
@@ -51,14 +51,12 @@ public class DomainClassConverterUnitTests {
|
||||
|
||||
static final User USER = new User();
|
||||
|
||||
@SuppressWarnings("rawtypes")
|
||||
DomainClassConverter converter;
|
||||
@SuppressWarnings("rawtypes") DomainClassConverter converter;
|
||||
|
||||
TypeDescriptor sourceDescriptor;
|
||||
TypeDescriptor targetDescriptor;
|
||||
|
||||
@Mock
|
||||
DefaultConversionService service;
|
||||
@Mock DefaultConversionService service;
|
||||
|
||||
@Before
|
||||
@SuppressWarnings({ "unchecked", "rawtypes" })
|
||||
@@ -76,7 +74,9 @@ public class DomainClassConverterUnitTests {
|
||||
@Test
|
||||
public void matchFailsIfNoDaoAvailable() throws Exception {
|
||||
|
||||
converter.setApplicationContext(new GenericApplicationContext());
|
||||
GenericApplicationContext ctx = new GenericApplicationContext();
|
||||
ctx.refresh();
|
||||
converter.setApplicationContext(ctx);
|
||||
assertMatches(false);
|
||||
}
|
||||
|
||||
@@ -143,7 +143,8 @@ public class DomainClassConverterUnitTests {
|
||||
public void discoversFactoryAndRepoFromParentApplicationContext() {
|
||||
|
||||
ApplicationContext parent = initContextWithRepo();
|
||||
ApplicationContext context = new GenericApplicationContext(parent);
|
||||
GenericApplicationContext context = new GenericApplicationContext(parent);
|
||||
context.refresh();
|
||||
|
||||
when(service.canConvert(String.class, Long.class)).thenReturn(true);
|
||||
|
||||
@@ -159,7 +160,9 @@ public class DomainClassConverterUnitTests {
|
||||
DefaultListableBeanFactory factory = new DefaultListableBeanFactory();
|
||||
factory.registerBeanDefinition("provider", builder.getBeanDefinition());
|
||||
|
||||
return new GenericApplicationContext(factory);
|
||||
GenericApplicationContext ctx = new GenericApplicationContext(factory);
|
||||
ctx.refresh();
|
||||
return ctx;
|
||||
}
|
||||
|
||||
private static class User {
|
||||
|
||||
@@ -28,7 +28,6 @@ import org.mockito.runners.MockitoJUnitRunner;
|
||||
import org.springframework.beans.PropertyEditorRegistry;
|
||||
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
|
||||
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.support.GenericApplicationContext;
|
||||
import org.springframework.data.repository.CrudRepository;
|
||||
import org.springframework.data.repository.core.support.DummyRepositoryFactoryBean;
|
||||
@@ -41,11 +40,10 @@ import org.springframework.data.repository.core.support.DummyRepositoryFactoryBe
|
||||
@RunWith(MockitoJUnitRunner.class)
|
||||
public class DomainClassPropertyEditorRegistrarUnitTests {
|
||||
|
||||
@Mock
|
||||
PropertyEditorRegistry registry;
|
||||
@Mock PropertyEditorRegistry registry;
|
||||
|
||||
DomainClassPropertyEditorRegistrar registrar;
|
||||
ApplicationContext context;
|
||||
GenericApplicationContext context;
|
||||
DomainClassPropertyEditor<Entity, Serializable> reference;
|
||||
|
||||
@Before
|
||||
@@ -58,6 +56,7 @@ public class DomainClassPropertyEditorRegistrarUnitTests {
|
||||
factory.registerBeanDefinition("provider", builder.getBeanDefinition());
|
||||
|
||||
context = new GenericApplicationContext(factory);
|
||||
context.refresh();
|
||||
registrar = new DomainClassPropertyEditorRegistrar();
|
||||
}
|
||||
|
||||
|
||||
@@ -33,7 +33,6 @@ import org.mockito.runners.MockitoJUnitRunner;
|
||||
import org.springframework.beans.factory.support.AbstractBeanDefinition;
|
||||
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
|
||||
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.support.GenericApplicationContext;
|
||||
import org.springframework.data.mapping.PersistentEntity;
|
||||
import org.springframework.data.mapping.context.SampleMappingContext;
|
||||
@@ -58,7 +57,7 @@ import org.springframework.data.repository.query.QueryMethod;
|
||||
@RunWith(MockitoJUnitRunner.class)
|
||||
public class RepositoriesUnitTests {
|
||||
|
||||
ApplicationContext context;
|
||||
GenericApplicationContext context;
|
||||
|
||||
@Rule public ExpectedException exception = ExpectedException.none();
|
||||
|
||||
@@ -70,6 +69,7 @@ public class RepositoriesUnitTests {
|
||||
beanFactory.registerBeanDefinition("personRepository", getRepositoryBeanDefinition(PersonRepository.class));
|
||||
|
||||
context = new GenericApplicationContext(beanFactory);
|
||||
context.refresh();
|
||||
}
|
||||
|
||||
private AbstractBeanDefinition getRepositoryBeanDefinition(Class<?> repositoryInterface) {
|
||||
|
||||
Reference in New Issue
Block a user