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
12 =================================================
13 default configuration for RESTful read(/write) service
14 =================================================
16 <bean name=
"jsonConfig" class=
"eu.etaxonomy.cdm.remote.json.JsonConfigFactoryBean"
18 <property name=
"jsonBeanProcessorMatcher">
20 class=
"eu.etaxonomy.cdm.remote.json.processor.matcher.CdmProxyBeanProcessorMatcher" />
22 <property name=
"jsonBeanProcessors">
24 <entry key=
"org.hibernate.proxy.HibernateProxy">
25 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.HibernateProxyBeanProcessor" />
27 <entry key=
"eu.etaxonomy.cdm.model.common.TermBase">
28 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.TermBaseBeanProcessor">
29 <property name=
"excludes">
30 <set value-type=
"java.lang.String">
31 <value>partOf
</value><!-- FIXME exclude partOf to avoid lazy loading exceptions -->
32 <value>kindOf
</value><!-- FIXME exclude kindOf to avoid lazy loading exceptions -->
33 <value>infraGenericMarker
</value><!-- FIXME leads to IllegalStateException if not excluded -->
38 <entry key=
"eu.etaxonomy.cdm.model.description.TextData">
39 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.TextDataBeanProcessor" />
41 <entry key=
"eu.etaxonomy.cdm.model.taxon.TaxonNode">
42 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.TaxonNodeBeanProcessor" />
44 <entry key=
"eu.etaxonomy.cdm.model.reference.ReferenceBase">
45 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.ReferenceBaseBeanProcessor"/>
48 <entry key=
"eu.etaxonomy.cdm.model.name.TypeDesignationBase">
49 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.TypeDesignationBaseBeanProcessor"/>
54 <property name=
"jsonPropertyFilter">
55 <bean class=
"net.sf.json.filters.OrPropertyFilter">
57 <bean class=
"eu.etaxonomy.cdm.remote.json.util.InitializedHibernatePropertyFilter" />
60 <bean class=
"eu.etaxonomy.cdm.remote.json.util.CardinalityPropertyFilter">
61 <property name=
"includeToOneRelations" value=
"false" />
62 <property name=
"includeToManyRelations" value=
"false" />
63 <property name=
"exceptions">
65 <value>FeatureTree.root
</value>
66 <value>FeatureNode.children
</value>
67 <value>FeatureNode.feature
</value>
68 <value>TreeNode.data
</value>
69 <value>Media.representations
</value>
70 <value>MediaRepresentation.parts
</value>
71 <value>TreeNode.data
</value>
73 <!-- CardinalityPropertyFilter should allow defining acceptions for abstract super classes : -->
74 <!-- <value>eu.etaxonomy.cdm.model.description.DescriptionElementBase.feature</value> -->
76 <value>TextData.feature
</value>
77 <value>CategoricalData.feature
</value>
78 <value>CommonTaxonName.feature
</value>
79 <value>Distribution.feature
</value>
80 <value>IndividualsAssociation.feature
</value>
81 <value>QuantitativeData.feature
</value>
82 <value>TaxonInteraction.feature
</value>
83 <value>TextData.feature
</value>
90 <property name=
"jsonValueProcessors">
92 <entry key=
"org.hibernate.proxy.HibernateProxy">
94 class=
"eu.etaxonomy.cdm.remote.json.processor.value.HibernateJSONValueProcessor" />
96 <entry key=
"java.util.UUID">
98 class=
"eu.etaxonomy.cdm.remote.json.processor.value.UUIDJSONValueProcessor" />
100 <entry key=
"org.joda.time.DateTime">
102 class=
"eu.etaxonomy.cdm.remote.json.processor.value.DateTimeJSONValueProcessor" />
104 <entry key=
"java.util.Calendar">
106 class=
"eu.etaxonomy.cdm.remote.json.processor.value.CalendarJSONValueProcessor" />
108 <entry key=
"org.joda.time.Partial">
110 class=
"eu.etaxonomy.cdm.remote.json.processor.value.PartialJSONValueProcessor" />
112 <entry key=
"java.lang.Class">
114 class=
"eu.etaxonomy.cdm.remote.json.processor.value.ClassJSONValueProcessor" />
116 <entry key=
"java.util.Map">
117 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.value.MapJSONValueProcessor" />
121 <property name=
"ignoreDefaultExcludes" value=
"true" />
122 <property name=
"excludes">
123 <list value-type=
"java.lang.String">
124 <value>declaringClass
</value><!-- DefaultExclude -->
125 <value>metaClass
</value><!-- DefaultExclude -->
127 <value>cacheStrategy
</value>
128 <value>createdBy
</value>
129 <value>updatedBy
</value>
135 =================================================
136 configuration for RESTful taxonomy service
137 =================================================
139 <bean name=
"jsonConfigTaxonomy" class=
"eu.etaxonomy.cdm.remote.json.JsonConfigFactoryBean"
141 <property name=
"jsonBeanProcessorMatcher">
143 class=
"eu.etaxonomy.cdm.remote.json.processor.matcher.HibernateProxyBeanProcessorMatcher" />
145 <property name=
"jsonBeanProcessors">
147 <entry key=
"org.hibernate.proxy.HibernateProxy">
149 class=
"eu.etaxonomy.cdm.remote.json.processor.bean.HibernateProxyBeanProcessor" />
151 <entry key=
"eu.etaxonomy.cdm.model.taxon.TaxonNode">
153 class=
"eu.etaxonomy.cdm.remote.json.processor.bean.TaxonNodeDaoBeanProcessor" />
157 <property name=
"jsonPropertyFilter">
158 <bean class=
"eu.etaxonomy.cdm.remote.json.util.InitializedHibernatePropertyFilter" />
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" />
191 <property name=
"ignoreDefaultExcludes" value=
"true" />
192 <property name=
"excludes">
193 <list value-type=
"java.lang.String">
194 <value>declaringClass
</value><!-- DefaultExclude -->
195 <value>metaClass
</value><!-- DefaultExclude -->
197 <value>cacheStrategy
</value>
198 <value>createdBy
</value>
199 <value>updatedBy
</value>
205 =================================================
206 configuration for RESTful portal service
207 =================================================
210 <bean name=
"jsonConfigPortal" class=
"eu.etaxonomy.cdm.remote.json.JsonConfigFactoryBean"
212 <property name=
"jsonBeanProcessorMatcher">
214 class=
"eu.etaxonomy.cdm.remote.json.processor.matcher.CdmProxyBeanProcessorMatcher" />
216 <property name=
"jsonBeanProcessors">
218 <entry key=
"org.hibernate.proxy.HibernateProxy">
220 class=
"eu.etaxonomy.cdm.remote.json.processor.bean.HibernateProxyBeanProcessor" />
222 <entry key=
"eu.etaxonomy.cdm.model.taxon.Taxon">
223 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.TaxonBeanProcessor" />
225 <entry key=
"eu.etaxonomy.cdm.model.name.TaxonNameBase">
227 class=
"eu.etaxonomy.cdm.remote.json.processor.bean.TaxonNameBaseBeanProcessor" />
229 <entry key=
"eu.etaxonomy.cdm.model.name.NameRelationship">
231 class=
"eu.etaxonomy.cdm.remote.json.processor.bean.NameRelationshipBeanProcessor" />
233 <entry key=
"eu.etaxonomy.cdm.model.taxon.TaxonRelationship">
235 class=
"eu.etaxonomy.cdm.remote.json.processor.bean.TaxonRelationshipBeanProcessor" />
237 <entry key=
"eu.etaxonomy.cdm.model.common.TermBase">
239 class=
"eu.etaxonomy.cdm.remote.json.processor.bean.TermBaseBeanProcessor">
240 <property name=
"replaceRepresentations" value=
"true" />
241 <property name=
"excludes">
242 <set value-type=
"java.lang.String">
243 <value>infraGenericMarker
</value><!-- FIXME leads to IllegalStateException if not excluded -->
244 <value>partOf
</value><!-- DefinedTermBase -->
245 <value>kindOf
</value><!-- DefinedTermBase -->
246 <value>includes
</value><!-- DefinedTermBase -->
247 <value>generalizationOf
</value><!-- DefinedTermBase -->
248 <value>vocabulary
</value><!-- DefinedTermBase -->
250 FIXME must exclude partOf, kindOf, includes, generalizationOf .. to
251 avoid class cast or lazy loading exceptions in TDWG Areas
257 <entry key=
"eu.etaxonomy.cdm.model.description.TextData">
259 class=
"eu.etaxonomy.cdm.remote.json.processor.bean.TextDataBeanProcessor">
260 <property name=
"replaceMultilanguageText" value=
"true" />
263 <entry key=
"eu.etaxonomy.cdm.model.media.Media">
264 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.MediaBeanProcessor">
265 <property name=
"replaceTitle" value=
"true" />
266 <property name=
"replaceDescription" value=
"true" />
269 <entry key=
"eu.etaxonomy.cdm.model.reference.ReferenceBase">
270 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.ReferenceBaseBeanProcessor"/>
272 <entry key=
"eu.etaxonomy.cdm.model.description.TaxonNameDescription">
273 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.TaxonNameDescriptionBeanProcessor">
274 <property name=
"excludes">
275 <set value-type=
"java.lang.String">
276 <value>taxonName
</value>
281 <entry key=
"eu.etaxonomy.cdm.api.facade.DerivedUnitFacade">
282 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.DerivedUnitFacadeBeanProcessor"/>
284 <entry key=
"eu.etaxonomy.cdm.model.location.Point">
285 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.bean.PointBeanProcessor"/>
289 <property name=
"jsonPropertyFilter">
290 <bean class=
"eu.etaxonomy.cdm.remote.json.util.InitializedHibernatePropertyFilter" />
292 <property name=
"jsonValueProcessors">
294 <entry key=
"org.hibernate.proxy.HibernateProxy">
296 class=
"eu.etaxonomy.cdm.remote.json.processor.value.HibernateJSONValueProcessor" />
298 <entry key=
"java.util.UUID">
300 class=
"eu.etaxonomy.cdm.remote.json.processor.value.UUIDJSONValueProcessor" />
302 <entry key=
"org.joda.time.DateTime">
304 class=
"eu.etaxonomy.cdm.remote.json.processor.value.DateTimeJSONValueProcessor" />
306 <entry key=
"java.util.Calendar">
308 class=
"eu.etaxonomy.cdm.remote.json.processor.value.CalendarJSONValueProcessor" />
310 <entry key=
"org.joda.time.Partial">
312 class=
"eu.etaxonomy.cdm.remote.json.processor.value.PartialJSONValueProcessor" />
314 <entry key=
"java.lang.Class">
316 class=
"eu.etaxonomy.cdm.remote.json.processor.value.ClassJSONValueProcessor" />
318 <entry key=
"java.util.Map">
319 <bean class=
"eu.etaxonomy.cdm.remote.json.processor.value.MapJSONValueProcessor" />
323 <property name=
"ignoreDefaultExcludes" value=
"true" />
324 <property name=
"excludes">
325 <list value-type=
"java.lang.String">
326 <value>declaringClass
</value><!-- DefaultExclude -->
327 <value>metaClass
</value><!-- DefaultExclude -->
329 <value>annotations
</value>
330 <value>cacheStrategy
</value>
331 <value>markers
</value>
332 <value>createdBy
</value>
333 <value>updatedBy
</value>
334 <value>inDescription
</value>