Hi there,
Working on my JULI-to-SLF4J bridge library (see
<https://github.com/bgandon/juli-to-slf4>),
I have identified a small and invisible issue in the jar packaging of
tomcat-juli-adapters in the extras.
Indeed, the LogFactoryImpl is shipped with the adapters, but it is not supposed
to.
1. Because it is already shipped with the tomcat-juli jar.
2. Because the ${files.tomcat-extras-juli-adapters} in build.xml specifies an
exclusion on it.
But the exclusion is ineffective because it lacks a star at the end.
The issue is invisible because of class loading delegation. Children class
loaders accessing the adapters favor delegation to the System loader.
So the LogFactoryImpl from tomcat-juli (System classpath) always masks the one
erroneously shipped with tomcat-juli-adapters (Catalina classpath).
I would be happy to submit a PR on github for this, I mean at
<https://github.com/apache/tomcat80/pulls>,
but it just looks like it’s not the way you guys are working. :)
Do you need a BZ issue for this?
Or could someone just commit the fix for me please? I include the diff below.
Cheers,
/Benjamin
diff --git a/build.xml b/build.xml
index 4f69f33..492d248 100644
--- a/build.xml
+++ b/build.xml
@@ -484,7 +484,7 @@
<patternset id="files.tomcat-extras-juli-adapters">
<include name="org/apache/juli/logging/impl/**" />
<exclude name="org/apache/juli/logging/impl/WeakHashtable*" />
- <exclude name="org/apache/juli/logging/impl/LogFactoryImpl" />
+ <exclude name="org/apache/juli/logging/impl/LogFactoryImpl*" />
<!-- Javadoc and i18n exclusions -->
<exclude name="**/package.html" />
<exclude name="**/LocalStrings_*" />