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.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.description.TextData">
120 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.TextDataBeanProcessor" />
122 <entry key=
"eu.etaxonomy.cdm.model.taxon.TaxonNode">
123 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.TaxonNodeBeanProcessor" />
125 <entry key=
"eu.etaxonomy.cdm.model.reference.Reference">
126 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.ReferenceBaseBeanProcessor"/>
128 <entry key=
"eu.etaxonomy.cdm.model.name.TypeDesignationBase">
129 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.TypeDesignationBaseBeanProcessor"/>
131 <entry key=
"eu.etaxonomy.cdm.model.description.KeyStatement">
132 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.KeyStatementBeanProcessor" />
134 <entry key=
"eu.etaxonomy.cdm.model.agent.TeamOrPersonBase">
135 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.TeamOrPersonBaseBeanProcessor" />
137 <entry key=
"org.apache.lucene.document.Document">
138 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.LuceneDocumentBeanProcessor" />
142 <property name=
"jsonPropertyFilter">
143 <bean class=
"net.sf.json.filters.OrPropertyFilter">
145 <bean class=
"eu.etaxonomy.cdm.remote.json.util.InitializedHibernatePropertyFilter" />
147 <constructor-arg ref=
"genericApiCardinalityPropertyFilter">
151 <property name=
"jsonValueProcessors">
153 <entry key=
"org.hibernate.proxy.HibernateProxy">
155 class=
"eu.etaxonomy.cdm.remote.json.processor.value.HibernateJSONValueProcessor" />
157 <entry key=
"java.util.UUID">
159 class=
"eu.etaxonomy.cdm.remote.json.processor.value.UUIDJSONValueProcessor" />
161 <entry key=
"org.joda.time.DateTime">
163 class=
"eu.etaxonomy.cdm.remote.json.processor.value.DateTimeJSONValueProcessor" />
165 <entry key=
"java.util.Calendar">
167 class=
"eu.etaxonomy.cdm.remote.json.processor.value.CalendarJSONValueProcessor" />
169 <entry key=
"org.joda.time.Partial">
171 class=
"eu.etaxonomy.cdm.remote.json.processor.value.PartialJSONValueProcessor" />
173 <entry key=
"java.lang.Class">
175 class=
"eu.etaxonomy.cdm.remote.json.processor.value.ClassJSONValueProcessor" />
177 <entry key=
"java.util.Map">
178 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.value.MapJSONValueProcessor" />
180 <entry key=
"java.net.URI">
181 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.value.URIJSONValueProcessor"/>
185 <property name=
"ignoreDefaultExcludes" value=
"true" />
186 <property name=
"excludes">
187 <list value-type=
"java.lang.String">
188 <value>declaringClass
</value><!-- DefaultExclude -->
189 <value>metaClass
</value><!-- DefaultExclude -->
191 <value>cacheStrategy
</value>
192 <value>createdBy
</value>
193 <value>updatedBy
</value>
199 =================================================
200 configuration for RESTful classification service
201 =================================================
203 <bean name=
"jsonConfigClassification" class=
"eu.etaxonomy.cdm.remote.json.JsonConfigFactoryBean"
205 <property name=
"jsonBeanProcessorMatcher">
207 class=
"eu.etaxonomy.cdm.remote.json.processor.matcher.HibernateProxyBeanProcessorMatcher" />
209 <property name=
"jsonBeanProcessors">
211 <entry key=
"org.hibernate.proxy.HibernateProxy">
213 class=
"eu.etaxonomy.cdm.remote.json.processor.bean.HibernateProxyBeanProcessor" />
215 <entry key=
"eu.etaxonomy.cdm.model.taxon.TaxonNode">
217 class=
"eu.etaxonomy.cdm.remote.json.processor.bean.TaxonNodeDaoBeanProcessor" />
221 <property name=
"jsonPropertyFilter">
222 <bean class=
"net.sf.json.filters.OrPropertyFilter">
224 <bean class=
"eu.etaxonomy.cdm.remote.json.util.InitializedHibernatePropertyFilter" />
226 <constructor-arg ref=
"genericApiCardinalityPropertyFilter">
230 <property name=
"jsonValueProcessors">
232 <entry key=
"org.hibernate.proxy.HibernateProxy">
234 class=
"eu.etaxonomy.cdm.remote.json.processor.value.HibernateJSONValueProcessor" />
236 <entry key=
"java.util.UUID">
238 class=
"eu.etaxonomy.cdm.remote.json.processor.value.UUIDJSONValueProcessor" />
240 <entry key=
"org.joda.time.DateTime">
242 class=
"eu.etaxonomy.cdm.remote.json.processor.value.DateTimeJSONValueProcessor" />
244 <entry key=
"java.util.Calendar">
246 class=
"eu.etaxonomy.cdm.remote.json.processor.value.CalendarJSONValueProcessor" />
248 <entry key=
"org.joda.time.Partial">
250 class=
"eu.etaxonomy.cdm.remote.json.processor.value.PartialJSONValueProcessor" />
252 <entry key=
"java.lang.Class">
254 class=
"eu.etaxonomy.cdm.remote.json.processor.value.ClassJSONValueProcessor" />
256 <entry key=
"java.util.Map">
257 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.value.MapJSONValueProcessor" />
259 <entry key=
"java.net.URI">
260 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.value.URIJSONValueProcessor"/>
264 <property name=
"ignoreDefaultExcludes" value=
"true" />
265 <property name=
"excludes">
266 <list value-type=
"java.lang.String">
267 <value>declaringClass
</value><!-- DefaultExclude -->
268 <value>metaClass
</value><!-- DefaultExclude -->
270 <value>cacheStrategy
</value>
271 <value>createdBy
</value>
272 <value>updatedBy
</value>
278 =================================================
279 configuration for RESTful portal service
280 =================================================
283 <bean name=
"jsonConfigPortal" class=
"eu.etaxonomy.cdm.remote.json.JsonConfigFactoryBean"
285 <property name=
"jsonBeanProcessorMatcher">
287 class=
"eu.etaxonomy.cdm.remote.json.processor.matcher.CdmProxyBeanProcessorMatcher" />
289 <property name=
"jsonBeanProcessors">
291 <entry key=
"org.hibernate.proxy.HibernateProxy">
293 class=
"eu.etaxonomy.cdm.remote.json.processor.bean.HibernateProxyBeanProcessor" />
295 <entry key=
"eu.etaxonomy.cdm.model.taxon.Taxon">
296 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.TaxonBeanProcessor" />
298 <entry key=
"eu.etaxonomy.cdm.model.name.TaxonNameBase">
300 class=
"eu.etaxonomy.cdm.remote.json.processor.bean.TaxonNameBaseBeanProcessor" />
302 <entry key=
"eu.etaxonomy.cdm.model.name.NameRelationship">
304 class=
"eu.etaxonomy.cdm.remote.json.processor.bean.NameRelationshipBeanProcessor" />
306 <entry key=
"eu.etaxonomy.cdm.model.taxon.TaxonRelationship">
308 class=
"eu.etaxonomy.cdm.remote.json.processor.bean.TaxonRelationshipBeanProcessor" />
310 <entry key=
"eu.etaxonomy.cdm.model.common.TermBase">
312 class=
"eu.etaxonomy.cdm.remote.json.processor.bean.TermBaseBeanProcessor">
313 <property name=
"replaceRepresentations" value=
"true" />
314 <property name=
"excludes">
315 <set value-type=
"java.lang.String">
316 <value>infraGenericMarker
</value><!-- FIXME leads to IllegalStateException if not excluded -->
317 <value>partOf
</value><!-- DefinedTermBase -->
318 <value>kindOf
</value><!-- DefinedTermBase -->
319 <value>includes
</value><!-- DefinedTermBase -->
320 <value>generalizationOf
</value><!-- DefinedTermBase -->
321 <value>vocabulary
</value><!-- DefinedTermBase -->
323 FIXME must exclude partOf, kindOf, includes, generalizationOf .. to
324 avoid class cast or lazy loading exceptions in TDWG Areas
330 <entry key=
"eu.etaxonomy.cdm.model.description.TextData">
332 class=
"eu.etaxonomy.cdm.remote.json.processor.bean.TextDataBeanProcessor">
333 <property name=
"replaceMultilanguageText" value=
"true" />
336 <entry key=
"eu.etaxonomy.cdm.model.media.Media">
337 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.MediaBeanProcessor">
338 <property name=
"replaceTitle" value=
"true" />
339 <property name=
"replaceDescription" value=
"true" />
342 <entry key=
"eu.etaxonomy.cdm.model.reference.Reference">
343 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.ReferenceBaseBeanProcessor"/>
345 <entry key=
"eu.etaxonomy.cdm.model.description.TaxonNameDescription">
346 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.TaxonNameDescriptionBeanProcessor">
347 <property name=
"excludes">
348 <set value-type=
"java.lang.String">
349 <value>taxonName
</value>
354 <entry key=
"eu.etaxonomy.cdm.api.facade.DerivedUnitFacade">
355 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.DerivedUnitFacadeBeanProcessor"/>
357 <entry key=
"eu.etaxonomy.cdm.model.location.Point">
358 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.PointBeanProcessor"/>
360 <entry key=
"eu.etaxonomy.cdm.model.agent.TeamOrPersonBase">
361 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.TeamOrPersonBaseBeanProcessor" />
363 <entry key=
"org.apache.lucene.document.Document">
364 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.LuceneDocumentBeanProcessor" />
368 <property name=
"jsonPropertyFilter">
369 <bean class=
"eu.etaxonomy.cdm.remote.json.util.InitializedHibernatePropertyFilter" />
371 <property name=
"jsonValueProcessors">
373 <entry key=
"org.hibernate.proxy.HibernateProxy">
375 class=
"eu.etaxonomy.cdm.remote.json.processor.value.HibernateJSONValueProcessor" />
377 <entry key=
"java.util.UUID">
379 class=
"eu.etaxonomy.cdm.remote.json.processor.value.UUIDJSONValueProcessor" />
381 <entry key=
"org.joda.time.DateTime">
383 class=
"eu.etaxonomy.cdm.remote.json.processor.value.DateTimeJSONValueProcessor" />
385 <entry key=
"java.util.Calendar">
387 class=
"eu.etaxonomy.cdm.remote.json.processor.value.CalendarJSONValueProcessor" />
389 <entry key=
"org.joda.time.Partial">
391 class=
"eu.etaxonomy.cdm.remote.json.processor.value.PartialJSONValueProcessor" />
393 <entry key=
"java.lang.Class">
395 class=
"eu.etaxonomy.cdm.remote.json.processor.value.ClassJSONValueProcessor" />
397 <entry key=
"java.util.Map">
398 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.value.MapJSONValueProcessor" />
400 <entry key=
"java.net.URI">
401 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.value.URIJSONValueProcessor"/>
405 <property name=
"ignoreDefaultExcludes" value=
"true" />
406 <property name=
"excludes">
407 <list value-type=
"java.lang.String">
408 <value>declaringClass
</value><!-- DefaultExclude -->
409 <value>metaClass
</value><!-- DefaultExclude -->
413 see #3347 (services and REST service controller for molecular classes implemented)
414 <value>annotations</value>
415 <value>markers</value>
417 <value>cacheStrategy
</value>
418 <value>createdBy
</value>
419 <value>updatedBy
</value>
420 <value>inDescription
</value>
426 =================================================
427 default configuration name catalogue service
428 =================================================
430 <bean name=
"nameCatalogueJsonConfig" class=
"eu.etaxonomy.cdm.remote.json.JsonConfigFactoryBean"
432 <property name=
"jsonPropertyFilter">
433 <bean class=
"net.sf.json.filters.OrPropertyFilter">
435 <bean class=
"eu.etaxonomy.cdm.remote.json.util.InitializedHibernatePropertyFilter" />
437 <constructor-arg ref=
"nameCatalogueApiCardinalityPropertyFilter">
441 <property name=
"jsonValueProcessors">
443 <entry key=
"org.hibernate.proxy.HibernateProxy">
445 class=
"eu.etaxonomy.cdm.remote.json.processor.value.HibernateJSONValueProcessor" />
447 <entry key=
"java.util.UUID">
449 class=
"eu.etaxonomy.cdm.remote.json.processor.value.UUIDJSONValueProcessor" />
451 <entry key=
"org.joda.time.DateTime">
453 class=
"eu.etaxonomy.cdm.remote.json.processor.value.DateTimeJSONValueProcessor" />
455 <entry key=
"java.util.Calendar">
457 class=
"eu.etaxonomy.cdm.remote.json.processor.value.CalendarJSONValueProcessor" />
459 <entry key=
"org.joda.time.Partial">
461 class=
"eu.etaxonomy.cdm.remote.json.processor.value.PartialJSONValueProcessor" />
463 <entry key=
"java.util.Map">
464 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.value.MapJSONValueProcessor" />
466 <entry key=
"java.net.URI">
467 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.value.URIJSONValueProcessor"/>
472 <property name=
"ignoreDefaultExcludes" value=
"true" />
473 <property name=
"excludes">
474 <list value-type=
"java.lang.String">
476 <value>declaringClass
</value><!-- DefaultExclude -->
477 <value>metaClass
</value><!-- DefaultExclude -->
479 <value>cacheStrategy
</value>
480 <value>createdBy
</value>
481 <value>updatedBy
</value>