I am ok with the change. I would just updating the related deps in our
webapps. A backing arquillian test would be useful, I guess.

While looking into it (related to logging & classloaders), it might be
interesting to also have a look on [1].

For TomeEE 10, I would like to first have the owb4 branch on main,
though (just waiting for johnzon 2.0.0).

Gruß
Richard



[1] https://issues.apache.org/jira/projects/TOMEE/issues/TOMEE-4242



Am Mittwoch, dem 25.10.2023 um 15:19 +0100 schrieb Jonathan Gallimore:
> I'm hoping the URLClassLoaderFirst change would mean that the slf4j-
> api
> 1.7.x could keep working for you. I'd be happy to add an Arquillian
> test to
> check that as part of a PR for the change. Does that sound ok?
> 
> The upstream dependencies are not pulling in logback.
> 
> If someone wanted to use logback with SLF4J, in a Jakarta EE version
> of
> TomEE, by bundling both slf4j-api and logback in their application,
> they'd
> have to use slf4j-api 2.x (because the Jakarta EE version of logback
> requires that API level).
> 
> Cheers,
> 
> Jon
> 
> On Wed, Oct 25, 2023 at 3:06 PM Jonathan S. Fisher
> <[email protected]>
> wrote:
> 
> > While we use slf4j-api 1.7.x, I'm totally ok with a 2.x upgrade,
> > although it'd be best if the dependency wasn't seen by the apps
> > somehow. I know that's a lot of classloader acrobatics :)
> > 
> > Just to clarify though, the upstream dependencies are or are not
> > including logback? If they are including logback, that transitive
> > dependency ought to be blocked... it's up to the final developer to
> > decide which binding implementation to use. Including a binding
> > (over
> > the default sysout binding) would likely cause problems for users.
> > 
> > 
> > On Wed, Oct 25, 2023 at 8:58 AM Jonathan Gallimore
> > <[email protected]> wrote:
> > > 
> > > Hi All
> > > 
> > > There's a couple of suggestions I'd like to run past the group to
> > > see if
> > > there's any thoughts / potential issues.
> > > 
> > > The first is: updating to SLF4J 2.x API and JUL implementation
> > > (specifically 2.0.9) in TomEE. There's a couple of rationale
> > > here:
> > > 
> > > - The 1.x branch of SLF4J is no longer maintained
> > > - At least one of the bindings (Logback) requires a SLF4J 2.x API
> > > for
> > > Jakarta EE support
> > > 
> > > Secondly, thanks to this bit of code in the class loader:
> > > 
> > https://github.com/apache/tomee/blob/main/container/openejb-core/src/main/java/org/apache/openejb/util/classloader/URLClassLoaderFirst.java#L600-L619
> > ,
> > > it is possible for a webapp to include its own SLF4J API and
> > > binding in
> > its
> > > WEB-INF/lib to use its own logging config. With SLF4J 2.x,
> > > org/slf4j/impl/StaticLoggerBinder.class is not included with the
> > > binders,
> > > nor is it called, so shouldSkipSlf4j() returns true, even when
> > > SLF4J and
> > a
> > > binder is present in the web app. Simply removing this method,
> > > and the
> > > single place it is called seems to enable the web app to do its
> > > own
> > logging
> > > with its own binder.
> > > 
> > > I've run a TCK build with both of these changes present, and it
> > > looks ok.
> > > Does anyone have any feedback with respect to these proposals? Is
> > > anyone
> > > out there using SLF4J in their applications with these versions
> > > of TomEE
> > > who would be impacted?
> > > 
> > > Thanks
> > > 
> > > Jon
> > 
> > 
> > 
> > --
> > Jonathan | [email protected]
> > Pessimists, see a jar as half empty. Optimists, in contrast, see it
> > as
> > half full.
> > Engineers, of course, understand the glass is twice as big as it
> > needs to
> > be.
> > 

Reply via email to