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