-
-
Notifications
You must be signed in to change notification settings - Fork 999
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
Fully automate OSGi metadata creation and fix broken OSGi-metadata in slf4j-api #330
Conversation
243ffb8
to
7cc4851
Compare
I did that now to further reduce the number of changes and removed some restriction (that where applied to make the generated metadata as similar as before), which mainly add some before missing metadata. I have not tired all bridges in an OSGi environment, but for some I suspect that they are currently not working in an OSGi runtime, due to that missing Package imports. |
@ceki could you please review this change? If it makes the review simpler for you I can further reduce this to only adjust the root |
4711a8b
to
317b6db
Compare
Did that now, as you requested in #327 (comment). Once this is merged I can create a follow-up with the remaining modules. If you prefer I can split that in smaller chunks as well. |
@ceki can you please have a look at this? |
@ceki Is there anything I can do to speed up the completion of this PR? |
@HannesWell I will look into this issue in the next few days. Maybe we can have a chat on Google meet or similar? |
I see that @ceki has already responded, but I didn't do anything. My guess as a fellow FOSS maintainer is that I got lucky and caught @ceki on a quiet day (or one when they wanted a distraction). Sometimes I manage to review incoming PRs within hours, and sometimes it takes weeks. |
I think PRs consisting for baby steps also helps. |
Great, thank you in advance. I send you a message on the mail-address you use in your slf4j-commits.
Fully understand. I already made this change much smaller compared to the initial PR, which covered all slf4j modules.
Yes, I know. I was just a bit desperate, hoping that this PR is not forgotten and that I don't annoy with my gentle reminders. |
317b6db
to
0190f8f
Compare
Enhance the generated OSGi metadata for all slf4j-modules in the following ways: - Restore the Bundle-SymbolicName, Bundle-Name, Bundle-Vendor and Bundle-DocURL from SLF4J-2.0.5 and before - Removes Export-Package: META-INF.versions.9 - Removes self-Imports of exported package (has to be added again in a follow up, where desired) - Remove unnecessary BND-internal headers Additionally move the maven-bundle-plugin configuration from the execution configuration up into the configuration of the plugin so that it can be easier overwritten in child-modules. Signed-off-by: Hannes Wellmann <[email protected]>
Only use the maven-bundle-plugin to generate all OSGi metadata into slf4j-api's Manifest.MF file. This unifies the resulting MANIFEST.MFs that are currently partly generated and partly statically defined. Furthermore it fixes the following flaws in the currently generated OSGi metadata of slf4j-api: - Import only the exported org.slf4j.spi package (like in slf4j 2.0.5 and before) - Replace the deprecated 'Bundle-RequiredExecutionEnvironment' header by a corresponding required 'osgi.ee' capability Signed-off-by: Hannes Wellmann <[email protected]>
0190f8f
to
ef4c1ce
Compare
Already split this PR into two commits that I also can submit in two PRs. @ceki just let me know if you prefer to have the second one in a second PR. |
@ceki did you have some time to look into this? |
@HannesWell There are several directives in the Felix Bundle Plug-in that are included in this PR that I do not understand. For example, what does "<_exportcontents>!META-INF.versions.9,*;-noimport:=true</_exportcontents>" do? |
The value On the other hand
The reason is that the self-import of packages exported by a bundle can occasional cause problems and for API artifacts like slf4j it is actually not really useful. Furthermore that was the structure of the package exports/imports before #324. |
This is a follow-up on #324 and a reduced version of #327.
It would be possible to further reduce the number of changes by using the maven-bundle-plugin and its ability to merge the generated OSGi Manifest content with a already existing one. But spliting the OSGi metadata in an automatically generated part controlled in the pom and a static part controlled in MANIFEST.MF files IMHO makes it eventually harder to understand.
Nevertheless if you insist to make this change as minimalist as possible I can change this PR accordingly.
What this PR is doing is, to only use the bnd-maven-plugin to generate all OSGi metadata into slf4j's Manifest.MF files. This unifies the resulting MANIFEST.MFs that are currently partly generated and partly statically defined and fixes the following aspects:
corresponding required 'osgi.ee' capability