ignite-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Artem Shutak (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (IGNITE-2191) Binary marshaller: support user classes with the same simple name
Date Mon, 18 Jan 2016 17:10:39 GMT

    [ https://issues.apache.org/jira/browse/IGNITE-2191?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15105531#comment-15105531

Artem Shutak commented on IGNITE-2191:

Set SimpleNameIdMapper in configuration automatically if .Net/Cpp enabled - implemented.

In process of fixing .Net tests I faced with the following issues:
# We cannot set FullNameIdMapper as default before 2395 will be fixed. So, set SimpleNameIdMapper
as default.
# In current implementation we cannot use the same classes in .Net and Java (enum for example).
The root cause of the issue is that 'typeName' is used as ID for all information about marshalling.
Possible solutions:
#* Add {{BinaryConfiguration.setUseSimpleTypeName(boolean b)}} property.
#* Add {{BinaryIdMapper.typeName(String fullClassName)}} method
#* Reimplement internals to use typeId as ID for all information about marshalling.

> Binary marshaller: support user classes with the same simple name
> -----------------------------------------------------------------
>                 Key: IGNITE-2191
>                 URL: https://issues.apache.org/jira/browse/IGNITE-2191
>             Project: Ignite
>          Issue Type: Bug
>          Components: cache
>    Affects Versions: ignite-1.4
>            Reporter: Denis Magda
>            Assignee: Artem Shutak
>            Priority: Critical
>              Labels: important
>             Fix For: 1.6
> Presently the user won't be able to use across the cluster object that have a single
simple name.
> As an example if the user has 'org.comp.MyObject' and 'org.apache.comp.MyObject' then
he won't be able to have them both in a cluster because marshalling mechanism supports uniqueness
at simple name level only.
> There are several reasons for that:
> - interoperability with other platforms;
> - queries that use simple name is their 'where' clause.
> In general according to the API as a workaround the user can implement its own BinaryIdMapper
returning a precise id for every class. However there is a bug in BinaryContext that passes
simple name rather than a full name to a BinaryIdMapper implementation. BinaryIdMapper must
be fixed as well.

This message was sent by Atlassian JIRA

View raw message