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