[ 
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)

Reply via email to