deeper initialization of DerivationEvent
[cdmlib.git] / cdmlib-remote / src / main / resources / eu / etaxonomy / cdm / remote / json / jsonConfigurations.xml
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
9 ">
10
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">
15 <set>
16 <value>FeatureTree.root</value>
17 <value>FeatureNode.children</value>
18 <value>FeatureNode.feature</value>
19
20 <value>TreeNode.data</value>
21 <value>TreeNode.data</value>
22
23 <value>PolytomousKey.root</value>
24 <value>PolytomousKeyNode.children</value>
25 <value>PolytomousKeyNode.question</value>
26 <value>PolytomousKeyNode.feature</value>
27 <value>PolytomousKeyNode.statement</value>
28 <value>PolytomousKeyNode.modifyingText</value>
29
30 <value>Media.representations</value>
31 <value>MediaRepresentation.parts</value>
32
33 <value>Annotation.annotationType</value>
34
35 <value>DerivationEvent.derivatives</value>
36 <value>DerivationEvent.originals</value>
37
38 <!-- CardinalityPropertyFilter should allow defining exceptions for abstract super classes : -->
39 <!-- <value>eu.etaxonomy.cdm.model.description.DescriptionElementBase.feature</value> -->
40
41 <value>Synonym.sec</value>
42 <value>Taxon.sec</value>
43
44 <value>TextData.feature</value>
45 <value>CategoricalData.feature</value>
46 <value>CommonTaxonName.feature</value>
47 <value>Distribution.feature</value>
48 <value>IndividualsAssociation.feature</value>
49 <value>QuantitativeData.feature</value>
50 <value>TaxonInteraction.feature</value>
51 <value>TextData.feature</value>
52 <value>IdentifiableSource.citation</value>
53
54 <value>SearchResult.entity</value>
55 </set>
56 </property>
57 </bean>
58
59 <bean id="nameCatalogueApiCardinalityPropertyFilter" class="eu.etaxonomy.cdm.remote.json.util.CardinalityPropertyFilter">
60 <property name="includeToOneRelations" value="true" />
61 <property name="includeToManyRelations" value="true" />
62 <property name="exceptions">
63 <set>
64 </set>
65 </property>
66 </bean>
67
68 <!--
69 =================================================
70 default configuration for RESTful read(/write) service
71 =================================================
72 -->
73 <bean name="jsonConfig" class="eu.etaxonomy.cdm.remote.json.JsonConfigFactoryBean"
74 init-method="init">
75 <property name="jsonBeanProcessorMatcher">
76 <bean
77 class="eu.etaxonomy.cdm.remote.json.processor.matcher.CdmProxyBeanProcessorMatcher" />
78 </property>
79 <property name="jsonBeanProcessors">
80 <map>
81 <entry key="org.hibernate.proxy.HibernateProxy">
82 <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.HibernateProxyBeanProcessor" />
83 </entry>
84 <entry key="eu.etaxonomy.cdm.model.common.TermBase">
85 <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.TermBaseBeanProcessor">
86 <property name="excludes">
87 <set value-type="java.lang.String">
88 <value>partOf</value><!-- FIXME exclude partOf to avoid lazy loading exceptions -->
89 <value>kindOf</value><!-- FIXME exclude kindOf to avoid lazy loading exceptions -->
90 <value>infraGenericMarker</value><!-- FIXME leads to IllegalStateException if not excluded -->
91 </set>
92 </property>
93 </bean>
94 </entry>
95 <entry key="eu.etaxonomy.cdm.model.description.TextData">
96 <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.TextDataBeanProcessor" />
97 </entry>
98 <entry key="eu.etaxonomy.cdm.model.taxon.TaxonNode">
99 <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.TaxonNodeBeanProcessor" />
100 </entry>
101 <entry key="eu.etaxonomy.cdm.model.reference.Reference">
102 <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.ReferenceBaseBeanProcessor"/>
103 </entry>
104 <entry key="eu.etaxonomy.cdm.model.name.TypeDesignationBase">
105 <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.TypeDesignationBaseBeanProcessor"/>
106 </entry>
107 <entry key="eu.etaxonomy.cdm.model.description.KeyStatement">
108 <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.KeyStatementBeanProcessor" />
109 </entry>
110 <entry key="eu.etaxonomy.cdm.model.agent.TeamOrPersonBase">
111 <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.TeamOrPersonBaseBeanProcessor" />
112 </entry>
113 <entry key="org.apache.lucene.document.Document">
114 <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.LuceneDocumentBeanProcessor" />
115 </entry>
116 </map>
117 </property>
118 <property name="jsonPropertyFilter">
119 <bean class="net.sf.json.filters.OrPropertyFilter">
120 <constructor-arg>
121 <bean class="eu.etaxonomy.cdm.remote.json.util.InitializedHibernatePropertyFilter" />
122 </constructor-arg>
123 <constructor-arg ref="genericApiCardinalityPropertyFilter">
124 </constructor-arg>
125 </bean>
126 </property>
127 <property name="jsonValueProcessors">
128 <map>
129 <entry key="org.hibernate.proxy.HibernateProxy">
130 <bean
131 class="eu.etaxonomy.cdm.remote.json.processor.value.HibernateJSONValueProcessor" />
132 </entry>
133 <entry key="java.util.UUID">
134 <bean
135 class="eu.etaxonomy.cdm.remote.json.processor.value.UUIDJSONValueProcessor" />
136 </entry>
137 <entry key="org.joda.time.DateTime">
138 <bean
139 class="eu.etaxonomy.cdm.remote.json.processor.value.DateTimeJSONValueProcessor" />
140 </entry>
141 <entry key="java.util.Calendar">
142 <bean
143 class="eu.etaxonomy.cdm.remote.json.processor.value.CalendarJSONValueProcessor" />
144 </entry>
145 <entry key="org.joda.time.Partial">
146 <bean
147 class="eu.etaxonomy.cdm.remote.json.processor.value.PartialJSONValueProcessor" />
148 </entry>
149 <entry key="java.lang.Class">
150 <bean
151 class="eu.etaxonomy.cdm.remote.json.processor.value.ClassJSONValueProcessor" />
152 </entry>
153 <entry key="java.util.Map">
154 <bean class="eu.etaxonomy.cdm.remote.json.processor.value.MapJSONValueProcessor" />
155 </entry>
156 <entry key="java.net.URI">
157 <bean class="eu.etaxonomy.cdm.remote.json.processor.value.URIJSONValueProcessor"/>
158 </entry>
159 </map>
160 </property>
161 <property name="ignoreDefaultExcludes" value="true" />
162 <property name="excludes">
163 <list value-type="java.lang.String">
164 <value>declaringClass</value><!-- DefaultExclude -->
165 <value>metaClass</value><!-- DefaultExclude -->
166 <value>id</value>
167 <value>cacheStrategy</value>
168 <value>createdBy</value>
169 <value>updatedBy</value>
170 </list>
171 </property>
172 </bean>
173
174 <!--
175 =================================================
176 configuration for RESTful classification service
177 =================================================
178 -->
179 <bean name="jsonConfigClassification" class="eu.etaxonomy.cdm.remote.json.JsonConfigFactoryBean"
180 init-method="init">
181 <property name="jsonBeanProcessorMatcher">
182 <bean
183 class="eu.etaxonomy.cdm.remote.json.processor.matcher.HibernateProxyBeanProcessorMatcher" />
184 </property>
185 <property name="jsonBeanProcessors">
186 <map>
187 <entry key="org.hibernate.proxy.HibernateProxy">
188 <bean
189 class="eu.etaxonomy.cdm.remote.json.processor.bean.HibernateProxyBeanProcessor" />
190 </entry>
191 <entry key="eu.etaxonomy.cdm.model.taxon.TaxonNode">
192 <bean
193 class="eu.etaxonomy.cdm.remote.json.processor.bean.TaxonNodeDaoBeanProcessor" />
194 </entry>
195 </map>
196 </property>
197 <property name="jsonPropertyFilter">
198 <bean class="net.sf.json.filters.OrPropertyFilter">
199 <constructor-arg>
200 <bean class="eu.etaxonomy.cdm.remote.json.util.InitializedHibernatePropertyFilter" />
201 </constructor-arg>
202 <constructor-arg ref="genericApiCardinalityPropertyFilter">
203 </constructor-arg>
204 </bean>
205 </property>
206 <property name="jsonValueProcessors">
207 <map>
208 <entry key="org.hibernate.proxy.HibernateProxy">
209 <bean
210 class="eu.etaxonomy.cdm.remote.json.processor.value.HibernateJSONValueProcessor" />
211 </entry>
212 <entry key="java.util.UUID">
213 <bean
214 class="eu.etaxonomy.cdm.remote.json.processor.value.UUIDJSONValueProcessor" />
215 </entry>
216 <entry key="org.joda.time.DateTime">
217 <bean
218 class="eu.etaxonomy.cdm.remote.json.processor.value.DateTimeJSONValueProcessor" />
219 </entry>
220 <entry key="java.util.Calendar">
221 <bean
222 class="eu.etaxonomy.cdm.remote.json.processor.value.CalendarJSONValueProcessor" />
223 </entry>
224 <entry key="org.joda.time.Partial">
225 <bean
226 class="eu.etaxonomy.cdm.remote.json.processor.value.PartialJSONValueProcessor" />
227 </entry>
228 <entry key="java.lang.Class">
229 <bean
230 class="eu.etaxonomy.cdm.remote.json.processor.value.ClassJSONValueProcessor" />
231 </entry>
232 <entry key="java.util.Map">
233 <bean class="eu.etaxonomy.cdm.remote.json.processor.value.MapJSONValueProcessor" />
234 </entry>
235 <entry key="java.net.URI">
236 <bean class="eu.etaxonomy.cdm.remote.json.processor.value.URIJSONValueProcessor"/>
237 </entry>
238 </map>
239 </property>
240 <property name="ignoreDefaultExcludes" value="true" />
241 <property name="excludes">
242 <list value-type="java.lang.String">
243 <value>declaringClass</value><!-- DefaultExclude -->
244 <value>metaClass</value><!-- DefaultExclude -->
245 <value>id</value>
246 <value>cacheStrategy</value>
247 <value>createdBy</value>
248 <value>updatedBy</value>
249 </list>
250 </property>
251 </bean>
252
253 <!--
254 =================================================
255 configuration for RESTful portal service
256 =================================================
257 -->
258
259 <bean name="jsonConfigPortal" class="eu.etaxonomy.cdm.remote.json.JsonConfigFactoryBean"
260 init-method="init">
261 <property name="jsonBeanProcessorMatcher">
262 <bean
263 class="eu.etaxonomy.cdm.remote.json.processor.matcher.CdmProxyBeanProcessorMatcher" />
264 </property>
265 <property name="jsonBeanProcessors">
266 <map>
267 <entry key="org.hibernate.proxy.HibernateProxy">
268 <bean
269 class="eu.etaxonomy.cdm.remote.json.processor.bean.HibernateProxyBeanProcessor" />
270 </entry>
271 <entry key="eu.etaxonomy.cdm.model.taxon.Taxon">
272 <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.TaxonBeanProcessor" />
273 </entry>
274 <entry key="eu.etaxonomy.cdm.model.name.TaxonNameBase">
275 <bean
276 class="eu.etaxonomy.cdm.remote.json.processor.bean.TaxonNameBaseBeanProcessor" />
277 </entry>
278 <entry key="eu.etaxonomy.cdm.model.name.NameRelationship">
279 <bean
280 class="eu.etaxonomy.cdm.remote.json.processor.bean.NameRelationshipBeanProcessor" />
281 </entry>
282 <entry key="eu.etaxonomy.cdm.model.taxon.TaxonRelationship">
283 <bean
284 class="eu.etaxonomy.cdm.remote.json.processor.bean.TaxonRelationshipBeanProcessor" />
285 </entry>
286 <entry key="eu.etaxonomy.cdm.model.common.TermBase">
287 <bean
288 class="eu.etaxonomy.cdm.remote.json.processor.bean.TermBaseBeanProcessor">
289 <property name="replaceRepresentations" value="true" />
290 <property name="excludes">
291 <set value-type="java.lang.String">
292 <value>infraGenericMarker</value><!-- FIXME leads to IllegalStateException if not excluded -->
293 <value>partOf</value><!-- DefinedTermBase -->
294 <value>kindOf</value><!-- DefinedTermBase -->
295 <value>includes</value><!-- DefinedTermBase -->
296 <value>generalizationOf</value><!-- DefinedTermBase -->
297 <value>vocabulary</value><!-- DefinedTermBase -->
298 <!--
299 FIXME must exclude partOf, kindOf, includes, generalizationOf .. to
300 avoid class cast or lazy loading exceptions in TDWG Areas
301 -->
302 </set>
303 </property>
304 </bean>
305 </entry>
306 <entry key="eu.etaxonomy.cdm.model.description.TextData">
307 <bean
308 class="eu.etaxonomy.cdm.remote.json.processor.bean.TextDataBeanProcessor">
309 <property name="replaceMultilanguageText" value="true" />
310 </bean>
311 </entry>
312 <entry key="eu.etaxonomy.cdm.model.media.Media">
313 <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.MediaBeanProcessor">
314 <property name="replaceTitle" value="true" />
315 <property name="replaceDescription" value="true" />
316 </bean>
317 </entry>
318 <entry key="eu.etaxonomy.cdm.model.reference.Reference">
319 <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.ReferenceBaseBeanProcessor"/>
320 </entry>
321 <entry key="eu.etaxonomy.cdm.model.description.TaxonNameDescription">
322 <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.TaxonNameDescriptionBeanProcessor">
323 <property name="excludes">
324 <set value-type="java.lang.String">
325 <value>taxonName</value>
326 </set>
327 </property>
328 </bean>
329 </entry>
330 <entry key="eu.etaxonomy.cdm.api.facade.DerivedUnitFacade">
331 <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.DerivedUnitFacadeBeanProcessor"/>
332 </entry>
333 <entry key="eu.etaxonomy.cdm.model.location.Point">
334 <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.PointBeanProcessor"/>
335 </entry>
336 <entry key="eu.etaxonomy.cdm.model.agent.TeamOrPersonBase">
337 <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.TeamOrPersonBaseBeanProcessor" />
338 </entry>
339 <entry key="org.apache.lucene.document.Document">
340 <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.LuceneDocumentBeanProcessor" />
341 </entry>
342 </map>
343 </property>
344 <property name="jsonPropertyFilter">
345 <bean class="eu.etaxonomy.cdm.remote.json.util.InitializedHibernatePropertyFilter" />
346 </property>
347 <property name="jsonValueProcessors">
348 <map>
349 <entry key="org.hibernate.proxy.HibernateProxy">
350 <bean
351 class="eu.etaxonomy.cdm.remote.json.processor.value.HibernateJSONValueProcessor" />
352 </entry>
353 <entry key="java.util.UUID">
354 <bean
355 class="eu.etaxonomy.cdm.remote.json.processor.value.UUIDJSONValueProcessor" />
356 </entry>
357 <entry key="org.joda.time.DateTime">
358 <bean
359 class="eu.etaxonomy.cdm.remote.json.processor.value.DateTimeJSONValueProcessor" />
360 </entry>
361 <entry key="java.util.Calendar">
362 <bean
363 class="eu.etaxonomy.cdm.remote.json.processor.value.CalendarJSONValueProcessor" />
364 </entry>
365 <entry key="org.joda.time.Partial">
366 <bean
367 class="eu.etaxonomy.cdm.remote.json.processor.value.PartialJSONValueProcessor" />
368 </entry>
369
370
371 <entry key="java.lang.Class">
372 <bean
373 class="eu.etaxonomy.cdm.remote.json.processor.value.ClassJSONValueProcessor" />
374 </entry>
375 <entry key="java.util.Map">
376 <bean class="eu.etaxonomy.cdm.remote.json.processor.value.MapJSONValueProcessor" />
377 </entry>
378 <entry key="java.net.URI">
379 <bean class="eu.etaxonomy.cdm.remote.json.processor.value.URIJSONValueProcessor"/>
380 </entry>
381 </map>
382 </property>
383 <property name="ignoreDefaultExcludes" value="true" />
384 <property name="excludes">
385 <list value-type="java.lang.String">
386 <value>declaringClass</value><!-- DefaultExclude -->
387 <value>metaClass</value><!-- DefaultExclude -->
388 <value>id</value>
389 <value>annotations</value>
390 <value>cacheStrategy</value>
391 <value>markers</value>
392 <value>createdBy</value>
393 <value>updatedBy</value>
394 <value>inDescription</value>
395 </list>
396 </property>
397 </bean>
398
399 <!--
400 =================================================
401 default configuration name catalogue service
402 =================================================
403 -->
404 <bean name="nameCatalogueJsonConfig" class="eu.etaxonomy.cdm.remote.json.JsonConfigFactoryBean"
405 init-method="init">
406 <property name="jsonPropertyFilter">
407 <bean class="net.sf.json.filters.OrPropertyFilter">
408 <constructor-arg>
409 <bean class="eu.etaxonomy.cdm.remote.json.util.InitializedHibernatePropertyFilter" />
410 </constructor-arg>
411 <constructor-arg ref="nameCatalogueApiCardinalityPropertyFilter">
412 </constructor-arg>
413 </bean>
414 </property>
415 <property name="jsonValueProcessors">
416 <map>
417 <entry key="org.hibernate.proxy.HibernateProxy">
418 <bean
419 class="eu.etaxonomy.cdm.remote.json.processor.value.HibernateJSONValueProcessor" />
420 </entry>
421 <entry key="java.util.UUID">
422 <bean
423 class="eu.etaxonomy.cdm.remote.json.processor.value.UUIDJSONValueProcessor" />
424 </entry>
425 <entry key="org.joda.time.DateTime">
426 <bean
427 class="eu.etaxonomy.cdm.remote.json.processor.value.DateTimeJSONValueProcessor" />
428 </entry>
429 <entry key="java.util.Calendar">
430 <bean
431 class="eu.etaxonomy.cdm.remote.json.processor.value.CalendarJSONValueProcessor" />
432 </entry>
433 <entry key="org.joda.time.Partial">
434 <bean
435 class="eu.etaxonomy.cdm.remote.json.processor.value.PartialJSONValueProcessor" />
436 </entry>
437 <entry key="java.util.Map">
438 <bean class="eu.etaxonomy.cdm.remote.json.processor.value.MapJSONValueProcessor" />
439 </entry>
440 <entry key="java.net.URI">
441 <bean class="eu.etaxonomy.cdm.remote.json.processor.value.URIJSONValueProcessor"/>
442 </entry>
443
444 </map>
445 </property>
446 <property name="ignoreDefaultExcludes" value="true" />
447 <property name="excludes">
448 <list value-type="java.lang.String">
449 <value>class</value>
450 <value>declaringClass</value><!-- DefaultExclude -->
451 <value>metaClass</value><!-- DefaultExclude -->
452 <value>id</value>
453 <value>cacheStrategy</value>
454 <value>createdBy</value>
455 <value>updatedBy</value>
456 </list>
457 </property>
458 </bean>
459
460 </beans>