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

Missing org.apache.tomcat:tomcat-annotations-api artifact #10

Closed
boris-petrov opened this issue Oct 13, 2022 · 3 comments
Closed

Missing org.apache.tomcat:tomcat-annotations-api artifact #10

boris-petrov opened this issue Oct 13, 2022 · 3 comments

Comments

@boris-petrov
Copy link
Contributor

boris-petrov commented Oct 13, 2022

Hi, thanks for the awesome initiative with this plugin!

I believe org.apache.tomcat:tomcat-annotations-api could be added to JakartaAnnotationApiRule.

Also com.sun.activation:javax.activation in JakartaActivationApiRule.

Also com.sun.mail:javax.mail to JakartaMailApiRule.

Also, I'm not sure how these rules are supposed to work, but why doesn't JakartaActivationApiRule contain javax.activation:activation in it (or is that implicitly coming from the capability's group and name)?

@jjohannes
Copy link
Member

jjohannes commented Oct 17, 2022

Thanks for pointing these out @boris-petrov. I will see that I add them. Unfortunately the whole Jakarta/Javax situation is very complex and has several dimensions. I am not so sure anymore where to head with these in this plugin 🙁 (see also #6).

How are the rules supposed to work?
I took the approach to ask: "How would this look if the Capabilities would have been published in the metadata of the components?"

Then, the Capability Coordinates are defined by the first component that was ever published with the capability. In the case of activation, the first published component is javax.activation:activation. We do not need to add the javax.activation:activation as Capability to that one, because a component implicitly has the capability that corresponds to its own coordinates. So we only add the javax.activation:activation to all the other components that also have it but were published later (and could in theory have published this capability information).

@boris-petrov
Copy link
Contributor Author

Thanks for the explanation about the capability coordinates, that clears things up!

As for the Jakarta/Javax situation... believe me, I know. 😄 I saw #6, yes, and I also would very much like to "choose" javax (as I still can't migrate to jakarta) and to have all dependencies follow that... but that's difficult and not that much needed. Actually what #1 requests is perhaps easier to implement in the plugin (you can say if that's true or not) and would almost do what #6 is about - people would just need to configure resolutions that set all dependencies to be javax or jakarta. That's actually what I personally did in my project and it works rather fine.

Keep your head up, this plugin that you wrote is great and is a very good approach to a very horrible problem. :)

@jjohannes
Copy link
Member

Thanks for the encouragement!

I did the proposed extensions and publish 0.6.

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

No branches or pull requests

2 participants