Re: IGNITE-2693: question about setting BinaryMarshaller on a cache

2016-03-09 Thread Dood

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

2016-03-09 Thread Alexey Goncharuk
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

2016-03-09 Thread Dood

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

2016-03-09 Thread Alexey Goncharuk
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.
​