1 <?xml version=
"1.0" encoding=
"UTF-8"?>
2 <beans xmlns=
"http://www.springframework.org/schema/beans"
3 xmlns:
xsi=
"http://www.w3.org/2001/XMLSchema-instance"
4 xmlns:
tx=
"http://www.springframework.org/schema/tx"
5 xmlns:
context=
"http://www.springframework.org/schema/context"
6 xsi:
schemaLocation=
"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
7 http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
8 http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
11 <bean id=
"genericApiCardinalityPropertyFilter" class=
"eu.etaxonomy.cdm.remote.json.util.CardinalityPropertyFilter">
12 <property name=
"includeToOneRelations" value=
"false" />
13 <property name=
"includeToManyRelations" value=
"false" />
14 <property name=
"exceptions">
17 the exceptions listed here should be covered by implementations of
18 eu.etaxonomy.cdm.persistence.dao.initializer.AutoPropertyInitializer.
19 The according configuration files are
20 - /cdmlib-persistence/src/main/resources/eu/etaxonomy/cdm/persistence_security.xml
21 - /cdmlib-persistence/src/main/resources/eu/etaxonomy/cdm/persistence.xml
22 whereas persistence.xml will be removed in the near future.
24 <value>FeatureTree.root
</value>
25 <value>FeatureNode.children
</value>
26 <value>FeatureNode.feature
</value>
28 <value>TreeNode.data
</value>
29 <value>TreeNode.data
</value>
31 <value>PolytomousKey.root
</value>
32 <value>PolytomousKeyNode.children
</value>
33 <value>PolytomousKeyNode.question
</value>
34 <value>PolytomousKeyNode.feature
</value>
35 <value>PolytomousKeyNode.statement
</value>
36 <value>PolytomousKeyNode.modifyingText
</value>
38 <value>LinkedPolytomousKeyNodeRowDto.childStatement
</value>
39 <value>LinkedPolytomousKeyNodeRowDto.rowQuestion
</value>
40 <value>LinkedPolytomousKeyNodeRowDto.rowFeature
</value>
41 <!-- value>LinkedPolytomousKeyNodeRowDto.keyNode</value-->
43 <value>Media.representations</value>
44 <value>MediaRepresentation.parts</value>
46 <value>Sequence.marker</value>
47 <value>Sequence.genBankAccessionNumber</value>
48 <value>Sequence.genBankUri</value>
50 <value>Annotation.annotationType</value>
51 <value>Marker.markerType</value>
53 <value>DerivationEvent.derivatives</value>
54 <value>DerivationEvent.originals</value>
56 <value>Point.referenceSystem</value>
58 <!-- CardinalityPropertyFilter should allow defining exceptions for abstract super classes : -->
59 <!-- <value>eu.etaxonomy.cdm.model.description.DescriptionElementBase.feature</value> -->
61 <value>Synonym.sec
</value>
62 <value>Taxon.sec
</value>
64 <value>StateData.state
</value>
65 <value>StateData.modifiers
</value>
66 <value>StateData.modifyingText
</value>
68 <value>TextData.feature
</value>
69 <value>CategoricalData.feature
</value>
70 <value>CommonTaxonName.feature
</value>
71 <value>Distribution.feature
</value>
72 <value>IndividualsAssociation.feature
</value>
73 <value>QuantitativeData.feature
</value>
74 <value>TaxonInteraction.feature
</value>
75 <value>TextData.feature
</value>
76 <value>IdentifiableSource.citation
</value>
78 <value>SearchResult.entity
</value>
83 <bean id=
"nameCatalogueApiCardinalityPropertyFilter" class=
"eu.etaxonomy.cdm.remote.json.util.CardinalityPropertyFilter">
84 <property name=
"includeToOneRelations" value=
"true" />
85 <property name=
"includeToManyRelations" value=
"true" />
86 <property name=
"exceptions">
93 =================================================
94 default configuration for RESTful read(/write) service
95 =================================================
97 <bean name=
"jsonConfig" class=
"eu.etaxonomy.cdm.remote.json.JsonConfigFactoryBean"
99 <property name=
"jsonBeanProcessorMatcher">
101 class=
"eu.etaxonomy.cdm.remote.json.processor.matcher.CdmProxyBeanProcessorMatcher" />
103 <property name=
"jsonBeanProcessors">
105 <entry key=
"org.hibernate.proxy.HibernateProxy">
106 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.HibernateProxyBeanProcessor" />
108 <entry key=
"eu.etaxonomy.cdm.model.common.TermBase">
109 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.TermBaseBeanProcessor">
110 <property name=
"excludes">
111 <set value-type=
"java.lang.String">
112 <value>partOf
</value><!-- FIXME exclude partOf to avoid lazy loading exceptions -->
113 <value>kindOf
</value><!-- FIXME exclude kindOf to avoid lazy loading exceptions -->
114 <value>infraGenericMarker
</value><!-- FIXME leads to IllegalStateException if not excluded -->
119 <entry key=
"eu.etaxonomy.cdm.model.taxon.TaxonNode">
120 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.TaxonNodeBeanProcessor" />
122 <entry key=
"eu.etaxonomy.cdm.model.reference.Reference">
123 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.ReferenceBaseBeanProcessor"/>
125 <entry key=
"eu.etaxonomy.cdm.model.name.TypeDesignationBase">
126 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.TypeDesignationBaseBeanProcessor"/>
128 <entry key=
"eu.etaxonomy.cdm.model.description.KeyStatement">
129 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.KeyStatementBeanProcessor" />
131 <entry key=
"eu.etaxonomy.cdm.model.agent.TeamOrPersonBase">
132 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.TeamOrPersonBaseBeanProcessor" />
134 <entry key=
"eu.etaxonomy.cdm.model.description.DescriptionElementBase">
135 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.DescriptionElementBeanProcessor" />
137 <entry key=
"eu.etaxonomy.cdm.model.description.StateData">
138 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.StateDataBeanProcessor" />
140 <entry key=
"org.apache.lucene.document.Document">
141 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.LuceneDocumentBeanProcessor" />
145 <property name=
"jsonPropertyFilter">
146 <bean class=
"net.sf.json.filters.OrPropertyFilter">
148 <bean class=
"eu.etaxonomy.cdm.remote.json.util.InitializedHibernatePropertyFilter" />
150 <constructor-arg ref=
"genericApiCardinalityPropertyFilter">
154 <property name=
"jsonValueProcessors">
156 <entry key=
"org.hibernate.proxy.HibernateProxy">
158 class=
"eu.etaxonomy.cdm.remote.json.processor.value.HibernateJSONValueProcessor" />
160 <entry key=
"java.util.UUID">
162 class=
"eu.etaxonomy.cdm.remote.json.processor.value.UUIDJSONValueProcessor" />
164 <entry key=
"org.joda.time.DateTime">
166 class=
"eu.etaxonomy.cdm.remote.json.processor.value.DateTimeJSONValueProcessor" />
168 <entry key=
"java.util.Calendar">
170 class=
"eu.etaxonomy.cdm.remote.json.processor.value.CalendarJSONValueProcessor" />
172 <entry key=
"org.joda.time.Partial">
174 class=
"eu.etaxonomy.cdm.remote.json.processor.value.PartialJSONValueProcessor" />
176 <entry key=
"java.lang.Class">
178 class=
"eu.etaxonomy.cdm.remote.json.processor.value.ClassJSONValueProcessor" />
180 <entry key=
"java.util.Map">
181 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.value.MapJSONValueProcessor" />
183 <entry key=
"java.net.URI">
184 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.value.URIJSONValueProcessor"/>
188 <property name=
"ignoreDefaultExcludes" value=
"true" />
189 <property name=
"excludes">
190 <list value-type=
"java.lang.String">
191 <value>declaringClass
</value><!-- DefaultExclude -->
192 <value>metaClass
</value><!-- DefaultExclude -->
194 <value>cacheStrategy
</value>
195 <value>createdBy
</value>
196 <value>updatedBy
</value>
202 =================================================
203 configuration for RESTful classification service
204 =================================================
206 <bean name=
"jsonConfigClassification" class=
"eu.etaxonomy.cdm.remote.json.JsonConfigFactoryBean"
208 <property name=
"jsonBeanProcessorMatcher">
210 class=
"eu.etaxonomy.cdm.remote.json.processor.matcher.HibernateProxyBeanProcessorMatcher" />
212 <property name=
"jsonBeanProcessors">
214 <entry key=
"org.hibernate.proxy.HibernateProxy">
216 class=
"eu.etaxonomy.cdm.remote.json.processor.bean.HibernateProxyBeanProcessor" />
218 <entry key=
"eu.etaxonomy.cdm.model.taxon.TaxonNode">
220 class=
"eu.etaxonomy.cdm.remote.json.processor.bean.TaxonNodeDaoBeanProcessor" />
224 <property name=
"jsonPropertyFilter">
225 <bean class=
"net.sf.json.filters.OrPropertyFilter">
227 <bean class=
"eu.etaxonomy.cdm.remote.json.util.InitializedHibernatePropertyFilter" />
229 <constructor-arg ref=
"genericApiCardinalityPropertyFilter">
233 <property name=
"jsonValueProcessors">
235 <entry key=
"org.hibernate.proxy.HibernateProxy">
237 class=
"eu.etaxonomy.cdm.remote.json.processor.value.HibernateJSONValueProcessor" />
239 <entry key=
"java.util.UUID">
241 class=
"eu.etaxonomy.cdm.remote.json.processor.value.UUIDJSONValueProcessor" />
243 <entry key=
"org.joda.time.DateTime">
245 class=
"eu.etaxonomy.cdm.remote.json.processor.value.DateTimeJSONValueProcessor" />
247 <entry key=
"java.util.Calendar">
249 class=
"eu.etaxonomy.cdm.remote.json.processor.value.CalendarJSONValueProcessor" />
251 <entry key=
"org.joda.time.Partial">
253 class=
"eu.etaxonomy.cdm.remote.json.processor.value.PartialJSONValueProcessor" />
255 <entry key=
"java.lang.Class">
257 class=
"eu.etaxonomy.cdm.remote.json.processor.value.ClassJSONValueProcessor" />
259 <entry key=
"java.util.Map">
260 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.value.MapJSONValueProcessor" />
262 <entry key=
"java.net.URI">
263 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.value.URIJSONValueProcessor"/>
267 <property name=
"ignoreDefaultExcludes" value=
"true" />
268 <property name=
"excludes">
269 <list value-type=
"java.lang.String">
270 <value>declaringClass
</value><!-- DefaultExclude -->
271 <value>metaClass
</value><!-- DefaultExclude -->
273 <value>cacheStrategy
</value>
274 <value>createdBy
</value>
275 <value>updatedBy
</value>
281 =================================================
282 configuration for RESTful portal service
283 =================================================
286 <bean name=
"jsonConfigPortal" class=
"eu.etaxonomy.cdm.remote.json.JsonConfigFactoryBean"
288 <property name=
"jsonBeanProcessorMatcher">
290 class=
"eu.etaxonomy.cdm.remote.json.processor.matcher.CdmProxyBeanProcessorMatcher" />
292 <property name=
"jsonBeanProcessors">
294 <entry key=
"org.hibernate.proxy.HibernateProxy">
296 class=
"eu.etaxonomy.cdm.remote.json.processor.bean.HibernateProxyBeanProcessor" />
298 <entry key=
"eu.etaxonomy.cdm.model.taxon.Taxon">
299 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.TaxonBeanProcessor" />
301 <entry key=
"eu.etaxonomy.cdm.model.name.TaxonNameBase">
303 class=
"eu.etaxonomy.cdm.remote.json.processor.bean.TaxonNameBaseBeanProcessor" />
305 <entry key=
"eu.etaxonomy.cdm.model.name.NameRelationship">
307 class=
"eu.etaxonomy.cdm.remote.json.processor.bean.NameRelationshipBeanProcessor" />
309 <entry key=
"eu.etaxonomy.cdm.model.taxon.TaxonRelationship">
311 class=
"eu.etaxonomy.cdm.remote.json.processor.bean.TaxonRelationshipBeanProcessor" />
313 <entry key=
"eu.etaxonomy.cdm.model.common.TermBase">
315 class=
"eu.etaxonomy.cdm.remote.json.processor.bean.TermBaseBeanProcessor">
316 <property name=
"replaceRepresentations" value=
"true" />
317 <property name=
"excludes">
318 <set value-type=
"java.lang.String">
319 <value>infraGenericMarker
</value><!-- FIXME leads to IllegalStateException if not excluded -->
320 <value>partOf
</value><!-- DefinedTermBase -->
321 <value>kindOf
</value><!-- DefinedTermBase -->
322 <value>includes
</value><!-- DefinedTermBase -->
323 <value>generalizationOf
</value><!-- DefinedTermBase -->
324 <value>vocabulary
</value><!-- DefinedTermBase -->
326 FIXME must exclude partOf, kindOf, includes, generalizationOf .. to
327 avoid class cast or lazy loading exceptions in TDWG Areas
333 <entry key=
"eu.etaxonomy.cdm.model.media.Media">
334 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.MediaBeanProcessor">
335 <property name=
"replaceTitle" value=
"true" />
336 <property name=
"replaceDescription" value=
"true" />
339 <entry key=
"eu.etaxonomy.cdm.model.reference.Reference">
340 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.ReferenceBaseBeanProcessor"/>
342 <entry key=
"eu.etaxonomy.cdm.model.description.TaxonNameDescription">
343 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.TaxonNameDescriptionBeanProcessor">
344 <property name=
"excludes">
345 <set value-type=
"java.lang.String">
346 <value>taxonName
</value>
351 <entry key=
"eu.etaxonomy.cdm.api.facade.DerivedUnitFacade">
352 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.DerivedUnitFacadeBeanProcessor"/>
354 <entry key=
"eu.etaxonomy.cdm.model.location.Point">
355 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.PointBeanProcessor"/>
357 <entry key=
"eu.etaxonomy.cdm.model.agent.TeamOrPersonBase">
358 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.TeamOrPersonBaseBeanProcessor" />
360 <entry key=
"org.apache.lucene.document.Document">
361 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.LuceneDocumentBeanProcessor" />
363 <entry key=
"eu.etaxonomy.cdm.common.TreeNode">
364 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.TreeNodeBeanProcessor" />
366 <entry key=
"eu.etaxonomy.cdm.model.description.DescriptionElementBase">
367 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.DescriptionElementBeanProcessor">
368 <property name=
"replaceMultilanguageText" value=
"true" />
371 <entry key=
"eu.etaxonomy.cdm.model.description.StateData">
372 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.StateDataBeanProcessor">
373 <property name=
"replaceMultilanguageText" value=
"true" />
378 <property name=
"jsonPropertyFilter">
379 <bean class=
"eu.etaxonomy.cdm.remote.json.util.InitializedHibernatePropertyFilter" />
381 <property name=
"jsonValueProcessors">
383 <entry key=
"org.hibernate.proxy.HibernateProxy">
385 class=
"eu.etaxonomy.cdm.remote.json.processor.value.HibernateJSONValueProcessor" />
387 <entry key=
"java.util.UUID">
389 class=
"eu.etaxonomy.cdm.remote.json.processor.value.UUIDJSONValueProcessor" />
391 <entry key=
"org.joda.time.DateTime">
393 class=
"eu.etaxonomy.cdm.remote.json.processor.value.DateTimeJSONValueProcessor" />
395 <entry key=
"java.util.Calendar">
397 class=
"eu.etaxonomy.cdm.remote.json.processor.value.CalendarJSONValueProcessor" />
399 <entry key=
"org.joda.time.Partial">
401 class=
"eu.etaxonomy.cdm.remote.json.processor.value.PartialJSONValueProcessor" />
403 <entry key=
"java.lang.Class">
405 class=
"eu.etaxonomy.cdm.remote.json.processor.value.ClassJSONValueProcessor" />
407 <entry key=
"java.util.Map">
408 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.value.MapJSONValueProcessor" />
410 <entry key=
"java.net.URI">
411 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.value.URIJSONValueProcessor"/>
415 <property name=
"ignoreDefaultExcludes" value=
"true" />
416 <property name=
"excludes">
417 <list value-type=
"java.lang.String">
418 <value>declaringClass
</value><!-- DefaultExclude -->
419 <value>metaClass
</value><!-- DefaultExclude -->
423 see #3347 (services and REST service controller for molecular classes implemented)
424 <value>annotations</value>
425 <value>markers</value>
427 <value>cacheStrategy
</value>
428 <value>createdBy
</value>
429 <value>updatedBy
</value>
430 <value>inDescription
</value>
436 =================================================
437 default configuration name catalogue service
438 =================================================
440 <bean name=
"nameCatalogueJsonConfig" class=
"eu.etaxonomy.cdm.remote.json.JsonConfigFactoryBean"
442 <property name=
"jsonPropertyFilter">
443 <bean class=
"net.sf.json.filters.OrPropertyFilter">
445 <bean class=
"eu.etaxonomy.cdm.remote.json.util.InitializedHibernatePropertyFilter" />
447 <constructor-arg ref=
"nameCatalogueApiCardinalityPropertyFilter">
451 <property name=
"jsonValueProcessors">
453 <entry key=
"org.hibernate.proxy.HibernateProxy">
455 class=
"eu.etaxonomy.cdm.remote.json.processor.value.HibernateJSONValueProcessor" />
457 <entry key=
"java.util.UUID">
459 class=
"eu.etaxonomy.cdm.remote.json.processor.value.UUIDJSONValueProcessor" />
461 <entry key=
"org.joda.time.DateTime">
463 class=
"eu.etaxonomy.cdm.remote.json.processor.value.DateTimeJSONValueProcessor" />
465 <entry key=
"java.util.Calendar">
467 class=
"eu.etaxonomy.cdm.remote.json.processor.value.CalendarJSONValueProcessor" />
469 <entry key=
"org.joda.time.Partial">
471 class=
"eu.etaxonomy.cdm.remote.json.processor.value.PartialJSONValueProcessor" />
473 <entry key=
"java.util.Map">
474 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.value.MapJSONValueProcessor" />
476 <entry key=
"java.net.URI">
477 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.value.URIJSONValueProcessor"/>
482 <property name=
"ignoreDefaultExcludes" value=
"true" />
483 <property name=
"excludes">
484 <list value-type=
"java.lang.String">
486 <value>declaringClass
</value><!-- DefaultExclude -->
487 <value>metaClass
</value><!-- DefaultExclude -->
489 <value>cacheStrategy
</value>
490 <value>createdBy
</value>
491 <value>updatedBy
</value>