Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Don't require log4j-core for o.e.passage.lic.base #1131

Closed
HannesWell opened this issue Oct 10, 2022 · 1 comment
Closed

Don't require log4j-core for o.e.passage.lic.base #1131

HannesWell opened this issue Oct 10, 2022 · 1 comment

Comments

@HannesWell
Copy link
Contributor

At the moment the Plug-in org.eclipse.passage.lic.base imports the package org.apache.logging.log4j.core.config because it uses classes from it in the class org.eclipse.passage.lic.internal.base.logging.Logging.
This causes problem for those that don't want to use log4j-2 as logging framework implementation in their application. In such cases one uses a bridge bundle that redirect all calls to the log4j-2 API to the actually used Logging-framwork implementation, for example logback. There are corresponding bundles for that and that works fine.
But the package org.apache.logging.log4j.core.config is not part of the log4j.api bundle but only of the log4j.core bundle (both are from Maven-Central, not from Eclipse-Orbit, which is a modified form). Therefore o.e.passage.lic.base requires log4j.core even if that is not used in the corresponding application and o.e.passage.lic.base is required by many other Passage plugins, which then transitivly pull in log4j too.

Therefore I want to ask you to make log4j-core not a required for o.e.passage.lic.base anymore.
Currently I can think about two ways how this could be achieved:

  • Make Package-Import org.apache.logging.log4j.core.config optional in the Manifest.
    Then o.e.passage.lic.base is only wired to log4j-core, if another Plug-in or Feature with a non-optional requirement adds it to the application but it does not pull in log4j-core into apps launched from the IDE or build by Tycho/P2.
  • Move the Logging class to a less basic Plug-in and remove the package-import entirely from passage.lic.base
    Maybe o.e.passage.lic.execute, which also uses it and can export it to o.e.passage.loc.operator.seal.
    But for the use in org.eclipse.passage.lic.jetty the class either has to be copied or the latter plug-in also has to depend on passage.lic.execute, but I don't know if that is wanted.

I can provide a PR implementing the approach you prefer.

HannesWell added a commit to HannesWell/eclipse.passage that referenced this issue Oct 12, 2022
HannesWell added a commit to HannesWell/eclipse.passage that referenced this issue Oct 17, 2022
ruspl-afed added a commit that referenced this issue Oct 26, 2022
Move Logging class from LIC Base to LIC Execute
Rework LIC Jetty internal API to postpone log configuration
Add (temporary until better solution) dependency from LBC Jetty to LIC
Execute

Signed-off-by: Alexander Fedorov <[email protected]>
ruspl-afed added a commit that referenced this issue Oct 26, 2022
Remove log4j-core import from LIC Base

Signed-off-by: Alexander Fedorov <[email protected]>
eparovyshnaya added a commit that referenced this issue Oct 26, 2022
Don't require log4j-core for o.e.passage.lic.base #1131
@HannesWell
Copy link
Contributor Author

Fixed by #1140

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant