On Mon, Jul 14, 2008 at 7:20 PM, Les Hazlewood <[EMAIL PROTECTED]> wrote:
> The most important implementation is JSecurityLogFactory - please look
> at the source code and you'll see how I do my graceful degredation
> check.  That is really all there is to it, plus the one-liner methods
> of the respective Log implementations.

I had a look at the code, and while not the uttermost expert on this
topic, I think it would break pretty badly in an OSGi environment
unless the user takes careful steps. Reason is that the TCCL would
commonly return the application class loader:
"If not set, the default is the ClassLoader context of the parent
Thread. The context ClassLoader of the primordial thread is typically
set to the class loader used to load the application."

Since the application class loader would have no knowledge of SLF4J
loaded by a bundle classloader, ClassUtils won't find SLF4J, even it
if where to import it. The common way to get around this is for the
client to set the TCCL to the bundle classloader but that's not a
pretty solution. But, I'll let someone better versed in OSGi correct
me before making any final decision based on this analysis ;-)

Of course, the basic SLF4J approach would work fine in an OSGi
environment since it doesn't have to do any classloading magic.

/niklas

Reply via email to