Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

DATACMNS-227 - Renamed repository resource populator location attribu…

…te to locations.

Tightened test cases to check correct population more strictly. Upgraded to Hamcrest 1.3 as test dependency on the way.
  • Loading branch information...
commit 8a01a55046faa8392366054e7304dcb94cf46e18 1 parent f1fd8fe
@olivergierke olivergierke authored
View
3  spring-data-commons-core/src/main/resources/META-INF/spring.schemas
@@ -1,3 +1,4 @@
http\://www.springframework.org/schema/data/repository/spring-repository-1.0.xsd=org/springframework/data/repository/config/spring-repository-1.0.xsd
http\://www.springframework.org/schema/data/repository/spring-repository-1.4.xsd=org/springframework/data/repository/config/spring-repository-1.4.xsd
-http\://www.springframework.org/schema/data/repository/spring-repository.xsd=org/springframework/data/repository/config/spring-repository-1.4.xsd
+http\://www.springframework.org/schema/data/repository/spring-repository-1.5.xsd=org/springframework/data/repository/config/spring-repository-1.5.xsd
+http\://www.springframework.org/schema/data/repository/spring-repository.xsd=org/springframework/data/repository/config/spring-repository-1.5.xsd
View
187 ...ata-commons-core/src/main/resources/org/springframework/data/repository/config/spring-repository-1.5.xsd
@@ -0,0 +1,187 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<xsd:schema xmlns="http://www.springframework.org/schema/data/repository"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:tool="http://www.springframework.org/schema/tool"
+ xmlns:context="http://www.springframework.org/schema/context"
+ targetNamespace="http://www.springframework.org/schema/data/repository"
+ elementFormDefault="qualified" attributeFormDefault="unqualified">
+
+ <xsd:import namespace="http://www.springframework.org/schema/tool" />
+ <xsd:import namespace="http://www.springframework.org/schema/context"
+ schemaLocation="http://www.springframework.org/schema/context/spring-context.xsd" />
+
+ <xsd:complexType name="repositories">
+ <xsd:sequence>
+ <xsd:element name="include-filter" type="context:filterType"
+ minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation><![CDATA[
+ Controls which eligible types to include for component scanning.
+ ]]></xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="exclude-filter" type="context:filterType" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation><![CDATA[
+ Controls which eligible types to exclude for component scanning.
+ ]]></xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="base-package" type="xsd:string" use="required">
+ <xsd:annotation>
+ <xsd:documentation><![CDATA[
+ Defines the base package where the DAO interface will be tried to be detected.
+ ]]></xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="named-queries-location" type="xsd:string">
+ <xsd:annotation>
+ <xsd:documentation><![CDATA[
+ Defines the location to look for a Properties file containing externally defined queries.
+ ]]></xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ </xsd:complexType>
+
+ <xsd:complexType name="populator">
+ <xsd:attribute name="locations" type="xsd:string" use="required">
+ <xsd:annotation>
+ <xsd:documentation>
+ Where to find the files to read the objects from the repository shall be populated with.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="id" type="xsd:string" />
+ </xsd:complexType>
+
+ <!-- XML (Unmarshaller) initializer -->
+
+ <xsd:element name="unmarshaller-populator">
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="populator">
+ <xsd:attribute name="unmarshaller-ref" type="unmarshallerRefType" use="required" />
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:simpleType name="unmarshallerRefType">
+ <xsd:annotation>
+ <xsd:appinfo>
+ <tool:expected-type type="org.springframework.oxm.Unmarshaller" />
+ </xsd:appinfo>
+ </xsd:annotation>
+ <xsd:union memberTypes="xsd:string" />
+ </xsd:simpleType>
+
+ <!-- JSON (Jackson) initializer -->
+
+ <xsd:element name="jackson-populator">
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="populator">
+ <xsd:attribute name="object-mapper-ref" type="objectMapperType" />
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:simpleType name="objectMapperType">
+ <xsd:annotation>
+ <xsd:appinfo>
+ <tool:expected-type type="org.codehaus.jackson.map.ObjectMapper" />
+ </xsd:appinfo>
+ </xsd:annotation>
+ <xsd:union memberTypes="xsd:string" />
+ </xsd:simpleType>
+
+ <xsd:attributeGroup name="repository-attributes">
+ <xsd:attribute name="repository-impl-postfix" type="xsd:string"/>
+ <xsd:attribute name="query-lookup-strategy" type="query-strategy"/>
+ <xsd:attribute name="factory-class" type="classType"/>
+ </xsd:attributeGroup>
+
+ <xsd:attributeGroup name="transactional-repository-attributes">
+ <xsd:attributeGroup ref="repository-attributes"/>
+ <xsd:attribute name="transaction-manager-ref" type="transactionManagerRef"/>
+ </xsd:attributeGroup>
+
+ <xsd:simpleType name="query-strategy">
+ <xsd:annotation>
+ <xsd:documentation><![CDATA[
+ Determines the way query methods are being executed.
+ ]]></xsd:documentation>
+ </xsd:annotation>
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="create-if-not-found">
+ <xsd:annotation>
+ <xsd:documentation><![CDATA[
+ Tries to find a named query but creates a custom query if
+ none can be found. (Default)
+ ]]></xsd:documentation>
+ </xsd:annotation>
+ </xsd:enumeration>
+ <xsd:enumeration value="create">
+ <xsd:annotation>
+ <xsd:documentation><![CDATA[
+ Creates a query from the query method's name.
+ ]]></xsd:documentation>
+ </xsd:annotation>
+ </xsd:enumeration>
+ <xsd:enumeration value="use-declared-query">
+ <xsd:annotation>
+ <xsd:documentation><![CDATA[
+ Uses a declared query to execute. Fails if no
+ declared query (either through named query or through @Query)
+ is defined.
+ ]]></xsd:documentation>
+ </xsd:annotation>
+ </xsd:enumeration>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="customImplementationReference">
+ <xsd:annotation>
+ <xsd:appinfo>
+ <tool:annotation kind="ref"/>
+ </xsd:appinfo>
+ </xsd:annotation>
+ <xsd:union memberTypes="xsd:string"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="entityManagerFactoryRef">
+ <xsd:annotation>
+ <xsd:appinfo>
+ <tool:annotation kind="ref">
+ <tool:assignable-to type="org.springframework.orm.jpa.AbstractEntityManagerFactoryBean"/>
+ </tool:annotation>
+ </xsd:appinfo>
+ </xsd:annotation>
+ <xsd:union memberTypes="xsd:string"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="transactionManagerRef">
+ <xsd:annotation>
+ <xsd:appinfo>
+ <tool:annotation kind="ref">
+ <tool:assignable-to type="org.springframework.transaction.PlatformTransactionManager"/>
+ </tool:annotation>
+ </xsd:appinfo>
+ </xsd:annotation>
+ <xsd:union memberTypes="xsd:string"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="classType">
+ <xsd:annotation>
+ <xsd:appinfo>
+ <tool:annotation kind="direct">
+ <tool:expected-type type="java.lang.Class"/>
+ </tool:annotation>
+ </xsd:appinfo>
+ </xsd:annotation>
+ <xsd:union memberTypes="xsd:string"/>
+ </xsd:simpleType>
+
+</xsd:schema>
View
21 ...mework/data/repository/config/ResourceReaderRepositoryPopulatorBeanDefinitionParserIntegrationTests.java
@@ -15,9 +15,11 @@
*/
package org.springframework.data.repository.config;
-import static org.hamcrest.CoreMatchers.*;
+import static org.hamcrest.Matchers.*;
import static org.junit.Assert.*;
+import java.util.List;
+
import org.junit.Test;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
@@ -53,6 +55,9 @@ public void registersJacksonInitializerCorrectly() {
assertThat(bean, is(instanceOf(ResourceReaderRepositoryPopulator.class)));
Object resourceReader = ReflectionTestUtils.getField(bean, "reader");
assertThat(resourceReader, is(instanceOf(JacksonResourceReader.class)));
+
+ Object resources = ReflectionTestUtils.getField(bean, "resources");
+ assertIsListOfClasspathResourcesWithPath(resources, "org/springframework/data/repository/init/data.json");
}
/**
@@ -74,5 +79,19 @@ public void registersXmlInitializerCorrectly() {
assertThat(resourceReader, is(instanceOf(UnmarshallingResourceReader.class)));
Object unmarshaller = ReflectionTestUtils.getField(resourceReader, "unmarshaller");
assertThat(unmarshaller, is(instanceOf(Jaxb2Marshaller.class)));
+
+ Object resources = ReflectionTestUtils.getField(bean, "resources");
+ assertIsListOfClasspathResourcesWithPath(resources, "org/springframework/data/repository/init/data.xml");
+ }
+
+ private void assertIsListOfClasspathResourcesWithPath(Object source, String path) {
+
+ assertThat(source, is(instanceOf(List.class)));
+ List<?> list = (List<?>) source;
+ assertThat(list, is(not(empty())));
+ Object element = list.get(0);
+ assertThat(element, is(instanceOf(ClassPathResource.class)));
+ ClassPathResource resource = (ClassPathResource) element;
+ assertThat(resource.getPath(), is(path));
}
}
View
4 spring-data-commons-core/src/test/resources/org/springframework/data/repository/config/populators.xml
@@ -7,10 +7,10 @@
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<repository:jackson-populator id="jackson-populator"
- location="classpath:org/springframework/data/repository/init/data.json" />
+ locations="classpath:org/springframework/data/repository/init/data.json" />
<repository:unmarshaller-populator
- id="xml-populator" location="classpath:org/springframework/data/repository/init/data.xml"
+ id="xml-populator" locations="classpath:org/springframework/data/repository/init/data.xml"
unmarshaller-ref="unmarshaller" />
<oxm:jaxb2-marshaller id="unmarshaller" contextPath="org.springframework.data.repository.config" />
View
2  spring-data-commons-parent/pom.xml
@@ -15,7 +15,7 @@
<org.springframework.version.30>3.0.7.RELEASE</org.springframework.version.30>
<org.springframework.version>3.1.2.RELEASE</org.springframework.version>
<org.springframework.hateoas.version>0.3.0.RELEASE</org.springframework.hateoas.version>
- <org.hamcrest.version>1.2.1</org.hamcrest.version>
+ <org.hamcrest.version>1.3</org.hamcrest.version>
<bundlor.failOnWarnings>true</bundlor.failOnWarnings>
</properties>
Please sign in to comment.
Something went wrong with that request. Please try again.