a51317b5dbf0598bed16cfb20bc9907d6d5801d0
[cdmlib.git] / cdmlib-remote / src / main / webapp / WEB-INF / 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 </map>
48 </property>
49 <property name="jsonPropertyFilter">
50 <bean class="net.sf.json.filters.OrPropertyFilter">
51 <constructor-arg>
52 <bean class="eu.etaxonomy.cdm.remote.json.util.InitializedHibernatePropertyFilter" />
53 </constructor-arg>
54 <constructor-arg>
55 <bean class="eu.etaxonomy.cdm.remote.json.util.CardinalityPropertyFilter">
56 <property name="includeToOneRelations" value="false" />
57 <property name="includeToManyRelations" value="false" />
58 <property name="exceptions">
59 <set>
60 <value>FeatureTree.root</value>
61 <value>FeatureNode.children</value>
62 <value>FeatureNode.feature</value>
63 <value>TreeNode.data</value>
64 </set>
65 </property>
66 </bean>
67 </constructor-arg>
68 </bean>
69 </property>
70 <property name="jsonValueProcessors">
71 <map>
72 <entry key="org.hibernate.proxy.HibernateProxy">
73 <bean
74 class="eu.etaxonomy.cdm.remote.json.processor.value.HibernateJSONValueProcessor" />
75 </entry>
76 <entry key="java.util.UUID">
77 <bean
78 class="eu.etaxonomy.cdm.remote.json.processor.value.UUIDJSONValueProcessor" />
79 </entry>
80 <entry key="org.joda.time.DateTime">
81 <bean
82 class="eu.etaxonomy.cdm.remote.json.processor.value.DateTimeJSONValueProcessor" />
83 </entry>
84 <entry key="java.util.Calendar">
85 <bean
86 class="eu.etaxonomy.cdm.remote.json.processor.value.CalendarJSONValueProcessor" />
87 </entry>
88 <entry key="org.joda.time.Partial">
89 <bean
90 class="eu.etaxonomy.cdm.remote.json.processor.value.PartialJSONValueProcessor" />
91 </entry>
92 <entry key="java.lang.Class">
93 <bean
94 class="eu.etaxonomy.cdm.remote.json.processor.value.ClassJSONValueProcessor" />
95 </entry>
96 <entry key="java.util.Map">
97 <bean class="eu.etaxonomy.cdm.remote.json.processor.value.MapJSONValueProcessor" />
98 </entry>
99 </map>
100 </property>
101 <property name="ignoreDefaultExcludes" value="true" />
102 <property name="excludes">
103 <list value-type="java.lang.String">
104 <value>declaringClass</value><!-- DefaultExclude -->
105 <value>metaClass</value><!-- DefaultExclude -->
106 <value>id</value>
107 <value>cacheStrategy</value>
108 </list>
109 </property>
110 </bean>
111
112 <!--
113 =================================================
114 configuration for RESTful taxonomy service
115 =================================================
116 -->
117 <bean name="jsonConfigTaxonomy" class="eu.etaxonomy.cdm.remote.json.JsonConfigFactoryBean"
118 init-method="init">
119 <property name="jsonBeanProcessorMatcher">
120 <bean
121 class="eu.etaxonomy.cdm.remote.json.processor.matcher.HibernateProxyBeanProcessorMatcher" />
122 </property>
123 <property name="jsonBeanProcessors">
124 <map>
125 <entry key="org.hibernate.proxy.HibernateProxy">
126 <bean
127 class="eu.etaxonomy.cdm.remote.json.processor.bean.HibernateProxyBeanProcessor" />
128 </entry>
129 <entry key="eu.etaxonomy.cdm.model.taxon.TaxonNode">
130 <bean
131 class="eu.etaxonomy.cdm.remote.json.processor.bean.TaxonNodeDaoBeanProcessor" />
132 </entry>
133 </map>
134 </property>
135 <property name="jsonPropertyFilter">
136 <bean class="eu.etaxonomy.cdm.remote.json.util.InitializedHibernatePropertyFilter" />
137 </property>
138 <property name="jsonValueProcessors">
139 <map>
140 <entry key="org.hibernate.proxy.HibernateProxy">
141 <bean
142 class="eu.etaxonomy.cdm.remote.json.processor.value.HibernateJSONValueProcessor" />
143 </entry>
144 <entry key="java.util.UUID">
145 <bean
146 class="eu.etaxonomy.cdm.remote.json.processor.value.UUIDJSONValueProcessor" />
147 </entry>
148 <entry key="org.joda.time.DateTime">
149 <bean
150 class="eu.etaxonomy.cdm.remote.json.processor.value.DateTimeJSONValueProcessor" />
151 </entry>
152 <entry key="java.util.Calendar">
153 <bean
154 class="eu.etaxonomy.cdm.remote.json.processor.value.CalendarJSONValueProcessor" />
155 </entry>
156 <entry key="org.joda.time.Partial">
157 <bean
158 class="eu.etaxonomy.cdm.remote.json.processor.value.PartialJSONValueProcessor" />
159 </entry>
160 <entry key="java.lang.Class">
161 <bean
162 class="eu.etaxonomy.cdm.remote.json.processor.value.ClassJSONValueProcessor" />
163 </entry>
164 <entry key="java.util.Map">
165 <bean class="eu.etaxonomy.cdm.remote.json.processor.value.MapJSONValueProcessor" />
166 </entry>
167 </map>
168 </property>
169 <property name="ignoreDefaultExcludes" value="true" />
170 <property name="excludes">
171 <list value-type="java.lang.String">
172 <value>declaringClass</value><!-- DefaultExclude -->
173 <value>metaClass</value><!-- DefaultExclude -->
174 <value>id</value>
175 <value>cacheStrategy</value>
176 </list>
177 </property>
178 </bean>
179
180 <!--
181 =================================================
182 configuration for RESTful portal service
183 =================================================
184 -->
185
186 <bean name="jsonConfigPortal" class="eu.etaxonomy.cdm.remote.json.JsonConfigFactoryBean"
187 init-method="init">
188 <property name="jsonBeanProcessorMatcher">
189 <bean
190 class="eu.etaxonomy.cdm.remote.json.processor.matcher.CdmProxyBeanProcessorMatcher" />
191 </property>
192 <property name="jsonBeanProcessors">
193 <map>
194 <entry key="org.hibernate.proxy.HibernateProxy">
195 <bean
196 class="eu.etaxonomy.cdm.remote.json.processor.bean.HibernateProxyBeanProcessor" />
197 </entry>
198 <entry key="eu.etaxonomy.cdm.model.taxon.Taxon">
199 <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.TaxonBeanProcessor" />
200 </entry>
201 <entry key="eu.etaxonomy.cdm.model.name.TaxonNameBase">
202 <bean
203 class="eu.etaxonomy.cdm.remote.json.processor.bean.TaxonNameBaseBeanProcessor" />
204 </entry>
205 <entry key="eu.etaxonomy.cdm.model.name.NameRelationship">
206 <bean
207 class="eu.etaxonomy.cdm.remote.json.processor.bean.NameRelationshipBeanProcessor" />
208 </entry>
209 <entry key="eu.etaxonomy.cdm.model.taxon.TaxonRelationship">
210 <bean
211 class="eu.etaxonomy.cdm.remote.json.processor.bean.TaxonRelationshipBeanProcessor" />
212 </entry>
213 <entry key="eu.etaxonomy.cdm.model.common.TermBase">
214 <bean
215 class="eu.etaxonomy.cdm.remote.json.processor.bean.TermBaseBeanProcessor">
216 <property name="replaceRepresentations" value="true" />
217 <property name="excludes">
218 <set value-type="java.lang.String">
219 <value>infraGenericMarker</value><!-- FIXME leads to IllegalStateException if not excluded -->
220 <value>partOf</value><!-- DefinedTermBase -->
221 <value>kindOf</value><!-- DefinedTermBase -->
222 <value>includes</value><!-- DefinedTermBase -->
223 <value>generalizationOf</value><!-- DefinedTermBase -->
224 <value>vocabulary</value><!-- DefinedTermBase -->
225 <!--
226 FIXME must exclude partOf, kindOf, includes, generalizationOf .. to
227 avoid class cast or lazy loading exceptions in TDWG Areas
228 -->
229 </set>
230 </property>
231 </bean>
232 </entry>
233 <entry key="eu.etaxonomy.cdm.model.description.TextData">
234 <bean
235 class="eu.etaxonomy.cdm.remote.json.processor.bean.TextDataBeanProcessor">
236 <property name="replaceMultilanguageText" value="true" />
237 </bean>
238 </entry>
239 <entry key="eu.etaxonomy.cdm.model.media.Media">
240 <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.MediaBeanProcessor">
241 <property name="replaceTitle" value="true" />
242 <property name="replaceDescription" value="true" />
243 </bean>
244 </entry>
245 <entry key="eu.etaxonomy.cdm.model.reference.ReferenceBase">
246 <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.ReferenceBaseBeanProcessor"/>
247 </entry>
248 </map>
249 </property>
250 <property name="jsonPropertyFilter">
251 <bean class="eu.etaxonomy.cdm.remote.json.util.InitializedHibernatePropertyFilter" />
252 </property>
253 <property name="jsonValueProcessors">
254 <map>
255 <entry key="org.hibernate.proxy.HibernateProxy">
256 <bean
257 class="eu.etaxonomy.cdm.remote.json.processor.value.HibernateJSONValueProcessor" />
258 </entry>
259 <entry key="java.util.UUID">
260 <bean
261 class="eu.etaxonomy.cdm.remote.json.processor.value.UUIDJSONValueProcessor" />
262 </entry>
263 <entry key="org.joda.time.DateTime">
264 <bean
265 class="eu.etaxonomy.cdm.remote.json.processor.value.DateTimeJSONValueProcessor" />
266 </entry>
267 <entry key="java.util.Calendar">
268 <bean
269 class="eu.etaxonomy.cdm.remote.json.processor.value.CalendarJSONValueProcessor" />
270 </entry>
271 <entry key="org.joda.time.Partial">
272 <bean
273 class="eu.etaxonomy.cdm.remote.json.processor.value.PartialJSONValueProcessor" />
274 </entry>
275 <entry key="java.lang.Class">
276 <bean
277 class="eu.etaxonomy.cdm.remote.json.processor.value.ClassJSONValueProcessor" />
278 </entry>
279 <entry key="java.util.Map">
280 <bean class="eu.etaxonomy.cdm.remote.json.processor.value.MapJSONValueProcessor" />
281 </entry>
282 </map>
283 </property>
284 <property name="ignoreDefaultExcludes" value="true" />
285 <property name="excludes">
286 <list value-type="java.lang.String">
287 <value>declaringClass</value><!-- DefaultExclude -->
288 <value>metaClass</value><!-- DefaultExclude -->
289 <value>id</value>
290 <value>annotations</value>
291 <value>cacheStrategy</value>
292 <value>markers</value>
293
294 <value>inDescription</value>
295 </list>
296 </property>
297 </bean>
298 </beans>