Project

General

Profile

Download (30.7 KB) Statistics
| Branch: | Tag: | Revision:
1 d26d8c57 Andreas Kohlbecker
<?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 19d5d18b Andreas Müller
    xsi:schemaLocation="http://www.springframework.org/schema/beans   http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
7
    http://www.springframework.org/schema/context   http://www.springframework.org/schema/context/spring-context-4.3.xsd
8
    http://www.springframework.org/schema/tx   http://www.springframework.org/schema/tx/spring-tx-4.3.xsd
9 d26d8c57 Andreas Kohlbecker
    ">
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.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.
23
            -->
24 36fc6b9d Andreas Müller
             <value>TermTree.root</value>
25
             <value>TermNode.children</value>
26
             <value>TermNode.feature</value>
27 d26d8c57 Andreas Kohlbecker
28 4dee6d44 Andreas Kohlbecker
             <value>NomenclaturalStatus.source</value>
29
             <value>DescriptionElementSource.citation</value>
30 16211a64 Andreas Kohlbecker
31 d26d8c57 Andreas Kohlbecker
             <value>TreeNode.data</value>
32
             <value>TreeNode.data</value>
33
34
             <value>PolytomousKey.root</value>
35
             <value>PolytomousKeyNode.children</value>
36
             <value>PolytomousKeyNode.question</value>
37
             <value>PolytomousKeyNode.feature</value>
38
             <value>PolytomousKeyNode.statement</value>
39
             <value>PolytomousKeyNode.modifyingText</value>
40 0d7fac88 Andreas Kohlbecker
             <value>PolytomousKeyNode.otherNode</value>
41 d26d8c57 Andreas Kohlbecker
42
             <value>LinkedPolytomousKeyNodeRowDto.childStatement</value>
43
             <value>LinkedPolytomousKeyNodeRowDto.rowQuestion</value>
44
             <value>LinkedPolytomousKeyNodeRowDto.rowFeature</value>
45
             <!-- value>LinkedPolytomousKeyNodeRowDto.keyNode</value-->
46
47
             <value>Media.representations</value>
48
             <value>MediaRepresentation.parts</value>
49
50
             <value>Sequence.marker</value>
51
             <value>Sequence.genBankAccessionNumber</value>
52
             <value>Sequence.genBankUri</value>
53
54
             <value>Annotation.annotationType</value>
55
             <value>Marker.markerType</value>
56
57
             <value>DerivationEvent.derivatives</value>
58
             <value>DerivationEvent.originals</value>
59
60
             <value>Point.referenceSystem</value>
61
62
             <!-- CardinalityPropertyFilter should allow defining exceptions for abstract super classes : -->
63
             <!-- <value>eu.etaxonomy.cdm.model.description.DescriptionElementBase.feature</value> -->
64
65
             <value>Synonym.sec</value>
66
             <value>Taxon.sec</value>
67
68
             <value>StateData.state</value>
69
             <value>StateData.modifiers</value>
70
             <value>StateData.modifyingText</value>
71
72
             <value>TextData.feature</value>
73
             <value>CategoricalData.feature</value>
74
             <value>CommonTaxonName.feature</value>
75
             <value>Distribution.feature</value>
76
             <value>IndividualsAssociation.feature</value>
77
             <value>QuantitativeData.feature</value>
78
             <value>TaxonInteraction.feature</value>
79
             <value>TextData.feature</value>
80
             <value>IdentifiableSource.citation</value>
81 00da181d Andreas Kohlbecker
             
82
             <value>Registration.name</value>
83
             <value>Registration.typeDesignations</value>
84
             <value>Registration.institution</value>
85 d26d8c57 Andreas Kohlbecker
86
             <value>SearchResult.entity</value>
87 8acdc0b7 Andreas Müller
             
88
             <value>CdmEntity.entity</value>
89 d26d8c57 Andreas Kohlbecker
         </set>
90
       </property>
91
     </bean>
92
93
     <bean id="nameCatalogueApiCardinalityPropertyFilter" class="eu.etaxonomy.cdm.remote.json.util.CardinalityPropertyFilter">
94
       <property name="includeToOneRelations" value="true" />
95
       <property name="includeToManyRelations" value="true" />
96
       <property name="exceptions">
97
         <set>
98
         </set>
99
       </property>
100
     </bean>
101
102
  <!--
103
         =================================================
104
            default configuration for RESTful read(/write) service
105
         =================================================
106
    -->
107
  <bean name="jsonConfig" class="eu.etaxonomy.cdm.remote.json.JsonConfigFactoryBean"
108
    init-method="init">
109
    <property name="jsonBeanProcessorMatcher">
110
      <bean
111
        class="eu.etaxonomy.cdm.remote.json.processor.matcher.CdmProxyBeanProcessorMatcher" />
112
    </property>
113 d9f51acb Andreas Kohlbecker
    <property name="defaultValueProcessorMatcher">
114
      <bean
115
        class="eu.etaxonomy.cdm.remote.json.processor.matcher.CdmDefaultValueProcessorMatcher" />
116
    </property>
117 200979f6 Andreas Kohlbecker
    <property name="defaultValueProcessorMap">
118
        <map>
119
          <entry key="java.lang.Number">
120
            <bean
121
              class="eu.etaxonomy.cdm.remote.json.processor.value.CdmDefaultValueProcessor" />
122
          </entry>
123
        </map>
124
    </property>
125 d26d8c57 Andreas Kohlbecker
    <property name="jsonBeanProcessors">
126
      <map>
127 cd37d4f5 Andreas Müller
        <entry key="org.hibernate.proxy.HibernateProxy">
128
          <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.HibernateProxyBeanProcessor" />
129 d26d8c57 Andreas Kohlbecker
        </entry>
130 58e2f57e Andreas Müller
        <entry key="eu.etaxonomy.cdm.model.term.TermBase">
131 cd37d4f5 Andreas Müller
          <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.TermBaseBeanProcessor">
132
             <property name="excludes">
133
               <set value-type="java.lang.String">
134
                   <value>partOf</value><!-- FIXME exclude partOf to avoid  lazy loading exceptions  -->
135
                   <value>kindOf</value><!-- FIXME exclude kindOf to avoid  lazy loading exceptions  -->
136
                   <value>infraGenericMarker</value><!-- FIXME leads to IllegalStateException if not excluded  -->
137
               </set>
138
            </property>
139
           </bean>
140
         </entry>
141 58e2f57e Andreas Müller
         <entry key="eu.etaxonomy.cdm.model.term.Representation">
142 d30b5c09 Andreas Müller
          <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.RepresentationBeanProcessor"/>
143
         </entry>
144 cd37d4f5 Andreas Müller
         <entry key="eu.etaxonomy.cdm.model.media.Media">
145
            <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.MediaBeanProcessor">
146
              <property name="replaceTitle" value="true" />
147
              <property name="replaceDescription" value="true" />
148
            </bean>
149
         </entry>
150
         <entry key="eu.etaxonomy.cdm.model.taxon.TaxonNode">
151
            <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.TaxonNodeBeanProcessor" />
152
         </entry>
153 525e9e11 Andreas Kohlbecker
         <entry key="eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto">
154
            <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.TaxonNodeDtoBeanProcessor" />
155 8cbcd5c2 Andreas Kohlbecker
        </entry>
156
        <entry key="eu.etaxonomy.cdm.model.location.Point">
157
          <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.PointBeanProcessor"/>
158 525e9e11 Andreas Kohlbecker
        </entry>
159 cd37d4f5 Andreas Müller
         <entry key="eu.etaxonomy.cdm.model.reference.Reference">
160
              <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.ReferenceBaseBeanProcessor"/>
161
         </entry>
162
         <entry key="eu.etaxonomy.cdm.model.name.TaxonName">
163
            <bean
164
              class="eu.etaxonomy.cdm.remote.json.processor.bean.TaxonNameBeanProcessor">
165
              <property name="skipTaggedName" value="true" />
166
            </bean>
167
         </entry>
168
         <entry key="eu.etaxonomy.cdm.model.name.TypeDesignationBase">
169
            <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.TypeDesignationBaseBeanProcessor"/>
170
         </entry>
171
         <entry key="eu.etaxonomy.cdm.model.description.KeyStatement">
172
              <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.KeyStatementBeanProcessor" />
173
         </entry>
174
         <entry key="eu.etaxonomy.cdm.model.agent.TeamOrPersonBase">
175
              <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.TeamOrPersonBaseBeanProcessor" />
176
         </entry>
177
         <entry key="eu.etaxonomy.cdm.model.description.DescriptionElementBase">
178
              <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.DescriptionElementBeanProcessor" />
179
         </entry>
180 f6a63f8b Andreas Kohlbecker
         <!-- TODO this bean processor is unused but preserved for the time when the REST API will be revised (#8637)
181 019036d1 Andreas Kohlbecker
         <entry key="eu.etaxonomy.cdm.model.reference.CdmLinkSource">
182
              <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.CdmLinkSourceBeanProcessor" />
183
         </entry>
184 f6a63f8b Andreas Kohlbecker
         -->
185 cd37d4f5 Andreas Müller
         <entry key="eu.etaxonomy.cdm.model.description.StateData">
186
              <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.StateDataBeanProcessor" />
187
         </entry>
188
         <entry key="org.apache.lucene.document.Document">
189
              <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.LuceneDocumentBeanProcessor" />
190
         </entry>
191 1d9ed98e Andreas Kohlbecker
         <entry key="eu.etaxonomy.cdm.api.service.dto.RegistrationDTO">
192
            <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.RegistrationDtoBeanProcessor" />
193
        </entry>
194 d26d8c57 Andreas Kohlbecker
      </map>
195
    </property>
196
    <property name="jsonPropertyFilter">
197
        <bean class="net.sf.json.filters.OrPropertyFilter">
198
          <constructor-arg>
199
              <bean class="eu.etaxonomy.cdm.remote.json.util.InitializedHibernatePropertyFilter" />
200
          </constructor-arg>
201
          <constructor-arg ref="genericApiCardinalityPropertyFilter">
202
          </constructor-arg>
203
        </bean>
204
    </property>
205 f9bb9711 Andreas Kohlbecker
    <property name="jsonValueProcessorsByClass">
206 d26d8c57 Andreas Kohlbecker
      <map>
207
        <entry key="org.hibernate.proxy.HibernateProxy">
208
          <bean
209
            class="eu.etaxonomy.cdm.remote.json.processor.value.HibernateJSONValueProcessor" />
210
        </entry>
211
        <entry key="java.util.UUID">
212
          <bean
213
            class="eu.etaxonomy.cdm.remote.json.processor.value.UUIDJSONValueProcessor" />
214
        </entry>
215
        <entry key="org.joda.time.DateTime">
216
          <bean
217
            class="eu.etaxonomy.cdm.remote.json.processor.value.DateTimeJSONValueProcessor" />
218
        </entry>
219
        <entry key="java.util.Calendar">
220
          <bean
221
            class="eu.etaxonomy.cdm.remote.json.processor.value.CalendarJSONValueProcessor" />
222
        </entry>
223
        <entry key="org.joda.time.Partial">
224
          <bean
225
            class="eu.etaxonomy.cdm.remote.json.processor.value.PartialJSONValueProcessor" />
226
        </entry>
227
        <entry key="java.lang.Class">
228
          <bean
229
            class="eu.etaxonomy.cdm.remote.json.processor.value.ClassJSONValueProcessor" />
230
        </entry>
231
        <entry key="java.util.Map">
232
            <bean class="eu.etaxonomy.cdm.remote.json.processor.value.MapJSONValueProcessor" />
233
        </entry>
234 f9bb9711 Andreas Kohlbecker
        <entry key="java.util.LinkedHashMap">
235
            <bean class="eu.etaxonomy.cdm.remote.json.processor.value.MapJSONValueProcessor" />
236
        </entry>
237 32955f5b Andreas Müller
        <entry key="eu.etaxonomy.cdm.api.service.name.TypeDesignationWorkingSet">
238 f9bb9711 Andreas Kohlbecker
            <bean class="eu.etaxonomy.cdm.remote.json.processor.value.MapJSONValueProcessor" />
239
        </entry>
240 f9c3f295 Andreas Müller
        <entry key="eu.etaxonomy.cdm.common.URI">
241 f9bb9711 Andreas Kohlbecker
            <bean class="eu.etaxonomy.cdm.remote.json.processor.value.URIJSONValueProcessor"/>
242
        </entry>
243 562acef2 Andreas Kohlbecker
        <entry key="eu.etaxonomy.cdm.model.taxon.TaxonNodeStatus">
244
            <bean class="eu.etaxonomy.cdm.remote.json.processor.value.KeyTermValueProcessor"/>
245
        </entry>
246 9ad46d6b Andreas Kohlbecker
        <entry key="eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType">
247
            <bean class="eu.etaxonomy.cdm.remote.json.processor.value.KeyTermValueProcessor"/>
248
        </entry>
249 d26d8c57 Andreas Kohlbecker
      </map>
250
    </property>
251
    <property name="ignoreDefaultExcludes" value="true" />
252
    <property name="excludes">
253
      <list value-type="java.lang.String">
254
        <value>declaringClass</value><!-- DefaultExclude -->
255
        <value>metaClass</value><!-- DefaultExclude -->
256
        <value>id</value>
257
        <value>cacheStrategy</value>
258
        <value>createdBy</value>
259
        <value>updatedBy</value>
260 f6a63f8b Andreas Kohlbecker
        <!-- TODO this bean processor is unused but preserved for the time when the REST API will be revised (#8637)
261
        <value>cdmSourceTarget</value><! - - OriginalSourceBase.getCdmSourceTarget() -->
262 d26d8c57 Andreas Kohlbecker
      </list>
263
    </property>
264
  </bean>
265
266
  <!--
267
         =================================================
268
            configuration for RESTful classification service
269
         =================================================
270
    -->
271
  <bean name="jsonConfigClassification" class="eu.etaxonomy.cdm.remote.json.JsonConfigFactoryBean"
272
    init-method="init">
273
    <property name="jsonBeanProcessorMatcher">
274
      <bean
275
        class="eu.etaxonomy.cdm.remote.json.processor.matcher.HibernateProxyBeanProcessorMatcher" />
276
    </property>
277
    <property name="jsonBeanProcessors">
278
      <map>
279
        <entry key="org.hibernate.proxy.HibernateProxy">
280
          <bean
281
            class="eu.etaxonomy.cdm.remote.json.processor.bean.HibernateProxyBeanProcessor" />
282
        </entry>
283
        <entry key="eu.etaxonomy.cdm.model.taxon.TaxonNode">
284 525e9e11 Andreas Kohlbecker
          <bean
285
            class="eu.etaxonomy.cdm.remote.json.processor.bean.TaxonNode2DtoBeanProcessor" />
286
        </entry>
287
        <entry key="eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto">
288 d26d8c57 Andreas Kohlbecker
          <bean
289 7e371680 Andreas Müller
            class="eu.etaxonomy.cdm.remote.json.processor.bean.TaxonNodeDtoBeanProcessor" />
290 d26d8c57 Andreas Kohlbecker
        </entry>
291
      </map>
292
    </property>
293
    <property name="jsonPropertyFilter">
294
      <bean class="net.sf.json.filters.OrPropertyFilter">
295
        <constructor-arg>
296
            <bean class="eu.etaxonomy.cdm.remote.json.util.InitializedHibernatePropertyFilter" />
297
        </constructor-arg>
298
        <constructor-arg ref="genericApiCardinalityPropertyFilter">
299
        </constructor-arg>
300
      </bean>
301
    </property>
302 f9bb9711 Andreas Kohlbecker
    <property name="jsonValueProcessorsByClass">
303 d26d8c57 Andreas Kohlbecker
      <map>
304
        <entry key="org.hibernate.proxy.HibernateProxy">
305
          <bean
306
            class="eu.etaxonomy.cdm.remote.json.processor.value.HibernateJSONValueProcessor" />
307
        </entry>
308
        <entry key="java.util.UUID">
309
          <bean
310
            class="eu.etaxonomy.cdm.remote.json.processor.value.UUIDJSONValueProcessor" />
311
        </entry>
312
        <entry key="org.joda.time.DateTime">
313
          <bean
314
            class="eu.etaxonomy.cdm.remote.json.processor.value.DateTimeJSONValueProcessor" />
315
        </entry>
316
        <entry key="java.util.Calendar">
317
          <bean
318
            class="eu.etaxonomy.cdm.remote.json.processor.value.CalendarJSONValueProcessor" />
319
        </entry>
320
        <entry key="org.joda.time.Partial">
321
          <bean
322
            class="eu.etaxonomy.cdm.remote.json.processor.value.PartialJSONValueProcessor" />
323
        </entry>
324
        <entry key="java.lang.Class">
325
          <bean
326
            class="eu.etaxonomy.cdm.remote.json.processor.value.ClassJSONValueProcessor" />
327
        </entry>
328
        <entry key="java.util.Map">
329
            <bean class="eu.etaxonomy.cdm.remote.json.processor.value.MapJSONValueProcessor" />
330
        </entry>
331 4ad992ed Andreas Müller
        <entry key="eu.etaxonomy.cdm.common.URI">
332 d26d8c57 Andreas Kohlbecker
            <bean class="eu.etaxonomy.cdm.remote.json.processor.value.URIJSONValueProcessor"/>
333
        </entry>
334 562acef2 Andreas Kohlbecker
        <entry key="eu.etaxonomy.cdm.model.taxon.TaxonNodeStatus">
335
            <bean class="eu.etaxonomy.cdm.remote.json.processor.value.KeyTermValueProcessor" />
336 9ad46d6b Andreas Kohlbecker
        </entry>        
337
        <entry key="eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType">
338
            <bean class="eu.etaxonomy.cdm.remote.json.processor.value.KeyTermValueProcessor"/>
339 562acef2 Andreas Kohlbecker
        </entry>
340 d26d8c57 Andreas Kohlbecker
      </map>
341
    </property>
342
    <property name="ignoreDefaultExcludes" value="true" />
343
    <property name="excludes">
344
      <list value-type="java.lang.String">
345
        <value>declaringClass</value><!-- DefaultExclude -->
346
        <value>metaClass</value><!-- DefaultExclude -->
347
        <value>id</value>
348
        <value>cacheStrategy</value>
349
        <value>createdBy</value>
350
        <value>updatedBy</value>
351
      </list>
352
    </property>
353
  </bean>
354
355
  <!--
356
       =================================================
357
         configuration for RESTful portal service
358
       =================================================
359
  -->
360
361
  <bean name="jsonConfigPortal" class="eu.etaxonomy.cdm.remote.json.JsonConfigFactoryBean"
362
    init-method="init">
363
    <property name="jsonBeanProcessorMatcher">
364
      <bean
365
        class="eu.etaxonomy.cdm.remote.json.processor.matcher.CdmProxyBeanProcessorMatcher" />
366
    </property>
367 d9f51acb Andreas Kohlbecker
    <property name="defaultValueProcessorMatcher">
368
      <bean
369
        class="eu.etaxonomy.cdm.remote.json.processor.matcher.CdmDefaultValueProcessorMatcher" />
370
    </property>
371
    <property name="defaultValueProcessorMap">
372
        <map>
373
          <entry key="java.lang.Number">
374
            <bean
375
              class="eu.etaxonomy.cdm.remote.json.processor.value.CdmDefaultValueProcessor" />
376
          </entry>
377
        </map>
378
    </property>
379 d26d8c57 Andreas Kohlbecker
    <property name="jsonBeanProcessors">
380
      <map>
381
        <entry key="org.hibernate.proxy.HibernateProxy">
382
          <bean
383
            class="eu.etaxonomy.cdm.remote.json.processor.bean.HibernateProxyBeanProcessor" />
384
        </entry>
385
        <entry key="eu.etaxonomy.cdm.model.taxon.TaxonBase">
386 0ede0320 Andreas Kohlbecker
          <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.TaxonBaseBeanProcessor">
387
          <property name="excludes">
388
             <set value-type="java.lang.String">
389 0245ae20 Andreas Müller
                 <value>acceptedTaxon</value><!-- #6211 to avoid infinite loops in the synonymy -->
390 0ede0320 Andreas Kohlbecker
             </set>
391
          </property>
392
         </bean>  
393 d26d8c57 Andreas Kohlbecker
        </entry>
394 9dc896c9 Andreas Müller
        <entry key="eu.etaxonomy.cdm.model.name.TaxonName">
395 dd4347b6 Andreas Kohlbecker
          <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.TaxonNameBeanProcessor">
396
            <property name="excludes">
397
                <set value-type="java.lang.String">
398
                    <value>homotypicalGroup</value>
399
                </set>
400
            </property>
401
          </bean>
402 d26d8c57 Andreas Kohlbecker
        </entry>
403 45b496bc Andreas Kohlbecker
        <entry key="eu.etaxonomy.cdm.model.taxon.TaxonNode">
404
            <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.TaxonNodeBeanProcessor">
405
                <property name="replaceMultilanguageText" value="true" />
406
            </bean>
407 525e9e11 Andreas Kohlbecker
        </entry>
408
        <entry key="eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto">
409
            <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.TaxonNodeDtoBeanProcessor" />
410
        </entry>
411 c4942e5e Andreas Kohlbecker
        <entry key="eu.etaxonomy.cdm.model.name.TypeDesignationBase">
412
            <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.TypeDesignationBaseBeanProcessor">
413
                <property name="replaceMultilanguageText" value="true" />
414
            </bean>
415
         </entry>
416 d26d8c57 Andreas Kohlbecker
        <entry key="eu.etaxonomy.cdm.model.name.NameRelationship">
417
          <bean
418
            class="eu.etaxonomy.cdm.remote.json.processor.bean.NameRelationshipBeanProcessor" />
419
        </entry>
420
        <entry key="eu.etaxonomy.cdm.model.taxon.TaxonRelationship">
421
          <bean
422
            class="eu.etaxonomy.cdm.remote.json.processor.bean.TaxonRelationshipBeanProcessor" />
423
        </entry>
424 58e2f57e Andreas Müller
        <entry key="eu.etaxonomy.cdm.model.term.TermBase">
425 d26d8c57 Andreas Kohlbecker
          <bean
426
            class="eu.etaxonomy.cdm.remote.json.processor.bean.TermBaseBeanProcessor">
427
            <property name="replaceRepresentations" value="true" />
428
            <property name="excludes">
429
                <set value-type="java.lang.String">
430
                  <value>infraGenericMarker</value><!-- FIXME leads to IllegalStateException if not excluded  -->
431
                  <value>partOf</value><!-- DefinedTermBase -->
432
                  <value>kindOf</value><!-- DefinedTermBase -->
433
                  <value>includes</value><!-- DefinedTermBase -->
434
                  <value>generalizationOf</value><!-- DefinedTermBase -->
435
                  <value>vocabulary</value><!-- DefinedTermBase -->
436
                  <!--
437
                      FIXME must exclude partOf, kindOf, includes, generalizationOf .. to
438
                      avoid class cast or lazy loading exceptions in TDWG Areas
439
                  -->
440
                </set>
441
            </property>
442
          </bean>
443
        </entry>
444
        <entry key="eu.etaxonomy.cdm.model.media.Media">
445
          <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.MediaBeanProcessor">
446
            <property name="replaceTitle" value="true" />
447
            <property name="replaceDescription" value="true" />
448
          </bean>
449
        </entry>
450
        <entry key="eu.etaxonomy.cdm.model.reference.Reference">
451
          <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.ReferenceBaseBeanProcessor"/>
452
        </entry>
453
        <entry key="eu.etaxonomy.cdm.model.description.TaxonNameDescription">
454
          <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.TaxonNameDescriptionBeanProcessor">
455
              <property name="excludes">
456
                <set value-type="java.lang.String">
457
                  <value>taxonName</value>
458
                </set>
459
              </property>
460
          </bean>
461
        </entry>
462
        <entry key="eu.etaxonomy.cdm.api.facade.DerivedUnitFacade">
463
          <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.DerivedUnitFacadeBeanProcessor"/>
464
        </entry>
465
        <entry key="eu.etaxonomy.cdm.model.location.Point">
466
          <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.PointBeanProcessor"/>
467
        </entry>
468
        <entry key="eu.etaxonomy.cdm.model.agent.TeamOrPersonBase">
469
          <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.TeamOrPersonBaseBeanProcessor" />
470
        </entry>
471 f6a63f8b Andreas Kohlbecker
        <!-- TODO this bean processor is unused but preserved for the time when the REST API will be revised (#8637)
472 019036d1 Andreas Kohlbecker
        <entry key="eu.etaxonomy.cdm.model.reference.CdmLinkSource">
473
              <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.CdmLinkSourceBeanProcessor" />
474
         </entry>
475 f6a63f8b Andreas Kohlbecker
         -->
476 d26d8c57 Andreas Kohlbecker
        <entry key="org.apache.lucene.document.Document">
477
            <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.LuceneDocumentBeanProcessor" />
478
        </entry>
479
        <entry key="eu.etaxonomy.cdm.common.TreeNode">
480
            <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.TreeNodeBeanProcessor" />
481
        </entry>
482
        <entry key="eu.etaxonomy.cdm.model.description.DescriptionElementBase">
483
            <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.DescriptionElementBeanProcessor">
484
                <property name="replaceMultilanguageText" value="true" />
485
            </bean>
486
        </entry>
487
        <entry key="eu.etaxonomy.cdm.model.description.StateData">
488
            <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.StateDataBeanProcessor">
489
                <property name="replaceMultilanguageText" value="true" />
490
            </bean>
491
        </entry>
492 84d9a25e Andreas Kohlbecker
        <entry key="eu.etaxonomy.cdm.model.description.KeyStatement">
493
            <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.KeyStatementBeanProcessor" />
494
        </entry>
495 1d9ed98e Andreas Kohlbecker
        <entry key="eu.etaxonomy.cdm.api.service.dto.RegistrationDTO">
496
            <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.RegistrationDtoBeanProcessor" />
497
        </entry>
498 d26d8c57 Andreas Kohlbecker
      </map>
499
    </property>
500
        <property name="jsonPropertyFilter">
501
            <bean class="eu.etaxonomy.cdm.remote.json.util.InitializedHibernatePropertyFilter" />
502
        </property>
503 f9bb9711 Andreas Kohlbecker
    <property name="jsonValueProcessorsByClass">
504 d26d8c57 Andreas Kohlbecker
      <map>
505
        <entry key="org.hibernate.proxy.HibernateProxy">
506
          <bean
507
            class="eu.etaxonomy.cdm.remote.json.processor.value.HibernateJSONValueProcessor" />
508
        </entry>
509
        <entry key="java.util.UUID">
510
          <bean
511
            class="eu.etaxonomy.cdm.remote.json.processor.value.UUIDJSONValueProcessor" />
512
        </entry>
513
        <entry key="org.joda.time.DateTime">
514
          <bean
515
            class="eu.etaxonomy.cdm.remote.json.processor.value.DateTimeJSONValueProcessor" />
516
        </entry>
517
        <entry key="java.util.Calendar">
518
          <bean
519
            class="eu.etaxonomy.cdm.remote.json.processor.value.CalendarJSONValueProcessor" />
520
        </entry>
521
        <entry key="org.joda.time.Partial">
522
          <bean
523
            class="eu.etaxonomy.cdm.remote.json.processor.value.PartialJSONValueProcessor" />
524
        </entry>
525
        <entry key="java.lang.Class">
526
          <bean
527
            class="eu.etaxonomy.cdm.remote.json.processor.value.ClassJSONValueProcessor" />
528
        </entry>
529
        <entry key="java.util.Map">
530
            <bean class="eu.etaxonomy.cdm.remote.json.processor.value.MapJSONValueProcessor" />
531
        </entry>
532 ec3ca64c Andreas Kohlbecker
        <entry key="java.util.LinkedHashMap">
533
            <bean class="eu.etaxonomy.cdm.remote.json.processor.value.MapJSONValueProcessor" />
534
        </entry>
535 32955f5b Andreas Müller
        <entry key="eu.etaxonomy.cdm.api.service.name.TypeDesignationWorkingSet">
536 ec3ca64c Andreas Kohlbecker
            <bean class="eu.etaxonomy.cdm.remote.json.processor.value.MapJSONValueProcessor" />
537
        </entry>
538 4ad992ed Andreas Müller
        <entry key="eu.etaxonomy.cdm.common.URI">
539 d26d8c57 Andreas Kohlbecker
            <bean class="eu.etaxonomy.cdm.remote.json.processor.value.URIJSONValueProcessor"/>
540
        </entry>
541 562acef2 Andreas Kohlbecker
        <entry key="eu.etaxonomy.cdm.model.taxon.TaxonNodeStatus">
542
            <bean class="eu.etaxonomy.cdm.remote.json.processor.value.KeyTermValueProcessor" />
543
        </entry>
544 9ad46d6b Andreas Kohlbecker
        <entry key="eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType">
545
            <bean class="eu.etaxonomy.cdm.remote.json.processor.value.KeyTermValueProcessor"/>
546
        </entry>
547 d26d8c57 Andreas Kohlbecker
      </map>
548
    </property>
549
    <property name="ignoreDefaultExcludes" value="true" />
550
    <property name="excludes">
551
      <list value-type="java.lang.String">
552
        <value>declaringClass</value><!-- DefaultExclude -->
553
        <value>metaClass</value><!-- DefaultExclude -->
554
        <value>id</value>
555
        <!--
556
            commented out,
557
            see  #3347 (services and REST service controller for molecular classes implemented)
558
        <value>annotations</value>
559
        <value>markers</value>
560
        -->
561
        <value>cacheStrategy</value>
562
        <value>createdBy</value>
563
        <value>updatedBy</value>
564
        <value>inDescription</value>
565 f6a63f8b Andreas Kohlbecker
        <!-- TODO this bean processor is unused but preserved for the time when the REST API will be revised (#8637)
566
        <value>cdmSourceTarget</value>< !- - OriginalSourceBase.getCdmSourceTarget() -->
567 d26d8c57 Andreas Kohlbecker
      </list>
568
    </property>
569
  </bean>
570
571
   <!--
572
         =================================================
573
            default configuration name catalogue service
574
         =================================================
575
    -->
576
  <bean name="nameCatalogueJsonConfig" class="eu.etaxonomy.cdm.remote.json.JsonConfigFactoryBean"
577
    init-method="init">
578
    <property name="jsonPropertyFilter">
579
        <bean class="net.sf.json.filters.OrPropertyFilter">
580
          <constructor-arg>
581
              <bean class="eu.etaxonomy.cdm.remote.json.util.InitializedHibernatePropertyFilter" />
582
          </constructor-arg>
583
          <constructor-arg ref="nameCatalogueApiCardinalityPropertyFilter">
584
          </constructor-arg>
585
        </bean>
586
    </property>
587 f9bb9711 Andreas Kohlbecker
    <property name="jsonValueProcessorsByClass">
588 d26d8c57 Andreas Kohlbecker
      <map>
589
        <entry key="org.hibernate.proxy.HibernateProxy">
590
          <bean
591
            class="eu.etaxonomy.cdm.remote.json.processor.value.HibernateJSONValueProcessor" />
592
        </entry>
593
        <entry key="java.util.UUID">
594
          <bean
595
            class="eu.etaxonomy.cdm.remote.json.processor.value.UUIDJSONValueProcessor" />
596
        </entry>
597
        <entry key="org.joda.time.DateTime">
598
          <bean
599
            class="eu.etaxonomy.cdm.remote.json.processor.value.DateTimeJSONValueProcessor" />
600
        </entry>
601
        <entry key="java.util.Calendar">
602
          <bean
603
            class="eu.etaxonomy.cdm.remote.json.processor.value.CalendarJSONValueProcessor" />
604
        </entry>
605
        <entry key="org.joda.time.Partial">
606
          <bean
607
            class="eu.etaxonomy.cdm.remote.json.processor.value.PartialJSONValueProcessor" />
608
        </entry>
609
        <entry key="java.util.Map">
610
            <bean class="eu.etaxonomy.cdm.remote.json.processor.value.MapJSONValueProcessor" />
611
        </entry>
612 4ad992ed Andreas Müller
          <entry key="eu.etaxonomy.cdm.common.URI">
613 d26d8c57 Andreas Kohlbecker
              <bean class="eu.etaxonomy.cdm.remote.json.processor.value.URIJSONValueProcessor"/>
614
          </entry>
615
      </map>
616
    </property>
617
    <property name="ignoreDefaultExcludes" value="true" />
618
    <property name="excludes">
619
      <list value-type="java.lang.String">
620
        <value>class</value>
621
        <value>declaringClass</value><!-- DefaultExclude -->
622
        <value>metaClass</value><!-- DefaultExclude -->
623
        <value>id</value>
624
        <value>cacheStrategy</value>
625
        <value>createdBy</value>
626
        <value>updatedBy</value>
627
      </list>
628
    </property>
629
  </bean>
630
631
  <bean name="occurrenceCatalogueJsonConfig" class="eu.etaxonomy.cdm.remote.json.JsonConfigFactoryBean"
632
    init-method="init">
633
    <property name="jsonPropertyFilter">
634
        <bean class="net.sf.json.filters.OrPropertyFilter">
635
          <constructor-arg>
636
              <bean class="eu.etaxonomy.cdm.remote.json.util.InitializedHibernatePropertyFilter" />
637
          </constructor-arg>
638
          <constructor-arg ref="nameCatalogueApiCardinalityPropertyFilter">
639
          </constructor-arg>
640
        </bean>
641
    </property>
642 f9bb9711 Andreas Kohlbecker
    <property name="jsonValueProcessorsByClass">
643 d26d8c57 Andreas Kohlbecker
      <map>
644
        <entry key="org.hibernate.proxy.HibernateProxy">
645
          <bean
646
            class="eu.etaxonomy.cdm.remote.json.processor.value.HibernateJSONValueProcessor" />
647
        </entry>
648
        <entry key="java.util.UUID">
649
          <bean
650
            class="eu.etaxonomy.cdm.remote.json.processor.value.UUIDJSONValueProcessor" />
651
        </entry>
652
        <entry key="org.joda.time.DateTime">
653
          <bean
654
            class="eu.etaxonomy.cdm.remote.json.processor.value.DateTimeJSONValueProcessor" />
655
        </entry>
656
        <entry key="java.util.Calendar">
657
          <bean
658
            class="eu.etaxonomy.cdm.remote.json.processor.value.CalendarJSONValueProcessor" />
659
        </entry>
660
        <entry key="org.joda.time.Partial">
661
          <bean
662
            class="eu.etaxonomy.cdm.remote.json.processor.value.PartialJSONValueProcessor" />
663
        </entry>
664
        <entry key="java.util.Map">
665
            <bean class="eu.etaxonomy.cdm.remote.json.processor.value.MapJSONValueProcessor" />
666
        </entry>
667 4ad992ed Andreas Müller
          <entry key="eu.etaxonomy.cdm.common.URI">
668 d26d8c57 Andreas Kohlbecker
              <bean class="eu.etaxonomy.cdm.remote.json.processor.value.URIJSONValueProcessor"/>
669
          </entry>
670
671
      </map>
672
    </property>
673
    <property name="ignoreDefaultExcludes" value="true" />
674
    <property name="excludes">
675
      <list value-type="java.lang.String">
676
        <value>class</value>
677
        <value>declaringClass</value><!-- DefaultExclude -->
678
        <value>metaClass</value><!-- DefaultExclude -->
679
        <value>id</value>
680
        <value>cacheStrategy</value>
681
        <value>createdBy</value>
682
        <value>updatedBy</value>
683
      </list>
684
    </property>
685
  </bean>
686
687
688 068435f8 Andreas Kohlbecker
</beans>