[ 
https://issues.apache.org/jira/browse/MYFACES-4449?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17598450#comment-17598450
 ] 

Paul Nicolucci commented on MYFACES-4449:
-----------------------------------------

Once the main PR is merged I'll get this back ported to 2.3-next

> Implementation ClassUtils needs methods added to support OSGI runtimes
> ----------------------------------------------------------------------
>
>                 Key: MYFACES-4449
>                 URL: https://issues.apache.org/jira/browse/MYFACES-4449
>             Project: MyFaces Core
>          Issue Type: Bug
>          Components: General
>    Affects Versions: 4.0.0-RC1
>            Reporter: Paul Nicolucci
>            Assignee: Paul Nicolucci
>            Priority: Major
>             Fix For: 2.3-next-M8, 4.0.0-RC2
>
>
> Historically in MyFaces, there existed an {{ClassUtils}} in the 
> implementation as well as the API. In Faces 4.0 the code was refactored to 
> have the {{Classutils}} in the Impl extend the {{ClassUtils}} in the API:
> API: 
> [https://github.com/apache/myfaces/blob/main/api/src/main/java/org/apache/myfaces/core/api/shared/lang/ClassUtils.java]
> Impl: 
> [https://github.com/apache/myfaces/blob/main/impl/src/main/java/org/apache/myfaces/util/lang/ClassUtils.java]
>  
> If we look at the 3.0 branches you'll see the implementation class does not 
> extend the API class:
> API: 
> [https://github.com/apache/myfaces/blob/3.0.x/api/src/main/java/jakarta/faces/component/html/_ClassUtils.java]
> Impl: 
> [https://github.com/apache/myfaces/blob/3.0.x/shared-public/src/main/java/org/apache/myfaces/shared/util/ClassUtils.java]
>  
> Having all the classloading methods in the API class works fine when the API 
> and IMPL are bundled within an application but when trying to integrate 
> MyFaces into an OSGI runtime where the API has no visibility into the 
> implementation then a number of classloading issues occur.
>  
> I've identified the following methods that need to be placed back into the 
> implementation ClassUtils:
>  * public static URL getResource(String resource)
>  * public static InputStream getResourceAsStream(String resource)
>  * public static Class simpleClassForName(String type)
>  * public static Class simpleClassForName(String type, boolean logException)
>  * public static Class classForName(String type) throws ClassNotFoundException



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to