[ https://issues.apache.org/jira/browse/LOG4J2-513?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13882458#comment-13882458 ]
Matt Sicker commented on LOG4J2-513: ------------------------------------ So far, one major refactoring that was required is separating out the class that holds the LoggerContextFactory. For lack of a better class name, I've gone with LoggerContextFactoryContext. This becomes an overridable anchor to the system, where LogManager delegates out to the context class. Included in the context class is the code from LogManager.static, and LogManager.static simply calls that method with override=false. Anyway, I've also added another bundle that includes a BundleActivator that will load/reload the logger context factory using the proper class loader. Needs more testing as I'm still learning how to use OSGi, but it seems simple enough. > Use more OSGi-friendly class loading mechanisms. > ------------------------------------------------ > > Key: LOG4J2-513 > URL: https://issues.apache.org/jira/browse/LOG4J2-513 > Project: Log4j 2 > Issue Type: Sub-task > Components: API > Affects Versions: 2.0-rc1 > Environment: OSGi > Reporter: Matt Sicker > Labels: api, bundle, classloader, osgi > > See for instance > [here|http://njbartlett.name/2012/10/23/dreaded-thread-context-classloader.html]. > Currently, o.a.l.l.util.ProviderUtil has a findClassLoader() method that > depends on using the thread context class loader (TCCL). Now this method may > work in certain environments, but once you're in an OSGi environment, class > loaders are far more modular thanks to each bundle getting its own class > loader. The thread context class loader is oftentimes not the correct one in > such an environment. > I'll do more research on being compatible with OSGi without depending on > OSGi. In the meantime, this ticket will have to do. -- This message was sent by Atlassian JIRA (v6.1.5#6160) --------------------------------------------------------------------- To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org For additional commands, e-mail: log4j-dev-h...@logging.apache.org