Re: IGNITE-2693: question about setting BinaryMarshaller on a cache
On 3/9/2016 7:46 PM, Alexey Goncharuk wrote: Note that withKeepBinary() is just a way to tell a cache not to deserialize values when doing a get or running an entry processor. The concept of binary object does not belong solely to caches - you can get an instance of IgniteBinary interface from Ignite and use binary objects in computations, for example. For me there would be more confusion if each cache had a separate marshaller. What would then happen if you put an instance of BinaryObject to a cache with JDK marshaller? When marshaller is global, the answer is simple - BinaryObject is either available or not :) Alexey, thanks for the taking the time to explain the reasoning!
Re: IGNITE-2693: question about setting BinaryMarshaller on a cache
Note that withKeepBinary() is just a way to tell a cache not to deserialize values when doing a get or running an entry processor. The concept of binary object does not belong solely to caches - you can get an instance of IgniteBinary interface from Ignite and use binary objects in computations, for example. For me there would be more confusion if each cache had a separate marshaller. What would then happen if you put an instance of BinaryObject to a cache with JDK marshaller? When marshaller is global, the answer is simple - BinaryObject is either available or not :)
Re: IGNITE-2693: question about setting BinaryMarshaller on a cache
On 3/9/2016 6:43 PM, Alexey Goncharuk wrote: Hi, The current version of test is not very clean and it works only because withKeepBinary() is a noop. The correct version would be to use plain cache for non-binary-object entry processor and use withKeepBinary for binary-object entry processor. You can see that EntryProcessor creation is encapsulated in a separate method testClosure() which is overridden in test inheritors. The same thing should be done for the cache. Alexey, thank you for the comment. On a side note: you do not find it confusing that you can set a marshaller on a grid but you get a binary cache from another cache via withKeepBinary()? Thanks!
Re: IGNITE-2693: question about setting BinaryMarshaller on a cache
Hi, The current version of test is not very clean and it works only because withKeepBinary() is a noop. The correct version would be to use plain cache for non-binary-object entry processor and use withKeepBinary for binary-object entry processor. You can see that EntryProcessor creation is encapsulated in a separate method testClosure() which is overridden in test inheritors. The same thing should be done for the cache.