remove old TermsDataSet
[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 <!--
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.
23 -->
24 <value>FeatureTree.root</value>
25 <value>FeatureNode.children</value>
26 <value>FeatureNode.feature</value>
27
28 <value>TreeNode.data</value>
29 <value>TreeNode.data</value>
30
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>
37
38 <value>LinkedPolytomousKeyNodeRowDto.childStatement</value>
39 <value>LinkedPolytomousKeyNodeRowDto.rowQuestion</value>
40 <value>LinkedPolytomousKeyNodeRowDto.rowFeature</value>
41 <!-- value>LinkedPolytomousKeyNodeRowDto.keyNode</value-->
42
43 <value>Media.representations</value>
44 <value>MediaRepresentation.parts</value>
45
46 <value>Sequence.marker</value>
47 <value>Sequence.genBankAccessionNumber</value>
48 <value>Sequence.genBankUri</value>
49
50 <value>Annotation.annotationType</value>
51 <value>Marker.markerType</value>
52
53 <value>DerivationEvent.derivatives</value>
54 <value>DerivationEvent.originals</value>
55
56 <value>Point.referenceSystem</value>
57
58 <!-- CardinalityPropertyFilter should allow defining exceptions for abstract super classes : -->
59 <!-- <value>eu.etaxonomy.cdm.model.description.DescriptionElementBase.feature</value> -->
60
61 <value>Synonym.sec</value>
62 <value>Taxon.sec</value>
63
64 <value>StateData.state</value>
65 <value>StateData.modifiers</value>
66 <value>StateData.modifyingText</value>
67
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>
77
78 <value>SearchResult.entity</value>
79 </set>
80 </property>
81 </bean>
82
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">
87 <set>
88 </set>
89 </property>
90 </bean>
91
92 <!--
93 =================================================
94 default configuration for RESTful read(/write) service
95 =================================================
96 -->
97 <bean name="jsonConfig" class="eu.etaxonomy.cdm.remote.json.JsonConfigFactoryBean"
98 init-method="init">
99 <property name="jsonBeanProcessorMatcher">
100 <bean
101 class="eu.etaxonomy.cdm.remote.json.processor.matcher.CdmProxyBeanProcessorMatcher" />
102 </property>
103 <property name="jsonBeanProcessors">
104 <map>
105 <entry key="org.hibernate.proxy.HibernateProxy">
106 <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.HibernateProxyBeanProcessor" />
107 </entry>
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 -->
115 </set>
116 </property>
117 </bean>
118 </entry>
119 <entry key="eu.etaxonomy.cdm.model.description.TextData">
120 <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.TextDataBeanProcessor" />
121 </entry>
122 <entry key="eu.etaxonomy.cdm.model.taxon.TaxonNode">
123 <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.TaxonNodeBeanProcessor" />
124 </entry>
125 <entry key="eu.etaxonomy.cdm.model.reference.Reference">
126 <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.ReferenceBaseBeanProcessor"/>
127 </entry>
128 <entry key="eu.etaxonomy.cdm.model.name.TypeDesignationBase">
129 <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.TypeDesignationBaseBeanProcessor"/>
130 </entry>
131 <entry key="eu.etaxonomy.cdm.model.description.KeyStatement">
132 <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.KeyStatementBeanProcessor" />
133 </entry>
134 <entry key="eu.etaxonomy.cdm.model.agent.TeamOrPersonBase">
135 <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.TeamOrPersonBaseBeanProcessor" />
136 </entry>
137 <entry key="org.apache.lucene.document.Document">
138 <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.LuceneDocumentBeanProcessor" />
139 </entry>
140 </map>
141 </property>
142 <property name="jsonPropertyFilter">
143 <bean class="net.sf.json.filters.OrPropertyFilter">
144 <constructor-arg>
145 <bean class="eu.etaxonomy.cdm.remote.json.util.InitializedHibernatePropertyFilter" />
146 </constructor-arg>
147 <constructor-arg ref="genericApiCardinalityPropertyFilter">
148 </constructor-arg>
149 </bean>
150 </property>
151 <property name="jsonValueProcessors">
152 <map>
153 <entry key="org.hibernate.proxy.HibernateProxy">
154 <bean
155 class="eu.etaxonomy.cdm.remote.json.processor.value.HibernateJSONValueProcessor" />
156 </entry>
157 <entry key="java.util.UUID">
158 <bean
159 class="eu.etaxonomy.cdm.remote.json.processor.value.UUIDJSONValueProcessor" />
160 </entry>
161 <entry key="org.joda.time.DateTime">
162 <bean
163 class="eu.etaxonomy.cdm.remote.json.processor.value.DateTimeJSONValueProcessor" />
164 </entry>
165 <entry key="java.util.Calendar">
166 <bean
167 class="eu.etaxonomy.cdm.remote.json.processor.value.CalendarJSONValueProcessor" />
168 </entry>
169 <entry key="org.joda.time.Partial">
170 <bean
171 class="eu.etaxonomy.cdm.remote.json.processor.value.PartialJSONValueProcessor" />
172 </entry>
173 <entry key="java.lang.Class">
174 <bean
175 class="eu.etaxonomy.cdm.remote.json.processor.value.ClassJSONValueProcessor" />
176 </entry>
177 <entry key="java.util.Map">
178 <bean class="eu.etaxonomy.cdm.remote.json.processor.value.MapJSONValueProcessor" />
179 </entry>
180 <entry key="java.net.URI">
181 <bean class="eu.etaxonomy.cdm.remote.json.processor.value.URIJSONValueProcessor"/>
182 </entry>
183 </map>
184 </property>
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 -->
190 <value>id</value>
191 <value>cacheStrategy</value>
192 <value>createdBy</value>
193 <value>updatedBy</value>
194 </list>
195 </property>
196 </bean>
197
198 <!--
199 =================================================
200 configuration for RESTful classification service
201 =================================================
202 -->
203 <bean name="jsonConfigClassification" class="eu.etaxonomy.cdm.remote.json.JsonConfigFactoryBean"
204 init-method="init">
205 <property name="jsonBeanProcessorMatcher">
206 <bean
207 class="eu.etaxonomy.cdm.remote.json.processor.matcher.HibernateProxyBeanProcessorMatcher" />
208 </property>
209 <property name="jsonBeanProcessors">
210 <map>
211 <entry key="org.hibernate.proxy.HibernateProxy">
212 <bean
213 class="eu.etaxonomy.cdm.remote.json.processor.bean.HibernateProxyBeanProcessor" />
214 </entry>
215 <entry key="eu.etaxonomy.cdm.model.taxon.TaxonNode">
216 <bean
217 class="eu.etaxonomy.cdm.remote.json.processor.bean.TaxonNodeDaoBeanProcessor" />
218 </entry>
219 </map>
220 </property>
221 <property name="jsonPropertyFilter">
222 <bean class="net.sf.json.filters.OrPropertyFilter">
223 <constructor-arg>
224 <bean class="eu.etaxonomy.cdm.remote.json.util.InitializedHibernatePropertyFilter" />
225 </constructor-arg>
226 <constructor-arg ref="genericApiCardinalityPropertyFilter">
227 </constructor-arg>
228 </bean>
229 </property>
230 <property name="jsonValueProcessors">
231 <map>
232 <entry key="org.hibernate.proxy.HibernateProxy">
233 <bean
234 class="eu.etaxonomy.cdm.remote.json.processor.value.HibernateJSONValueProcessor" />
235 </entry>
236 <entry key="java.util.UUID">
237 <bean
238 class="eu.etaxonomy.cdm.remote.json.processor.value.UUIDJSONValueProcessor" />
239 </entry>
240 <entry key="org.joda.time.DateTime">
241 <bean
242 class="eu.etaxonomy.cdm.remote.json.processor.value.DateTimeJSONValueProcessor" />
243 </entry>
244 <entry key="java.util.Calendar">
245 <bean
246 class="eu.etaxonomy.cdm.remote.json.processor.value.CalendarJSONValueProcessor" />
247 </entry>
248 <entry key="org.joda.time.Partial">
249 <bean
250 class="eu.etaxonomy.cdm.remote.json.processor.value.PartialJSONValueProcessor" />
251 </entry>
252 <entry key="java.lang.Class">
253 <bean
254 class="eu.etaxonomy.cdm.remote.json.processor.value.ClassJSONValueProcessor" />
255 </entry>
256 <entry key="java.util.Map">
257 <bean class="eu.etaxonomy.cdm.remote.json.processor.value.MapJSONValueProcessor" />
258 </entry>
259 <entry key="java.net.URI">
260 <bean class="eu.etaxonomy.cdm.remote.json.processor.value.URIJSONValueProcessor"/>
261 </entry>
262 </map>
263 </property>
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 -->
269 <value>id</value>
270 <value>cacheStrategy</value>
271 <value>createdBy</value>
272 <value>updatedBy</value>
273 </list>
274 </property>
275 </bean>
276
277 <!--
278 =================================================
279 configuration for RESTful portal service
280 =================================================
281 -->
282
283 <bean name="jsonConfigPortal" class="eu.etaxonomy.cdm.remote.json.JsonConfigFactoryBean"
284 init-method="init">
285 <property name="jsonBeanProcessorMatcher">
286 <bean
287 class="eu.etaxonomy.cdm.remote.json.processor.matcher.CdmProxyBeanProcessorMatcher" />
288 </property>
289 <property name="jsonBeanProcessors">
290 <map>
291 <entry key="org.hibernate.proxy.HibernateProxy">
292 <bean
293 class="eu.etaxonomy.cdm.remote.json.processor.bean.HibernateProxyBeanProcessor" />
294 </entry>
295 <entry key="eu.etaxonomy.cdm.model.taxon.Taxon">
296 <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.TaxonBeanProcessor" />
297 </entry>
298 <entry key="eu.etaxonomy.cdm.model.name.TaxonNameBase">
299 <bean
300 class="eu.etaxonomy.cdm.remote.json.processor.bean.TaxonNameBaseBeanProcessor" />
301 </entry>
302 <entry key="eu.etaxonomy.cdm.model.name.NameRelationship">
303 <bean
304 class="eu.etaxonomy.cdm.remote.json.processor.bean.NameRelationshipBeanProcessor" />
305 </entry>
306 <entry key="eu.etaxonomy.cdm.model.taxon.TaxonRelationship">
307 <bean
308 class="eu.etaxonomy.cdm.remote.json.processor.bean.TaxonRelationshipBeanProcessor" />
309 </entry>
310 <entry key="eu.etaxonomy.cdm.model.common.TermBase">
311 <bean
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 -->
322 <!--
323 FIXME must exclude partOf, kindOf, includes, generalizationOf .. to
324 avoid class cast or lazy loading exceptions in TDWG Areas
325 -->
326 </set>
327 </property>
328 </bean>
329 </entry>
330 <entry key="eu.etaxonomy.cdm.model.description.TextData">
331 <bean
332 class="eu.etaxonomy.cdm.remote.json.processor.bean.TextDataBeanProcessor">
333 <property name="replaceMultilanguageText" value="true" />
334 </bean>
335 </entry>
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" />
340 </bean>
341 </entry>
342 <entry key="eu.etaxonomy.cdm.model.reference.Reference">
343 <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.ReferenceBaseBeanProcessor"/>
344 </entry>
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>
350 </set>
351 </property>
352 </bean>
353 </entry>
354 <entry key="eu.etaxonomy.cdm.api.facade.DerivedUnitFacade">
355 <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.DerivedUnitFacadeBeanProcessor"/>
356 </entry>
357 <entry key="eu.etaxonomy.cdm.model.location.Point">
358 <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.PointBeanProcessor"/>
359 </entry>
360 <entry key="eu.etaxonomy.cdm.model.agent.TeamOrPersonBase">
361 <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.TeamOrPersonBaseBeanProcessor" />
362 </entry>
363 <entry key="org.apache.lucene.document.Document">
364 <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.LuceneDocumentBeanProcessor" />
365 </entry>
366 </map>
367 </property>
368 <property name="jsonPropertyFilter">
369 <bean class="eu.etaxonomy.cdm.remote.json.util.InitializedHibernatePropertyFilter" />
370 </property>
371 <property name="jsonValueProcessors">
372 <map>
373 <entry key="org.hibernate.proxy.HibernateProxy">
374 <bean
375 class="eu.etaxonomy.cdm.remote.json.processor.value.HibernateJSONValueProcessor" />
376 </entry>
377 <entry key="java.util.UUID">
378 <bean
379 class="eu.etaxonomy.cdm.remote.json.processor.value.UUIDJSONValueProcessor" />
380 </entry>
381 <entry key="org.joda.time.DateTime">
382 <bean
383 class="eu.etaxonomy.cdm.remote.json.processor.value.DateTimeJSONValueProcessor" />
384 </entry>
385 <entry key="java.util.Calendar">
386 <bean
387 class="eu.etaxonomy.cdm.remote.json.processor.value.CalendarJSONValueProcessor" />
388 </entry>
389 <entry key="org.joda.time.Partial">
390 <bean
391 class="eu.etaxonomy.cdm.remote.json.processor.value.PartialJSONValueProcessor" />
392 </entry>
393 <entry key="java.lang.Class">
394 <bean
395 class="eu.etaxonomy.cdm.remote.json.processor.value.ClassJSONValueProcessor" />
396 </entry>
397 <entry key="java.util.Map">
398 <bean class="eu.etaxonomy.cdm.remote.json.processor.value.MapJSONValueProcessor" />
399 </entry>
400 <entry key="java.net.URI">
401 <bean class="eu.etaxonomy.cdm.remote.json.processor.value.URIJSONValueProcessor"/>
402 </entry>
403 </map>
404 </property>
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 -->
410 <value>id</value>
411 <!--
412 commented out,
413 see #3347 (services and REST service controller for molecular classes implemented)
414 <value>annotations</value>
415 <value>markers</value>
416 -->
417 <value>cacheStrategy</value>
418 <value>createdBy</value>
419 <value>updatedBy</value>
420 <value>inDescription</value>
421 </list>
422 </property>
423 </bean>
424
425 <!--
426 =================================================
427 default configuration name catalogue service
428 =================================================
429 -->
430 <bean name="nameCatalogueJsonConfig" class="eu.etaxonomy.cdm.remote.json.JsonConfigFactoryBean"
431 init-method="init">
432 <property name="jsonPropertyFilter">
433 <bean class="net.sf.json.filters.OrPropertyFilter">
434 <constructor-arg>
435 <bean class="eu.etaxonomy.cdm.remote.json.util.InitializedHibernatePropertyFilter" />
436 </constructor-arg>
437 <constructor-arg ref="nameCatalogueApiCardinalityPropertyFilter">
438 </constructor-arg>
439 </bean>
440 </property>
441 <property name="jsonValueProcessors">
442 <map>
443 <entry key="org.hibernate.proxy.HibernateProxy">
444 <bean
445 class="eu.etaxonomy.cdm.remote.json.processor.value.HibernateJSONValueProcessor" />
446 </entry>
447 <entry key="java.util.UUID">
448 <bean
449 class="eu.etaxonomy.cdm.remote.json.processor.value.UUIDJSONValueProcessor" />
450 </entry>
451 <entry key="org.joda.time.DateTime">
452 <bean
453 class="eu.etaxonomy.cdm.remote.json.processor.value.DateTimeJSONValueProcessor" />
454 </entry>
455 <entry key="java.util.Calendar">
456 <bean
457 class="eu.etaxonomy.cdm.remote.json.processor.value.CalendarJSONValueProcessor" />
458 </entry>
459 <entry key="org.joda.time.Partial">
460 <bean
461 class="eu.etaxonomy.cdm.remote.json.processor.value.PartialJSONValueProcessor" />
462 </entry>
463 <entry key="java.util.Map">
464 <bean class="eu.etaxonomy.cdm.remote.json.processor.value.MapJSONValueProcessor" />
465 </entry>
466 <entry key="java.net.URI">
467 <bean class="eu.etaxonomy.cdm.remote.json.processor.value.URIJSONValueProcessor"/>
468 </entry>
469
470 </map>
471 </property>
472 <property name="ignoreDefaultExcludes" value="true" />
473 <property name="excludes">
474 <list value-type="java.lang.String">
475 <value>class</value>
476 <value>declaringClass</value><!-- DefaultExclude -->
477 <value>metaClass</value><!-- DefaultExclude -->
478 <value>id</value>
479 <value>cacheStrategy</value>
480 <value>createdBy</value>
481 <value>updatedBy</value>
482 </list>
483 </property>
484 </bean>
485
486 </beans>