parent project should not impose our choice of runtime logging system

Description

This is redux. The parent project at present still imposes our choice of logging system on descendants, including indirect descendants such as non-Shibboleth consumers of the opensaml library. We should reorganise things so that this is not the case.

This will probably mean setting both logback-classic and the slf4j bridges as managed "runtime" dependencies but only including them by default as "test" dependencies so that they are not dragged in to projects with a different runtime logging environment.

Environment

None

Activity

Show:

Scott Cantor January 21, 2021 at 2:04 PM

This was probably resolved earlier than 11.2, but since I'm pegging the other changes to that version it's simplest.

To address my earlier comment, we do now specify the JCL bridge directly in OpenSAML where needed, as test scope, but the rest of our projects generally use Spring and rely on Spring's bridge.

Ian Young August 14, 2020 at 7:43 AM

Resolved by JPAR-169?

Scott Cantor January 4, 2019 at 9:52 PM

We're back to messing with this because of Spring adding its own JCL bridge jar.

While my change today is nominally ok for the IdP, OpenSAML has the HttpClient dependency that means something has to satisfy the JCL dependency to use that feature. I guess that's ordinarily an "optional" dependency? For now I made it test scope there but perhaps changing it to optional is the right move there for security-impl and our other libraries that depend on HttpClient?

Ian Young August 20, 2014 at 9:28 PM
Edited

Yes, that's an example of the change I meant. I wasn't able to test that far downstream because of the tests failing in the IdP.

We don't want to include jcl-over-slf4j as a general dependency as that would prevent someone deploying with a real commons-logging implementation of logging. We need to only include it "at the last minute" as a runtime dependency.

Scott Cantor August 20, 2014 at 7:33 PM

Not sure it's 100% correct, but the java-idp-testbed is essentially a deployment of the IdP, so I guess it needs runtime deps on at least logback and jcl-over-slf4j

I think jcl-over-slf4j should really be a dependency of the entire stack here because we have libraries that depend on the commons-logging API. From what I can tell, Apache's httpclient and Spring both reference it, and without that in the testbed, the context won't start per the above.

Fixed
Pinned fields
Click on the next to a field label to start pinning.

Details

Assignee

Reporter

Fix versions

Affects versions

Created August 7, 2014 at 10:49 AM
Updated January 21, 2021 at 2:04 PM
Resolved January 21, 2021 at 2:04 PM