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