Yeah, Hessian (e.g. 3.1.6 ) correctly does it with its own EnumSerializer.
Our tests confirm that - e.g. when sending query, QueryCacheStrategy enum
value is sent as well. Actually this is how I discovered that we have custom
EnumSerializers - there's bug in Hessian 4 that breaks user serialized
transport. After I removed custom EnumSerializers, which do not have any
Cayenne specific anyways, those tests began to work (i cannot say that of
other serializers we need, like DataRowSerializer, though). Hope Caucho guys
will be friendly - two lines need to be added to Hessian code to fix the
problem
2009/12/12 Andrus Adamchik <andru..bjectstyle.org>
> By now I don't remember what the deal was with enum serialization when this
> code was written, but we were on java 1.5 as well.. Andrey, do you know for
> sure that the Hessian version we have now in the POM is serializing the
> enums correctly on its own?
>
> Andrus
>
>
> On Dec 12, 2009, at 5:17 AM, andre..pache.org wrote:
>
> Author: andrey
>> Date: Sat Dec 12 10:17:42 2009
>> New Revision: 889913
>>
>> URL: http://svn.apache.org/viewvc?rev=889913&view=rev
>> Log:
>> CAY-1331 hessian upgrade stops rop. Removing custom enum serialization..
>> we're on jdk5+
>>
>> Removed:
>>
>> cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/hessian/EnumDeserializer.java
>>
>> cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/hessian/EnumSerializer.java
>>
>> cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/hessian/EnumSerializerFactory.java
>>
>> cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/hessian/EnumSerializerProxy.java
>> Modified:
>>
>> cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/hessian/HessianConnection.java
>>
>> cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/hessian/service/HessianService.java
>>
>> Modified:
>> cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/hessian/HessianConnection.java
>> URL:
>> http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/hessian/HessianConnection.java?rev=889913&r1=889912&r2=889913&view=diff
>>
>> ==============================================================================
>> ---
>> cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/hessian/HessianConnection.java
>> (original)
>> +++
>> cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/hessian/HessianConnection.java
>> Sat Dec 12 10:17:42 2009
>>.. -46,7 +46,7 @@
>> private static Log logger = LogFactory.getLog(HessianConnection.class);
>>
>> public static final String[] CLIENT_SERIALIZER_FACTORIES = new String[]
>> {
>> - ClientSerializerFactory.class.getName(),
>> EnumSerializerProxy.class.getName()
>> + ClientSerializerFactory.class.getName()
>> };
>>
>> protected String url;
>>
>> Modified:
>> cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/hessian/service/HessianService.java
>> URL:
>> http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/hessian/service/HessianService.java?rev=889913&r1=889912&r2=889913&view=diff
>>
>> ==============================================================================
>> ---
>> cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/hessian/service/HessianService.java
>> (original)
>> +++
>> cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/hessian/service/HessianService.java
>> Sat Dec 12 10:17:42 2009
>>.. -28,7 +28,6 @@
>> import javax.servlet.http.HttpServletRequest;
>> import javax.servlet.http.HttpSession;
>>
>> -import org.apache.cayenne.remote.hessian.EnumSerializerProxy;
>> import org.apache.cayenne.remote.hessian.HessianConfig;
>> import org.apache.cayenne.remote.service.HttpRemoteService;
>>
>>.. -47,7 +46,7 @@
>> public class HessianService extends HttpRemoteService implements Service {
>>
>> public static final String[] SERVER_SERIALIZER_FACTORIES = new String[]
>> {
>> - EnumSerializerProxy.class.getName(),
>> ServerSerializerFactory.class.getName()
>> + ServerSerializerFactory.class.getName()
>> };
>>
>> /**
>>
>>
>>
>>
>
-- Andrey
This archive was generated by hypermail 2.0.0 : Sat Dec 12 2009 - 13:34:25 EST