I've been able to get processes deployed and started on sybase, but not without some changes. I'm sure that the changes I've made is not what was intended by the API, so can somebody please have a look at the code and tell me how to do this properly.
As you will see in the hbm mapping, I'm using my own type for the blob:
<property name="blob" type="com.bfm.bpm.hibernate.SybaseBlobType"><column name="BLOB_VALUE_" /></property>
I tried to change this to binary and use the BlobStrategyBinary, but at deploy time, there is no environment, so my strategy does not get picked up and the BlobStrategyBlob (the default) gets used. Once the environment is there, the binary strategy kicks in and I get NPE's because the lob.bytes variable is null.
The only change to my strategy was to use the binary stream instead of calling getBytes on the SerializableBlob because I get "java.lang.UnsupportedOperationException: Blob may not be manipulated from creating session" if I do. This is probably because I'm doing something wrong with my custom hibernate blob type. I'm sure I'm not supposed to write my own strategy since I had to put it in the jbpm package because of the protected access to the Lob member variables that I need access to.
Sorry for the long post, but I would appreciate any feedback.
I've made some more progress on this and it appears that I can use the BlobStrategyBinary strategy safely at runtime, but not during deployment because of the "missing environment" problem. Is this a bug or is there another way to approach this?
Here is the relevant line from the execution hibernate mapping:
<property name="bytes" type="binary"><column name="BLOB_VALUE_" /></property>