diff --git a/dozer-integrations/dozer-spring-support/dozer-spring4/src/main/java/com/github/dozermapper/spring/MapperDefinitionParser.java b/dozer-integrations/dozer-spring-support/dozer-spring4/src/main/java/com/github/dozermapper/spring/MapperDefinitionParser.java index ac112714a..4fccc046e 100644 --- a/dozer-integrations/dozer-spring-support/dozer-spring4/src/main/java/com/github/dozermapper/spring/MapperDefinitionParser.java +++ b/dozer-integrations/dozer-spring-support/dozer-spring4/src/main/java/com/github/dozermapper/spring/MapperDefinitionParser.java @@ -21,6 +21,7 @@ import org.springframework.beans.factory.support.BeanDefinitionBuilder; import org.springframework.beans.factory.xml.AbstractBeanDefinitionParser; import org.springframework.beans.factory.xml.ParserContext; +import org.springframework.util.StringUtils; /** * {@link AbstractBeanDefinitionParser} which uses {@link BeanDefinitionBuilder#rootBeanDefinition(Class)} @@ -31,6 +32,10 @@ public class MapperDefinitionParser extends AbstractBeanDefinitionParser { @Override protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) { BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(DozerBeanMapperFactoryBean.class); + String mappingFiles = element.getAttribute("mapping-files"); + if (StringUtils.hasLength(mappingFiles)) { + builder.addPropertyValue("mappingFiles", mappingFiles); + } return builder.getBeanDefinition(); } } diff --git a/dozer-integrations/dozer-spring-support/dozer-spring4/src/main/resources/META-INF/spring.schemas b/dozer-integrations/dozer-spring-support/dozer-spring4/src/main/resources/META-INF/spring.schemas index bd6f55b80..8823fd4d0 100644 --- a/dozer-integrations/dozer-spring-support/dozer-spring4/src/main/resources/META-INF/spring.schemas +++ b/dozer-integrations/dozer-spring-support/dozer-spring4/src/main/resources/META-INF/spring.schemas @@ -15,3 +15,4 @@ # http\://dozermapper.github.io/schema/dozer-spring.xsd=schema/dozer-spring.xsd +https\://dozermapper.github.io/schema/dozer-spring.xsd=schema/dozer-spring.xsd diff --git a/dozer-integrations/dozer-spring-support/dozer-spring4/src/main/resources/schema/dozer-spring.xsd b/dozer-integrations/dozer-spring-support/dozer-spring4/src/main/resources/schema/dozer-spring.xsd index a596e300d..0da4dbc7b 100644 --- a/dozer-integrations/dozer-spring-support/dozer-spring4/src/main/resources/schema/dozer-spring.xsd +++ b/dozer-integrations/dozer-spring-support/dozer-spring4/src/main/resources/schema/dozer-spring.xsd @@ -27,7 +27,18 @@ - + + + + + + + + + diff --git a/dozer-integrations/dozer-spring-support/dozer-spring4/src/test/java/com/github/dozermapper/spring/functional_tests/NamespaceTest.java b/dozer-integrations/dozer-spring-support/dozer-spring4/src/test/java/com/github/dozermapper/spring/functional_tests/NamespaceTest.java index 54b715262..5cc215cc6 100644 --- a/dozer-integrations/dozer-spring-support/dozer-spring4/src/test/java/com/github/dozermapper/spring/functional_tests/NamespaceTest.java +++ b/dozer-integrations/dozer-spring-support/dozer-spring4/src/test/java/com/github/dozermapper/spring/functional_tests/NamespaceTest.java @@ -15,6 +15,7 @@ */ package com.github.dozermapper.spring.functional_tests; +import com.github.dozermapper.core.DozerBeanMapper; import com.github.dozermapper.core.Mapper; import com.github.dozermapper.spring.functional_tests.support.ReferencingBean; @@ -25,8 +26,9 @@ import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; -import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertSame; +import static org.junit.Assert.assertTrue; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = "/springNameSpace.xml") @@ -46,6 +48,13 @@ public void shouldRegisterMapper() { Mapper mapper = referencingBean.getMapper(); assertNotNull(mapper); - assertEquals(beanMapper, mapper); + assertSame(beanMapper, mapper); } + + @Test + public void shoulduseMappingFiles() { + DozerBeanMapper beanMapper = context.getBean("beanMapperWithMappingFiles", DozerBeanMapper.class); + assertTrue(beanMapper.getMappingFiles().stream().anyMatch(file -> file.contains("/mappings/"))); + } + } diff --git a/dozer-integrations/dozer-spring-support/dozer-spring4/src/test/java/com/github/dozermapper/spring/functional_tests/support/ReferencingBean.java b/dozer-integrations/dozer-spring-support/dozer-spring4/src/test/java/com/github/dozermapper/spring/functional_tests/support/ReferencingBean.java index e2902f061..af5982815 100644 --- a/dozer-integrations/dozer-spring-support/dozer-spring4/src/test/java/com/github/dozermapper/spring/functional_tests/support/ReferencingBean.java +++ b/dozer-integrations/dozer-spring-support/dozer-spring4/src/test/java/com/github/dozermapper/spring/functional_tests/support/ReferencingBean.java @@ -24,9 +24,9 @@ public class ReferencingBean { @Autowired - Mapper mapper; + Mapper beanMapper; public Mapper getMapper() { - return mapper; + return beanMapper; } } diff --git a/dozer-integrations/dozer-spring-support/dozer-spring4/src/test/resources/springNameSpace.xml b/dozer-integrations/dozer-spring-support/dozer-spring4/src/test/resources/springNameSpace.xml index a2b685818..8f49c2c95 100644 --- a/dozer-integrations/dozer-spring-support/dozer-spring4/src/test/resources/springNameSpace.xml +++ b/dozer-integrations/dozer-spring-support/dozer-spring4/src/test/resources/springNameSpace.xml @@ -27,5 +27,7 @@ + +