ignite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Denis Magda (JIRA)" <j...@apache.org>
Subject [jira] [Created] (IGNITE-3501) Step-by-step guidance on how to configure and use binary type across Java and .Net
Date Tue, 19 Jul 2016 05:15:21 GMT
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.


[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

View raw message