Hello all,
I am working on IGNITE-2693 with Vlad Ozerov's help. I am somewhat of a
Java newbie so please be gentle ;-)
I am curious about something - after reading the Javadocs and Binary
Marshaller docs on Ignite's documentation websites, I think that the
documentation is not very friendly or even somewhat misleading. Or maybe
it is the design that is puzzling to me :-)
For example, we use withKeepBinary() on a cache instance to get a binary
cache that utilizes the binary marshaller. But this is not a setting
that is "settable" on a per cache basis - we do not allow for a
per-cache method to set a desired marshaller, this seems to be reserved
for the IgniteConfiguration() interface/implementation(s)
setMarshaller() method and is a grid-wide setting.
The background to this is that I have "fixed" the withKeepBinary()
interface to throw an exception if the marshaller used is not binary
(the ticket explains the reason why we want this). Apparently we
(silently?) assume a binary marshaller everywhere but in one of the
unrelated tests in the test suite for some reason an optimized
marshaller is used and as a result of this (with my new change) these
tests are failing [1]. I am trying to fix this but in the process I
realized that you cannot set the marshaller through a
CacheConfiguration() method (no such thing exists), this has to be done
at a higher level (the IgniteConfiguration). However, the whole test is
written to inherit a grid configuration with an optimized marshaller (is
what it looks like to me)....
Am I just horribly confused and missing something very obvious? Thanks!
[1]
org.apache.ignite.internal.processors.cache.GridCacheOffHeapTieredEvictionAbstractSelfTest