Denis Magda created IGNITE-3501:
-----------------------------------
Summary: Step-by-step guidance on how to configure and use binary
type across Java and .Net
Key: IGNITE-3501
URL: https://issues.apache.org/jira/browse/IGNITE-3501
Project: Ignite
Issue Type: Improvement
Components: platforms
Affects Versions: 1.6
Reporter: Denis Magda
Assignee: Denis Magda
Priority: Critical
Fix For: 1.7
It's quite a common task and endeavor to work with objects, stored in Ignite
caches, in their deserialized form on Java and .Net sides. This requires
special setup at the configuration level. Presently we don't have a page that
list this particular steps with examples.
The following can be used as a draft
1) Explicitly configure all your custom types on Java side using
BinaryConfiguration.typeConfigurations property [1] or
BinaryConfiguration.classNames property [2].
2) Explicitly configure the same corresponding .Net types on .Net side using
PlatformDotNetBinaryConfiguration.types property as it shown under XML tab on
this page [3]. Remove BinaryConfiguration bean from .Net XML configuration if
you use it before. Set additional required properties to
PlatformDotNetBinaryConfiguration bean if BinaryConfiguration used any.
3) If you use custom keys then make sure that both "hashCode" and "equals"
methods are implemented properly on both Java and .Net ends.
4) On .Net side you should implement IBinarizable interface [4] or go with
Ignite Reflective Serialization [5] for your custom objects.
5) On Java side you can implement Binarizable interface as well or rely on
reflective serialization making sure that your objects don't implement
Externalizable interface and don't override readObject/writeObject methods [6].
Please let me know if everything works fine on your side after applying the
listed steps.
Regards,
Denis
[1]
https://apacheignite.readme.io/docs/binary-marshaller#configuring-binary-objects
[2]
https://ignite.apache.org/releases/1.6.0/javadoc/org/apache/ignite/configuration/BinaryConfiguration.html#setClassNames(java.util.Collection)
[3] https://apacheignite-net.readme.io/docs/serialization#ibinarizable
[4] https://apacheignite-net.readme.io/docs/serialization#ibinarizable
[5]
https://apacheignite-net.readme.io/docs/serialization#ignite-reflective-serialization
[6] https://apacheignite.readme.io/docs/binary-marshaller#basic-concepts
On .Net side the configuration must be provided for App.config, C# config and
Spring XML.
On Java side the configuration must be provided for Java and Spring XML configs.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)