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.TaxonNameBase">
127 class=
"eu.etaxonomy.cdm.remote.json.processor.bean.TaxonNameBaseBeanProcessor">
128 <property name=
"skipTaggedName" value=
"true" />
131 <entry key=
"eu.etaxonomy.cdm.model.name.TypeDesignationBase">
132 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.TypeDesignationBaseBeanProcessor"/>
134 <entry key=
"eu.etaxonomy.cdm.model.description.KeyStatement">
135 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.KeyStatementBeanProcessor" />
137 <entry key=
"eu.etaxonomy.cdm.model.agent.TeamOrPersonBase">
138 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.TeamOrPersonBaseBeanProcessor" />
140 <entry key=
"eu.etaxonomy.cdm.model.description.DescriptionElementBase">
141 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.DescriptionElementBeanProcessor" />
143 <entry key=
"eu.etaxonomy.cdm.model.description.StateData">
144 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.StateDataBeanProcessor" />
146 <entry key=
"org.apache.lucene.document.Document">
147 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.LuceneDocumentBeanProcessor" />
151 <property name=
"jsonPropertyFilter">
152 <bean class=
"net.sf.json.filters.OrPropertyFilter">
154 <bean class=
"eu.etaxonomy.cdm.remote.json.util.InitializedHibernatePropertyFilter" />
156 <constructor-arg ref=
"genericApiCardinalityPropertyFilter">
160 <property name=
"jsonValueProcessors">
162 <entry key=
"org.hibernate.proxy.HibernateProxy">
164 class=
"eu.etaxonomy.cdm.remote.json.processor.value.HibernateJSONValueProcessor" />
166 <entry key=
"java.util.UUID">
168 class=
"eu.etaxonomy.cdm.remote.json.processor.value.UUIDJSONValueProcessor" />
170 <entry key=
"org.joda.time.DateTime">
172 class=
"eu.etaxonomy.cdm.remote.json.processor.value.DateTimeJSONValueProcessor" />
174 <entry key=
"java.util.Calendar">
176 class=
"eu.etaxonomy.cdm.remote.json.processor.value.CalendarJSONValueProcessor" />
178 <entry key=
"org.joda.time.Partial">
180 class=
"eu.etaxonomy.cdm.remote.json.processor.value.PartialJSONValueProcessor" />
182 <entry key=
"java.lang.Class">
184 class=
"eu.etaxonomy.cdm.remote.json.processor.value.ClassJSONValueProcessor" />
186 <entry key=
"java.util.Map">
187 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.value.MapJSONValueProcessor" />
189 <entry key=
"java.net.URI">
190 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.value.URIJSONValueProcessor"/>
194 <property name=
"ignoreDefaultExcludes" value=
"true" />
195 <property name=
"excludes">
196 <list value-type=
"java.lang.String">
197 <value>declaringClass
</value><!-- DefaultExclude -->
198 <value>metaClass
</value><!-- DefaultExclude -->
200 <value>cacheStrategy
</value>
201 <value>createdBy
</value>
202 <value>updatedBy
</value>
208 =================================================
209 configuration for RESTful classification service
210 =================================================
212 <bean name=
"jsonConfigClassification" class=
"eu.etaxonomy.cdm.remote.json.JsonConfigFactoryBean"
214 <property name=
"jsonBeanProcessorMatcher">
216 class=
"eu.etaxonomy.cdm.remote.json.processor.matcher.HibernateProxyBeanProcessorMatcher" />
218 <property name=
"jsonBeanProcessors">
220 <entry key=
"org.hibernate.proxy.HibernateProxy">
222 class=
"eu.etaxonomy.cdm.remote.json.processor.bean.HibernateProxyBeanProcessor" />
224 <entry key=
"eu.etaxonomy.cdm.model.taxon.TaxonNode">
226 class=
"eu.etaxonomy.cdm.remote.json.processor.bean.TaxonNodeDtoBeanProcessor" />
230 <property name=
"jsonPropertyFilter">
231 <bean class=
"net.sf.json.filters.OrPropertyFilter">
233 <bean class=
"eu.etaxonomy.cdm.remote.json.util.InitializedHibernatePropertyFilter" />
235 <constructor-arg ref=
"genericApiCardinalityPropertyFilter">
239 <property name=
"jsonValueProcessors">
241 <entry key=
"org.hibernate.proxy.HibernateProxy">
243 class=
"eu.etaxonomy.cdm.remote.json.processor.value.HibernateJSONValueProcessor" />
245 <entry key=
"java.util.UUID">
247 class=
"eu.etaxonomy.cdm.remote.json.processor.value.UUIDJSONValueProcessor" />
249 <entry key=
"org.joda.time.DateTime">
251 class=
"eu.etaxonomy.cdm.remote.json.processor.value.DateTimeJSONValueProcessor" />
253 <entry key=
"java.util.Calendar">
255 class=
"eu.etaxonomy.cdm.remote.json.processor.value.CalendarJSONValueProcessor" />
257 <entry key=
"org.joda.time.Partial">
259 class=
"eu.etaxonomy.cdm.remote.json.processor.value.PartialJSONValueProcessor" />
261 <entry key=
"java.lang.Class">
263 class=
"eu.etaxonomy.cdm.remote.json.processor.value.ClassJSONValueProcessor" />
265 <entry key=
"java.util.Map">
266 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.value.MapJSONValueProcessor" />
268 <entry key=
"java.net.URI">
269 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.value.URIJSONValueProcessor"/>
273 <property name=
"ignoreDefaultExcludes" value=
"true" />
274 <property name=
"excludes">
275 <list value-type=
"java.lang.String">
276 <value>declaringClass
</value><!-- DefaultExclude -->
277 <value>metaClass
</value><!-- DefaultExclude -->
279 <value>cacheStrategy
</value>
280 <value>createdBy
</value>
281 <value>updatedBy
</value>
287 =================================================
288 configuration for RESTful portal service
289 =================================================
292 <bean name=
"jsonConfigPortal" class=
"eu.etaxonomy.cdm.remote.json.JsonConfigFactoryBean"
294 <property name=
"jsonBeanProcessorMatcher">
296 class=
"eu.etaxonomy.cdm.remote.json.processor.matcher.CdmProxyBeanProcessorMatcher" />
298 <property name=
"jsonBeanProcessors">
300 <entry key=
"org.hibernate.proxy.HibernateProxy">
302 class=
"eu.etaxonomy.cdm.remote.json.processor.bean.HibernateProxyBeanProcessor" />
304 <entry key=
"eu.etaxonomy.cdm.model.taxon.TaxonBase">
305 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.TaxonBaseBeanProcessor" />
307 <entry key=
"eu.etaxonomy.cdm.model.name.TaxonNameBase">
309 class=
"eu.etaxonomy.cdm.remote.json.processor.bean.TaxonNameBaseBeanProcessor" />
311 <entry key=
"eu.etaxonomy.cdm.model.name.NameRelationship">
313 class=
"eu.etaxonomy.cdm.remote.json.processor.bean.NameRelationshipBeanProcessor" />
315 <entry key=
"eu.etaxonomy.cdm.model.taxon.TaxonRelationship">
317 class=
"eu.etaxonomy.cdm.remote.json.processor.bean.TaxonRelationshipBeanProcessor" />
319 <entry key=
"eu.etaxonomy.cdm.model.common.TermBase">
321 class=
"eu.etaxonomy.cdm.remote.json.processor.bean.TermBaseBeanProcessor">
322 <property name=
"replaceRepresentations" value=
"true" />
323 <property name=
"excludes">
324 <set value-type=
"java.lang.String">
325 <value>infraGenericMarker
</value><!-- FIXME leads to IllegalStateException if not excluded -->
326 <value>partOf
</value><!-- DefinedTermBase -->
327 <value>kindOf
</value><!-- DefinedTermBase -->
328 <value>includes
</value><!-- DefinedTermBase -->
329 <value>generalizationOf
</value><!-- DefinedTermBase -->
330 <value>vocabulary
</value><!-- DefinedTermBase -->
332 FIXME must exclude partOf, kindOf, includes, generalizationOf .. to
333 avoid class cast or lazy loading exceptions in TDWG Areas
339 <entry key=
"eu.etaxonomy.cdm.model.media.Media">
340 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.MediaBeanProcessor">
341 <property name=
"replaceTitle" value=
"true" />
342 <property name=
"replaceDescription" value=
"true" />
345 <entry key=
"eu.etaxonomy.cdm.model.reference.Reference">
346 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.ReferenceBaseBeanProcessor"/>
348 <entry key=
"eu.etaxonomy.cdm.model.description.TaxonNameDescription">
349 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.TaxonNameDescriptionBeanProcessor">
350 <property name=
"excludes">
351 <set value-type=
"java.lang.String">
352 <value>taxonName
</value>
357 <entry key=
"eu.etaxonomy.cdm.api.facade.DerivedUnitFacade">
358 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.DerivedUnitFacadeBeanProcessor"/>
360 <entry key=
"eu.etaxonomy.cdm.model.location.Point">
361 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.PointBeanProcessor"/>
363 <entry key=
"eu.etaxonomy.cdm.model.agent.TeamOrPersonBase">
364 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.TeamOrPersonBaseBeanProcessor" />
366 <entry key=
"org.apache.lucene.document.Document">
367 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.LuceneDocumentBeanProcessor" />
369 <entry key=
"eu.etaxonomy.cdm.common.TreeNode">
370 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.TreeNodeBeanProcessor" />
372 <entry key=
"eu.etaxonomy.cdm.model.description.DescriptionElementBase">
373 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.DescriptionElementBeanProcessor">
374 <property name=
"replaceMultilanguageText" value=
"true" />
377 <entry key=
"eu.etaxonomy.cdm.model.description.StateData">
378 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.StateDataBeanProcessor">
379 <property name=
"replaceMultilanguageText" value=
"true" />
384 <property name=
"jsonPropertyFilter">
385 <bean class=
"eu.etaxonomy.cdm.remote.json.util.InitializedHibernatePropertyFilter" />
387 <property name=
"jsonValueProcessors">
389 <entry key=
"org.hibernate.proxy.HibernateProxy">
391 class=
"eu.etaxonomy.cdm.remote.json.processor.value.HibernateJSONValueProcessor" />
393 <entry key=
"java.util.UUID">
395 class=
"eu.etaxonomy.cdm.remote.json.processor.value.UUIDJSONValueProcessor" />
397 <entry key=
"org.joda.time.DateTime">
399 class=
"eu.etaxonomy.cdm.remote.json.processor.value.DateTimeJSONValueProcessor" />
401 <entry key=
"java.util.Calendar">
403 class=
"eu.etaxonomy.cdm.remote.json.processor.value.CalendarJSONValueProcessor" />
405 <entry key=
"org.joda.time.Partial">
407 class=
"eu.etaxonomy.cdm.remote.json.processor.value.PartialJSONValueProcessor" />
409 <entry key=
"java.lang.Class">
411 class=
"eu.etaxonomy.cdm.remote.json.processor.value.ClassJSONValueProcessor" />
413 <entry key=
"java.util.Map">
414 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.value.MapJSONValueProcessor" />
416 <entry key=
"java.net.URI">
417 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.value.URIJSONValueProcessor"/>
421 <property name=
"ignoreDefaultExcludes" value=
"true" />
422 <property name=
"excludes">
423 <list value-type=
"java.lang.String">
424 <value>declaringClass
</value><!-- DefaultExclude -->
425 <value>metaClass
</value><!-- DefaultExclude -->
429 see #3347 (services and REST service controller for molecular classes implemented)
430 <value>annotations</value>
431 <value>markers</value>
433 <value>cacheStrategy
</value>
434 <value>createdBy
</value>
435 <value>updatedBy
</value>
436 <value>inDescription
</value>
442 =================================================
443 default configuration name catalogue service
444 =================================================
446 <bean name=
"nameCatalogueJsonConfig" class=
"eu.etaxonomy.cdm.remote.json.JsonConfigFactoryBean"
448 <property name=
"jsonPropertyFilter">
449 <bean class=
"net.sf.json.filters.OrPropertyFilter">
451 <bean class=
"eu.etaxonomy.cdm.remote.json.util.InitializedHibernatePropertyFilter" />
453 <constructor-arg ref=
"nameCatalogueApiCardinalityPropertyFilter">
457 <property name=
"jsonValueProcessors">
459 <entry key=
"org.hibernate.proxy.HibernateProxy">
461 class=
"eu.etaxonomy.cdm.remote.json.processor.value.HibernateJSONValueProcessor" />
463 <entry key=
"java.util.UUID">
465 class=
"eu.etaxonomy.cdm.remote.json.processor.value.UUIDJSONValueProcessor" />
467 <entry key=
"org.joda.time.DateTime">
469 class=
"eu.etaxonomy.cdm.remote.json.processor.value.DateTimeJSONValueProcessor" />
471 <entry key=
"java.util.Calendar">
473 class=
"eu.etaxonomy.cdm.remote.json.processor.value.CalendarJSONValueProcessor" />
475 <entry key=
"org.joda.time.Partial">
477 class=
"eu.etaxonomy.cdm.remote.json.processor.value.PartialJSONValueProcessor" />
479 <entry key=
"java.util.Map">
480 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.value.MapJSONValueProcessor" />
482 <entry key=
"java.net.URI">
483 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.value.URIJSONValueProcessor"/>
488 <property name=
"ignoreDefaultExcludes" value=
"true" />
489 <property name=
"excludes">
490 <list value-type=
"java.lang.String">
492 <value>declaringClass
</value><!-- DefaultExclude -->
493 <value>metaClass
</value><!-- DefaultExclude -->
495 <value>cacheStrategy
</value>
496 <value>createdBy
</value>
497 <value>updatedBy
</value>
502 <bean name=
"occurrenceCatalogueJsonConfig" class=
"eu.etaxonomy.cdm.remote.json.JsonConfigFactoryBean"
504 <property name=
"jsonPropertyFilter">
505 <bean class=
"net.sf.json.filters.OrPropertyFilter">
507 <bean class=
"eu.etaxonomy.cdm.remote.json.util.InitializedHibernatePropertyFilter" />
509 <constructor-arg ref=
"nameCatalogueApiCardinalityPropertyFilter">
513 <property name=
"jsonValueProcessors">
515 <entry key=
"org.hibernate.proxy.HibernateProxy">
517 class=
"eu.etaxonomy.cdm.remote.json.processor.value.HibernateJSONValueProcessor" />
519 <entry key=
"java.util.UUID">
521 class=
"eu.etaxonomy.cdm.remote.json.processor.value.UUIDJSONValueProcessor" />
523 <entry key=
"org.joda.time.DateTime">
525 class=
"eu.etaxonomy.cdm.remote.json.processor.value.DateTimeJSONValueProcessor" />
527 <entry key=
"java.util.Calendar">
529 class=
"eu.etaxonomy.cdm.remote.json.processor.value.CalendarJSONValueProcessor" />
531 <entry key=
"org.joda.time.Partial">
533 class=
"eu.etaxonomy.cdm.remote.json.processor.value.PartialJSONValueProcessor" />
535 <entry key=
"java.util.Map">
536 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.value.MapJSONValueProcessor" />
538 <entry key=
"java.net.URI">
539 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.value.URIJSONValueProcessor"/>
544 <property name=
"ignoreDefaultExcludes" value=
"true" />
545 <property name=
"excludes">
546 <list value-type=
"java.lang.String">
548 <value>declaringClass
</value><!-- DefaultExclude -->
549 <value>metaClass
</value><!-- DefaultExclude -->
551 <value>cacheStrategy
</value>
552 <value>createdBy
</value>
553 <value>updatedBy
</value>