[
https://issues.apache.org/jira/browse/IGNITE-22224?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Mikhail Pochatkin updated IGNITE-22224:
---------------------------------------
Description:
Currently, we have follow classes in *ignite-api*
# org.apache.ignite.Ignite
# org.apache.ignite.Ignition
# org.apache.ignite.IgnitionManager
# org.apache.ignite.InitParameters
# org.apache.ignite.InitParametersBuilder
While the first interface still makes sense, since it is the access point to
the entire public API, the others have no such relationship to the API. These
classes and interface are necessary to start *Apache Ignite 3* in embedded mode
and cannot be used on their own, but you need to have access to the
*ignite-runner* module and use implementations from there.
This ticket proposes to remove these interfaces from the module with the public
API and move them to the new module {*}ignite-embedded{*}. Also, by anology
with Thin Clients we should rework *Ignition* interface and create
*IgniteEmbedded* interface which should be entry point to embedded mode.
*IgnitionManager* interface should be removed and *IgniteEmbedded* creation
process reworked to builder pattern like Thin Clients.
Cluster initialization process also should be reworked and all initialization
methods moved to *IgniteEmbedded* interface.
> Rework embedded mode API
> -------------------------
>
> Key: IGNITE-22224
> URL: https://issues.apache.org/jira/browse/IGNITE-22224
> Project: Ignite
> Issue Type: Improvement
> Reporter: Mikhail Pochatkin
> Priority: Major
> Labels: ignite-3
>
> Currently, we have follow classes in *ignite-api*
> # org.apache.ignite.Ignite
> # org.apache.ignite.Ignition
> # org.apache.ignite.IgnitionManager
> # org.apache.ignite.InitParameters
> # org.apache.ignite.InitParametersBuilder
> While the first interface still makes sense, since it is the access point to
> the entire public API, the others have no such relationship to the API. These
> classes and interface are necessary to start *Apache Ignite 3* in embedded
> mode and cannot be used on their own, but you need to have access to the
> *ignite-runner* module and use implementations from there.
>
> This ticket proposes to remove these interfaces from the module with the
> public API and move them to the new module {*}ignite-embedded{*}. Also, by
> anology with Thin Clients we should rework *Ignition* interface and create
> *IgniteEmbedded* interface which should be entry point to embedded mode.
> *IgnitionManager* interface should be removed and *IgniteEmbedded* creation
> process reworked to builder pattern like Thin Clients.
> Cluster initialization process also should be reworked and all initialization
> methods moved to *IgniteEmbedded* interface.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)