You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Andrey Mashenkov (Jira)" <ji...@apache.org> on 2021/09/22 09:16:00 UTC
[jira] [Updated] (IGNITE-15556) Replace SchemaBuilder interfaces
with class public classes.
[ https://issues.apache.org/jira/browse/IGNITE-15556?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andrey Mashenkov updated IGNITE-15556:
--------------------------------------
Description:
SchemaBuilders implements a public API interface and resides in the ignite-schema module.
Public API implementation must be hidden from a user to avoid direct usage/instantiation, but we need a factory.
This can be achieved in next ways
1. Use ServiceLoader for schema builders factory.
This introduces implicit module dependency and a new factory interface/class.
2. Drop interfaces and make schema builders top-level public classes.
As there is no need to have interfaces, for now, let's make the schema builder classes public.
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.
> Replace SchemaBuilder interfaces with class public classes.
> -----------------------------------------------------------
>
> Key: IGNITE-15556
> URL: https://issues.apache.org/jira/browse/IGNITE-15556
> Project: Ignite
> Issue Type: Improvement
> Reporter: Andrey Mashenkov
> Assignee: Andrey Mashenkov
> Priority: Major
> Labels: UX, ignite-3
> Fix For: 3.0.0-alpha3
>
>
> SchemaBuilders implements a public API interface and resides in the ignite-schema module.
> Public API implementation must be hidden from a user to avoid direct usage/instantiation, but we need a factory.
> This can be achieved in next ways
> 1. Use ServiceLoader for schema builders factory.
> This introduces implicit module dependency and a new factory interface/class.
> 2. Drop interfaces and make schema builders top-level public classes.
> As there is no need to have interfaces, for now, let's make the schema builder classes public.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)