xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:context="http://www.springframework.org/schema/context"
- xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
- http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
- http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
+ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
+ http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
+ http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd
">
<bean id="genericApiCardinalityPropertyFilter" class="eu.etaxonomy.cdm.remote.json.util.CardinalityPropertyFilter">
- /cdmlib-persistence/src/main/resources/eu/etaxonomy/cdm/persistence.xml
whereas persistence.xml will be removed in the near future.
-->
- <value>FeatureTree.root</value>
- <value>FeatureNode.children</value>
- <value>FeatureNode.feature</value>
+ <value>TermTree.root</value>
+ <value>TermNode.children</value>
+ <value>TermNode.feature</value>
+
+ <value>NomenclaturalStatus.source</value>
+ <value>DescriptionElementSource.citation</value>
<value>TreeNode.data</value>
<value>TreeNode.data</value>
<value>PolytomousKeyNode.feature</value>
<value>PolytomousKeyNode.statement</value>
<value>PolytomousKeyNode.modifyingText</value>
+ <value>PolytomousKeyNode.otherNode</value>
<value>LinkedPolytomousKeyNodeRowDto.childStatement</value>
<value>LinkedPolytomousKeyNodeRowDto.rowQuestion</value>
<value>TaxonInteraction.feature</value>
<value>TextData.feature</value>
<value>IdentifiableSource.citation</value>
+
+ <value>Registration.name</value>
+ <value>Registration.typeDesignations</value>
+ <value>Registration.institution</value>
<value>SearchResult.entity</value>
+
+ <value>CdmEntity.entity</value>
</set>
</property>
</bean>
<bean
class="eu.etaxonomy.cdm.remote.json.processor.matcher.CdmProxyBeanProcessorMatcher" />
</property>
+ <property name="defaultValueProcessorMatcher">
+ <bean
+ class="eu.etaxonomy.cdm.remote.json.processor.matcher.CdmDefaultValueProcessorMatcher" />
+ </property>
+ <property name="defaultValueProcessorMap">
+ <map>
+ <entry key="java.lang.Number">
+ <bean
+ class="eu.etaxonomy.cdm.remote.json.processor.value.CdmDefaultValueProcessor" />
+ </entry>
+ </map>
+ </property>
<property name="jsonBeanProcessors">
<map>
- <entry key="org.hibernate.proxy.HibernateProxy">
- <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.HibernateProxyBeanProcessor" />
- </entry>
- <entry key="eu.etaxonomy.cdm.model.common.TermBase">
- <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.TermBaseBeanProcessor">
- <property name="excludes">
- <set value-type="java.lang.String">
- <value>partOf</value><!-- FIXME exclude partOf to avoid lazy loading exceptions -->
- <value>kindOf</value><!-- FIXME exclude kindOf to avoid lazy loading exceptions -->
- <value>infraGenericMarker</value><!-- FIXME leads to IllegalStateException if not excluded -->
- </set>
- </property>
- </bean>
- </entry>
- <entry key="eu.etaxonomy.cdm.model.taxon.TaxonNode">
- <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.TaxonNodeBeanProcessor" />
- </entry>
- <entry key="eu.etaxonomy.cdm.model.reference.Reference">
- <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.ReferenceBaseBeanProcessor"/>
- </entry>
- <entry key="eu.etaxonomy.cdm.model.name.TaxonNameBase">
- <bean
- class="eu.etaxonomy.cdm.remote.json.processor.bean.TaxonNameBaseBeanProcessor">
- <property name="skipTaggedName" value="true" />
- </bean>
- </entry>
- <entry key="eu.etaxonomy.cdm.model.name.TypeDesignationBase">
- <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.TypeDesignationBaseBeanProcessor"/>
- </entry>
- <entry key="eu.etaxonomy.cdm.model.description.KeyStatement">
- <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.KeyStatementBeanProcessor" />
- </entry>
- <entry key="eu.etaxonomy.cdm.model.agent.TeamOrPersonBase">
- <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.TeamOrPersonBaseBeanProcessor" />
- </entry>
- <entry key="eu.etaxonomy.cdm.model.description.DescriptionElementBase">
- <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.DescriptionElementBeanProcessor" />
+ <entry key="org.hibernate.proxy.HibernateProxy">
+ <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.HibernateProxyBeanProcessor" />
+ </entry>
+ <entry key="eu.etaxonomy.cdm.model.term.TermBase">
+ <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.TermBaseBeanProcessor">
+ <property name="excludes">
+ <set value-type="java.lang.String">
+ <value>partOf</value><!-- FIXME exclude partOf to avoid lazy loading exceptions -->
+ <value>kindOf</value><!-- FIXME exclude kindOf to avoid lazy loading exceptions -->
+ <value>infraGenericMarker</value><!-- FIXME leads to IllegalStateException if not excluded -->
+ </set>
+ </property>
+ </bean>
+ </entry>
+ <entry key="eu.etaxonomy.cdm.model.term.Representation">
+ <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.RepresentationBeanProcessor"/>
+ </entry>
+ <entry key="eu.etaxonomy.cdm.model.media.Media">
+ <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.MediaBeanProcessor">
+ <property name="replaceTitle" value="true" />
+ <property name="replaceDescription" value="true" />
+ </bean>
+ </entry>
+ <entry key="eu.etaxonomy.cdm.model.taxon.TaxonNode">
+ <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.TaxonNodeBeanProcessor" />
+ </entry>
+ <entry key="eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto">
+ <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.TaxonNodeDtoBeanProcessor" />
</entry>
- <entry key="eu.etaxonomy.cdm.model.description.StateData">
- <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.StateDataBeanProcessor" />
+ <entry key="eu.etaxonomy.cdm.model.location.Point">
+ <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.PointBeanProcessor"/>
</entry>
- <entry key="org.apache.lucene.document.Document">
- <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.LuceneDocumentBeanProcessor" />
+ <entry key="eu.etaxonomy.cdm.model.reference.Reference">
+ <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.ReferenceBaseBeanProcessor"/>
+ </entry>
+ <entry key="eu.etaxonomy.cdm.model.name.TaxonName">
+ <bean
+ class="eu.etaxonomy.cdm.remote.json.processor.bean.TaxonNameBeanProcessor">
+ <property name="skipTaggedName" value="true" />
+ </bean>
+ </entry>
+ <entry key="eu.etaxonomy.cdm.model.name.TypeDesignationBase">
+ <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.TypeDesignationBaseBeanProcessor"/>
+ </entry>
+ <entry key="eu.etaxonomy.cdm.model.description.KeyStatement">
+ <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.KeyStatementBeanProcessor" />
+ </entry>
+ <entry key="eu.etaxonomy.cdm.model.agent.TeamOrPersonBase">
+ <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.TeamOrPersonBaseBeanProcessor" />
+ </entry>
+ <entry key="eu.etaxonomy.cdm.model.description.DescriptionElementBase">
+ <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.DescriptionElementBeanProcessor" />
+ </entry>
+ <!-- TODO this bean processor is unused but preserved for the time when the REST API will be revised (#8637)
+ <entry key="eu.etaxonomy.cdm.model.reference.CdmLinkSource">
+ <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.CdmLinkSourceBeanProcessor" />
+ </entry>
+ -->
+ <entry key="eu.etaxonomy.cdm.model.description.StateData">
+ <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.StateDataBeanProcessor" />
+ </entry>
+ <entry key="org.apache.lucene.document.Document">
+ <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.LuceneDocumentBeanProcessor" />
+ </entry>
+ <entry key="eu.etaxonomy.cdm.api.service.dto.RegistrationDTO">
+ <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.RegistrationDtoBeanProcessor" />
</entry>
</map>
</property>
</constructor-arg>
</bean>
</property>
- <property name="jsonValueProcessors">
+ <property name="jsonValueProcessorsByClass">
<map>
<entry key="org.hibernate.proxy.HibernateProxy">
<bean
<entry key="java.util.Map">
<bean class="eu.etaxonomy.cdm.remote.json.processor.value.MapJSONValueProcessor" />
</entry>
- <entry key="java.net.URI">
- <bean class="eu.etaxonomy.cdm.remote.json.processor.value.URIJSONValueProcessor"/>
- </entry>
+ <entry key="java.util.LinkedHashMap">
+ <bean class="eu.etaxonomy.cdm.remote.json.processor.value.MapJSONValueProcessor" />
+ </entry>
+ <entry key="eu.etaxonomy.cdm.api.service.name.TypeDesignationWorkingSet">
+ <bean class="eu.etaxonomy.cdm.remote.json.processor.value.MapJSONValueProcessor" />
+ </entry>
+ <entry key="eu.etaxonomy.cdm.common.URI">
+ <bean class="eu.etaxonomy.cdm.remote.json.processor.value.URIJSONValueProcessor"/>
+ </entry>
+ <entry key="eu.etaxonomy.cdm.model.taxon.TaxonNodeStatus">
+ <bean class="eu.etaxonomy.cdm.remote.json.processor.value.KeyTermValueProcessor"/>
+ </entry>
+ <entry key="eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType">
+ <bean class="eu.etaxonomy.cdm.remote.json.processor.value.KeyTermValueProcessor"/>
+ </entry>
</map>
</property>
<property name="ignoreDefaultExcludes" value="true" />
<value>cacheStrategy</value>
<value>createdBy</value>
<value>updatedBy</value>
+ <!-- TODO this bean processor is unused but preserved for the time when the REST API will be revised (#8637)
+ <value>cdmSourceTarget</value><! - - OriginalSourceBase.getCdmSourceTarget() -->
</list>
</property>
</bean>
class="eu.etaxonomy.cdm.remote.json.processor.bean.HibernateProxyBeanProcessor" />
</entry>
<entry key="eu.etaxonomy.cdm.model.taxon.TaxonNode">
+ <bean
+ class="eu.etaxonomy.cdm.remote.json.processor.bean.TaxonNode2DtoBeanProcessor" />
+ </entry>
+ <entry key="eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto">
<bean
class="eu.etaxonomy.cdm.remote.json.processor.bean.TaxonNodeDtoBeanProcessor" />
</entry>
</constructor-arg>
</bean>
</property>
- <property name="jsonValueProcessors">
+ <property name="jsonValueProcessorsByClass">
<map>
<entry key="org.hibernate.proxy.HibernateProxy">
<bean
<entry key="java.util.Map">
<bean class="eu.etaxonomy.cdm.remote.json.processor.value.MapJSONValueProcessor" />
</entry>
- <entry key="java.net.URI">
+ <entry key="eu.etaxonomy.cdm.common.URI">
<bean class="eu.etaxonomy.cdm.remote.json.processor.value.URIJSONValueProcessor"/>
</entry>
+ <entry key="eu.etaxonomy.cdm.model.taxon.TaxonNodeStatus">
+ <bean class="eu.etaxonomy.cdm.remote.json.processor.value.KeyTermValueProcessor" />
+ </entry>
+ <entry key="eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType">
+ <bean class="eu.etaxonomy.cdm.remote.json.processor.value.KeyTermValueProcessor"/>
+ </entry>
</map>
</property>
<property name="ignoreDefaultExcludes" value="true" />
<bean
class="eu.etaxonomy.cdm.remote.json.processor.matcher.CdmProxyBeanProcessorMatcher" />
</property>
+ <property name="defaultValueProcessorMatcher">
+ <bean
+ class="eu.etaxonomy.cdm.remote.json.processor.matcher.CdmDefaultValueProcessorMatcher" />
+ </property>
+ <property name="defaultValueProcessorMap">
+ <map>
+ <entry key="java.lang.Number">
+ <bean
+ class="eu.etaxonomy.cdm.remote.json.processor.value.CdmDefaultValueProcessor" />
+ </entry>
+ </map>
+ </property>
<property name="jsonBeanProcessors">
<map>
<entry key="org.hibernate.proxy.HibernateProxy">
class="eu.etaxonomy.cdm.remote.json.processor.bean.HibernateProxyBeanProcessor" />
</entry>
<entry key="eu.etaxonomy.cdm.model.taxon.TaxonBase">
- <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.TaxonBaseBeanProcessor" />
+ <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.TaxonBaseBeanProcessor">
+ <property name="excludes">
+ <set value-type="java.lang.String">
+ <value>acceptedTaxon</value><!-- #6211 to avoid infinite loops in the synonymy -->
+ </set>
+ </property>
+ </bean>
</entry>
- <entry key="eu.etaxonomy.cdm.model.name.TaxonNameBase">
- <bean
- class="eu.etaxonomy.cdm.remote.json.processor.bean.TaxonNameBaseBeanProcessor" />
+ <entry key="eu.etaxonomy.cdm.model.name.TaxonName">
+ <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.TaxonNameBeanProcessor">
+ <property name="excludes">
+ <set value-type="java.lang.String">
+ <value>homotypicalGroup</value>
+ </set>
+ </property>
+ </bean>
</entry>
+ <entry key="eu.etaxonomy.cdm.model.taxon.TaxonNode">
+ <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.TaxonNodeBeanProcessor">
+ <property name="replaceMultilanguageText" value="true" />
+ </bean>
+ </entry>
+ <entry key="eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto">
+ <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.TaxonNodeDtoBeanProcessor" />
+ </entry>
+ <entry key="eu.etaxonomy.cdm.model.name.TypeDesignationBase">
+ <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.TypeDesignationBaseBeanProcessor">
+ <property name="replaceMultilanguageText" value="true" />
+ </bean>
+ </entry>
<entry key="eu.etaxonomy.cdm.model.name.NameRelationship">
<bean
class="eu.etaxonomy.cdm.remote.json.processor.bean.NameRelationshipBeanProcessor" />
<bean
class="eu.etaxonomy.cdm.remote.json.processor.bean.TaxonRelationshipBeanProcessor" />
</entry>
- <entry key="eu.etaxonomy.cdm.model.common.TermBase">
+ <entry key="eu.etaxonomy.cdm.model.term.TermBase">
<bean
class="eu.etaxonomy.cdm.remote.json.processor.bean.TermBaseBeanProcessor">
<property name="replaceRepresentations" value="true" />
<entry key="eu.etaxonomy.cdm.model.agent.TeamOrPersonBase">
<bean class="eu.etaxonomy.cdm.remote.json.processor.bean.TeamOrPersonBaseBeanProcessor" />
</entry>
+ <!-- TODO this bean processor is unused but preserved for the time when the REST API will be revised (#8637)
+ <entry key="eu.etaxonomy.cdm.model.reference.CdmLinkSource">
+ <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.CdmLinkSourceBeanProcessor" />
+ </entry>
+ -->
<entry key="org.apache.lucene.document.Document">
<bean class="eu.etaxonomy.cdm.remote.json.processor.bean.LuceneDocumentBeanProcessor" />
</entry>
<property name="replaceMultilanguageText" value="true" />
</bean>
</entry>
+ <entry key="eu.etaxonomy.cdm.model.description.KeyStatement">
+ <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.KeyStatementBeanProcessor" />
+ </entry>
+ <entry key="eu.etaxonomy.cdm.api.service.dto.RegistrationDTO">
+ <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.RegistrationDtoBeanProcessor" />
+ </entry>
</map>
</property>
<property name="jsonPropertyFilter">
<bean class="eu.etaxonomy.cdm.remote.json.util.InitializedHibernatePropertyFilter" />
</property>
- <property name="jsonValueProcessors">
+ <property name="jsonValueProcessorsByClass">
<map>
<entry key="org.hibernate.proxy.HibernateProxy">
<bean
<entry key="java.util.Map">
<bean class="eu.etaxonomy.cdm.remote.json.processor.value.MapJSONValueProcessor" />
</entry>
- <entry key="java.net.URI">
+ <entry key="java.util.LinkedHashMap">
+ <bean class="eu.etaxonomy.cdm.remote.json.processor.value.MapJSONValueProcessor" />
+ </entry>
+ <entry key="eu.etaxonomy.cdm.api.service.name.TypeDesignationWorkingSet">
+ <bean class="eu.etaxonomy.cdm.remote.json.processor.value.MapJSONValueProcessor" />
+ </entry>
+ <entry key="eu.etaxonomy.cdm.common.URI">
<bean class="eu.etaxonomy.cdm.remote.json.processor.value.URIJSONValueProcessor"/>
</entry>
+ <entry key="eu.etaxonomy.cdm.model.taxon.TaxonNodeStatus">
+ <bean class="eu.etaxonomy.cdm.remote.json.processor.value.KeyTermValueProcessor" />
+ </entry>
+ <entry key="eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType">
+ <bean class="eu.etaxonomy.cdm.remote.json.processor.value.KeyTermValueProcessor"/>
+ </entry>
</map>
</property>
<property name="ignoreDefaultExcludes" value="true" />
<value>createdBy</value>
<value>updatedBy</value>
<value>inDescription</value>
+ <!-- TODO this bean processor is unused but preserved for the time when the REST API will be revised (#8637)
+ <value>cdmSourceTarget</value>< !- - OriginalSourceBase.getCdmSourceTarget() -->
</list>
</property>
</bean>
</constructor-arg>
</bean>
</property>
- <property name="jsonValueProcessors">
+ <property name="jsonValueProcessorsByClass">
<map>
<entry key="org.hibernate.proxy.HibernateProxy">
<bean
<entry key="java.util.Map">
<bean class="eu.etaxonomy.cdm.remote.json.processor.value.MapJSONValueProcessor" />
</entry>
- <entry key="java.net.URI">
+ <entry key="eu.etaxonomy.cdm.common.URI">
<bean class="eu.etaxonomy.cdm.remote.json.processor.value.URIJSONValueProcessor"/>
</entry>
-
</map>
</property>
<property name="ignoreDefaultExcludes" value="true" />
</constructor-arg>
</bean>
</property>
- <property name="jsonValueProcessors">
+ <property name="jsonValueProcessorsByClass">
<map>
<entry key="org.hibernate.proxy.HibernateProxy">
<bean
<entry key="java.util.Map">
<bean class="eu.etaxonomy.cdm.remote.json.processor.value.MapJSONValueProcessor" />
</entry>
- <entry key="java.net.URI">
+ <entry key="eu.etaxonomy.cdm.common.URI">
<bean class="eu.etaxonomy.cdm.remote.json.processor.value.URIJSONValueProcessor"/>
</entry>