[
https://issues.apache.org/jira/browse/IGNITE-19475?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andrey N. Gura updated IGNITE-19475:
------------------------------------
Labels: iep-103 ignite-3 (was: ignite-3)
> Implement class loaders hierarchy
> ---------------------------------
>
> Key: IGNITE-19475
> URL: https://issues.apache.org/jira/browse/IGNITE-19475
> Project: Ignite
> Issue Type: New Feature
> Reporter: Mikhail Pochatkin
> Assignee: Ivan Gagarkin
> Priority: Major
> Labels: iep-103, ignite-3
> Attachments: image-2023-05-15-14-09-41-734.png
>
>
> h3. Class loaders hierarchy
> !image-2023-05-15-14-09-41-734.png!
>
> For user defined classes loading and execution are responsible class loaders.
> The class loaders are built in the hierarchy pictured above.
>
> The Bootstrap, the extension and the system class loaders are provided by the
> runtime environment and each class loader first delegates class loading logic
> to the parent class loader.
>
> Such an approach is not suitable for all user use cases. For example it is
> impossible to override behavior of some classes. Apache Ignite 3 provides
> more flexible behavior of class loaders which could be managed by a user -
> Ignite chained class loader. In general, the Ignite class loader behave like
> web application classloader in popular web application containers (e.g.
> Apache Tomcat):
>
> * Ignite class loader disallows to override classes from the following
> packages:
> * org.java.*
> * org.javax.*
> * org.apache.ignite.*
> If the system tries to find a class from packages listed above then the
> Ignite class loader should delegate this logic to the parent class loader
> first (in our hierarchy it is the system class loader).
> * Ignite class loader allows to override any non-system and non-Ignite
> class. If the system tries to find class from any package that is not listed
> in the previous item then Ignite class loader should try to find class over
> corresponding deployment unit and delegate this logic to the parent class
> loader in case of failure.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)