Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
4.0.0-RC1
-
None
Description
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:
If we look at the 3.0 branches you'll see the implementation class does not extend the API class:
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