[ 
https://issues.apache.org/jira/browse/IGNITE-15382?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrey Mashenkov updated IGNITE-15382:
--------------------------------------
    Description: 
TupleImpl implements a public API interface Tuple and resides in ignite-api 
module.
Public API implementation must be hidden from a user to avoid direct 
usage/instantiation.

This can be achieved in next ways
1. Move TupleImpl to an internal package of the e.g. ignite-table module and 
use ServiceLoader for tuple factory.
This introduces implicit module dependency and a new factory interface/class.
2. Make TupleImpl package-private class.
We will not be able to create a TupleImpl object directly, but seems it is ok 
to use factory methods.

Let's make TupleImpl  a package-private class.

  was:
TupleImpl implements a public API interface Tuple and resides in ignite-api 
module.
Public API implementation must be hidden from a user to avoid direct 
usage/instantiation.

This can be achieved in next ways
1. Move TupleImpl to an internal package of the e.g. ignite-table module and 
use ServiceLoader for tuple factory.
This introduces implicit module dependency and a new factory interface/class.
2. Make TupleImpl package-private class.
We will not be able to create a TupleImpl object directly, but seems it is ok 
to use factory methods.


> Decouple API and implementation for Tuple.
> ------------------------------------------
>
>                 Key: IGNITE-15382
>                 URL: https://issues.apache.org/jira/browse/IGNITE-15382
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Andrey Mashenkov
>            Assignee: Andrey Mashenkov
>            Priority: Major
>              Labels: UX, ignite-3
>             Fix For: 3.0.0-alpha3
>
>          Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> TupleImpl implements a public API interface Tuple and resides in ignite-api 
> module.
> Public API implementation must be hidden from a user to avoid direct 
> usage/instantiation.
> This can be achieved in next ways
> 1. Move TupleImpl to an internal package of the e.g. ignite-table module and 
> use ServiceLoader for tuple factory.
> This introduces implicit module dependency and a new factory interface/class.
> 2. Make TupleImpl package-private class.
> We will not be able to create a TupleImpl object directly, but seems it is ok 
> to use factory methods.
> Let's make TupleImpl  a package-private class.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to