[ https://issues.apache.org/jira/browse/MYFACES-3051?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12997739#comment-12997739 ]
Jakob Korherr commented on MYFACES-3051: ---------------------------------------- This method from ResourceHandlerImpl is a perfect example for the ClassLoader mechansim I am describing: private static ResourceBundle getBundle(FacesContext facesContext, Locale locale, String bundleName) { try { // First we try the JSF implementation class loader return ResourceBundle.getBundle(bundleName, locale, ResourceHandlerImpl.class.getClassLoader()); } catch (MissingResourceException ignore1) { try { // Next we try the JSF API class loader return ResourceBundle.getBundle(bundleName, locale, ResourceHandler.class.getClassLoader()); } catch (MissingResourceException ignore2) { try { // Last resort is the context class loader return ResourceBundle.getBundle(bundleName, locale, ClassUtils.getContextClassLoader()); } catch (MissingResourceException damned) { return null; } } } } > Use multiple ClassLoaders to find resources (not only ContextClassLoader) > ------------------------------------------------------------------------- > > Key: MYFACES-3051 > URL: https://issues.apache.org/jira/browse/MYFACES-3051 > Project: MyFaces Core > Issue Type: Bug > Affects Versions: 2.0.4 > Environment: OSGi > Reporter: Jakob Korherr > > In most parts of the code we only use the ContextClassLoader to find Classes > and Resources. However, in some parts we also use the ClassLoader of the > current Class or of a specific Class (e.g. to use myfaces-api and/or > myfaces-impl ClassLoader, see ApplicationImpl.getResourceBundle(), > BeanValidator.postSetValidationGroups(), ResourceHandlerImpl.getBundle() or > FactoryFinder for example). > IMO we should unify this code and maybe provide a custom ClassLoader that > encapsulates three ClassLoaders (ContextClassLoader, myfaces-api and > myfaces-impl). This most certainly would solve a lot of OSGi related problems. > WDYT? -- This message is automatically generated by JIRA. - For more information on JIRA, see: http://www.atlassian.com/software/jira