clearer getters for DerivedUnitFacade + PointBeanProcessor
[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 <!--
12 =================================================
13 default configuration for RESTful read(/write) service
14 =================================================
15 -->
16 <bean name="jsonConfig" class="eu.etaxonomy.cdm.remote.json.JsonConfigFactoryBean"
17 init-method="init">
18 <property name="jsonBeanProcessorMatcher">
19 <bean
20 class="eu.etaxonomy.cdm.remote.json.processor.matcher.CdmProxyBeanProcessorMatcher" />
21 </property>
22 <property name="jsonBeanProcessors">
23 <map>
24 <entry key="org.hibernate.proxy.HibernateProxy">
25 <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.HibernateProxyBeanProcessor" />
26 </entry>
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 -->
34 </set>
35 </property>
36 </bean>
37 </entry>
38 <entry key="eu.etaxonomy.cdm.model.description.TextData">
39 <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.TextDataBeanProcessor" />
40 </entry>
41 <entry key="eu.etaxonomy.cdm.model.taxon.TaxonNode">
42 <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.TaxonNodeBeanProcessor" />
43 </entry>
44 <entry key="eu.etaxonomy.cdm.model.reference.ReferenceBase">
45 <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.ReferenceBaseBeanProcessor"/>
46 </entry>
47
48 <entry key="eu.etaxonomy.cdm.model.name.TypeDesignationBase">
49 <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.TypeDesignationBaseBeanProcessor"/>
50 </entry>
51
52 </map>
53 </property>
54 <property name="jsonPropertyFilter">
55 <bean class="net.sf.json.filters.OrPropertyFilter">
56 <constructor-arg>
57 <bean class="eu.etaxonomy.cdm.remote.json.util.InitializedHibernatePropertyFilter" />
58 </constructor-arg>
59 <constructor-arg>
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">
64 <set>
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>
72
73 <!-- CardinalityPropertyFilter should allow defining acceptions for abstract super classes : -->
74 <!-- <value>eu.etaxonomy.cdm.model.description.DescriptionElementBase.feature</value> -->
75
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>
84 </set>
85 </property>
86 </bean>
87 </constructor-arg>
88 </bean>
89 </property>
90 <property name="jsonValueProcessors">
91 <map>
92 <entry key="org.hibernate.proxy.HibernateProxy">
93 <bean
94 class="eu.etaxonomy.cdm.remote.json.processor.value.HibernateJSONValueProcessor" />
95 </entry>
96 <entry key="java.util.UUID">
97 <bean
98 class="eu.etaxonomy.cdm.remote.json.processor.value.UUIDJSONValueProcessor" />
99 </entry>
100 <entry key="org.joda.time.DateTime">
101 <bean
102 class="eu.etaxonomy.cdm.remote.json.processor.value.DateTimeJSONValueProcessor" />
103 </entry>
104 <entry key="java.util.Calendar">
105 <bean
106 class="eu.etaxonomy.cdm.remote.json.processor.value.CalendarJSONValueProcessor" />
107 </entry>
108 <entry key="org.joda.time.Partial">
109 <bean
110 class="eu.etaxonomy.cdm.remote.json.processor.value.PartialJSONValueProcessor" />
111 </entry>
112 <entry key="java.lang.Class">
113 <bean
114 class="eu.etaxonomy.cdm.remote.json.processor.value.ClassJSONValueProcessor" />
115 </entry>
116 <entry key="java.util.Map">
117 <bean class="eu.etaxonomy.cdm.remote.json.processor.value.MapJSONValueProcessor" />
118 </entry>
119 </map>
120 </property>
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 -->
126 <value>id</value>
127 <value>cacheStrategy</value>
128 <value>createdBy</value>
129 <value>updatedBy</value>
130 </list>
131 </property>
132 </bean>
133
134 <!--
135 =================================================
136 configuration for RESTful taxonomy service
137 =================================================
138 -->
139 <bean name="jsonConfigTaxonomy" class="eu.etaxonomy.cdm.remote.json.JsonConfigFactoryBean"
140 init-method="init">
141 <property name="jsonBeanProcessorMatcher">
142 <bean
143 class="eu.etaxonomy.cdm.remote.json.processor.matcher.HibernateProxyBeanProcessorMatcher" />
144 </property>
145 <property name="jsonBeanProcessors">
146 <map>
147 <entry key="org.hibernate.proxy.HibernateProxy">
148 <bean
149 class="eu.etaxonomy.cdm.remote.json.processor.bean.HibernateProxyBeanProcessor" />
150 </entry>
151 <entry key="eu.etaxonomy.cdm.model.taxon.TaxonNode">
152 <bean
153 class="eu.etaxonomy.cdm.remote.json.processor.bean.TaxonNodeDaoBeanProcessor" />
154 </entry>
155 </map>
156 </property>
157 <property name="jsonPropertyFilter">
158 <bean class="eu.etaxonomy.cdm.remote.json.util.InitializedHibernatePropertyFilter" />
159 </property>
160 <property name="jsonValueProcessors">
161 <map>
162 <entry key="org.hibernate.proxy.HibernateProxy">
163 <bean
164 class="eu.etaxonomy.cdm.remote.json.processor.value.HibernateJSONValueProcessor" />
165 </entry>
166 <entry key="java.util.UUID">
167 <bean
168 class="eu.etaxonomy.cdm.remote.json.processor.value.UUIDJSONValueProcessor" />
169 </entry>
170 <entry key="org.joda.time.DateTime">
171 <bean
172 class="eu.etaxonomy.cdm.remote.json.processor.value.DateTimeJSONValueProcessor" />
173 </entry>
174 <entry key="java.util.Calendar">
175 <bean
176 class="eu.etaxonomy.cdm.remote.json.processor.value.CalendarJSONValueProcessor" />
177 </entry>
178 <entry key="org.joda.time.Partial">
179 <bean
180 class="eu.etaxonomy.cdm.remote.json.processor.value.PartialJSONValueProcessor" />
181 </entry>
182 <entry key="java.lang.Class">
183 <bean
184 class="eu.etaxonomy.cdm.remote.json.processor.value.ClassJSONValueProcessor" />
185 </entry>
186 <entry key="java.util.Map">
187 <bean class="eu.etaxonomy.cdm.remote.json.processor.value.MapJSONValueProcessor" />
188 </entry>
189 </map>
190 </property>
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 -->
196 <value>id</value>
197 <value>cacheStrategy</value>
198 <value>createdBy</value>
199 <value>updatedBy</value>
200 </list>
201 </property>
202 </bean>
203
204 <!--
205 =================================================
206 configuration for RESTful portal service
207 =================================================
208 -->
209
210 <bean name="jsonConfigPortal" class="eu.etaxonomy.cdm.remote.json.JsonConfigFactoryBean"
211 init-method="init">
212 <property name="jsonBeanProcessorMatcher">
213 <bean
214 class="eu.etaxonomy.cdm.remote.json.processor.matcher.CdmProxyBeanProcessorMatcher" />
215 </property>
216 <property name="jsonBeanProcessors">
217 <map>
218 <entry key="org.hibernate.proxy.HibernateProxy">
219 <bean
220 class="eu.etaxonomy.cdm.remote.json.processor.bean.HibernateProxyBeanProcessor" />
221 </entry>
222 <entry key="eu.etaxonomy.cdm.model.taxon.Taxon">
223 <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.TaxonBeanProcessor" />
224 </entry>
225 <entry key="eu.etaxonomy.cdm.model.name.TaxonNameBase">
226 <bean
227 class="eu.etaxonomy.cdm.remote.json.processor.bean.TaxonNameBaseBeanProcessor" />
228 </entry>
229 <entry key="eu.etaxonomy.cdm.model.name.NameRelationship">
230 <bean
231 class="eu.etaxonomy.cdm.remote.json.processor.bean.NameRelationshipBeanProcessor" />
232 </entry>
233 <entry key="eu.etaxonomy.cdm.model.taxon.TaxonRelationship">
234 <bean
235 class="eu.etaxonomy.cdm.remote.json.processor.bean.TaxonRelationshipBeanProcessor" />
236 </entry>
237 <entry key="eu.etaxonomy.cdm.model.common.TermBase">
238 <bean
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 -->
249 <!--
250 FIXME must exclude partOf, kindOf, includes, generalizationOf .. to
251 avoid class cast or lazy loading exceptions in TDWG Areas
252 -->
253 </set>
254 </property>
255 </bean>
256 </entry>
257 <entry key="eu.etaxonomy.cdm.model.description.TextData">
258 <bean
259 class="eu.etaxonomy.cdm.remote.json.processor.bean.TextDataBeanProcessor">
260 <property name="replaceMultilanguageText" value="true" />
261 </bean>
262 </entry>
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" />
267 </bean>
268 </entry>
269 <entry key="eu.etaxonomy.cdm.model.reference.ReferenceBase">
270 <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.ReferenceBaseBeanProcessor"/>
271 </entry>
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>
277 </set>
278 </property>
279 </bean>
280 </entry>
281 <entry key="eu.etaxonomy.cdm.api.facade.DerivedUnitFacade">
282 <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.DerivedUnitFacadeBeanProcessor"/>
283 </entry>
284 <entry key="eu.etaxonomy.cdm.model.location.Point">
285 <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.PointBeanProcessor"/>
286 </entry>
287 </map>
288 </property>
289 <property name="jsonPropertyFilter">
290 <bean class="eu.etaxonomy.cdm.remote.json.util.InitializedHibernatePropertyFilter" />
291 </property>
292 <property name="jsonValueProcessors">
293 <map>
294 <entry key="org.hibernate.proxy.HibernateProxy">
295 <bean
296 class="eu.etaxonomy.cdm.remote.json.processor.value.HibernateJSONValueProcessor" />
297 </entry>
298 <entry key="java.util.UUID">
299 <bean
300 class="eu.etaxonomy.cdm.remote.json.processor.value.UUIDJSONValueProcessor" />
301 </entry>
302 <entry key="org.joda.time.DateTime">
303 <bean
304 class="eu.etaxonomy.cdm.remote.json.processor.value.DateTimeJSONValueProcessor" />
305 </entry>
306 <entry key="java.util.Calendar">
307 <bean
308 class="eu.etaxonomy.cdm.remote.json.processor.value.CalendarJSONValueProcessor" />
309 </entry>
310 <entry key="org.joda.time.Partial">
311 <bean
312 class="eu.etaxonomy.cdm.remote.json.processor.value.PartialJSONValueProcessor" />
313 </entry>
314 <entry key="java.lang.Class">
315 <bean
316 class="eu.etaxonomy.cdm.remote.json.processor.value.ClassJSONValueProcessor" />
317 </entry>
318 <entry key="java.util.Map">
319 <bean class="eu.etaxonomy.cdm.remote.json.processor.value.MapJSONValueProcessor" />
320 </entry>
321 </map>
322 </property>
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 -->
328 <value>id</value>
329 <value>annotations</value>
330 <value>cacheStrategy</value>
331 <value>markers</value>
332 <value>createdBy</value>
333 <value>updatedBy</value>
334 <value>inDescription</value>
335 </list>
336 </property>
337 </bean>
338 </beans>