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

Absorb JSR-305 annotations #5

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

Conversation

earcam
Copy link

@earcam earcam commented Jul 17, 2018

Although JSR305 was never approved, lots of projects and tools use the ones from com.google.code.findbugs:jsr305 (which also include those from net.jcip:jcip-annotations).

Given that common-annotations-api is the new collective home for javax.annotation, adding these annotations would resolve the split-package issue and allow many projects to continue to build with a simple dependency switch.

Related:
spotbugs/spotbugs#421
spotbugs/spotbugs#698

I have previously signed the ECA (earcam@gmail.com)

Signed-off-by: Caspar MacRae <earcam@gmail.com>
@ggam
Copy link
Contributor

ggam commented Jul 19, 2018

Note that the intellectual property of these files is owned by the JCP and the specification lead, which could be an individual at that time (https://jcp.org/en/jsr/detail?id=305) so perhaps not even Oracle could contribute the code. In addition, you'd need Oracle to approve the use of those javax.* classes.

As a sidenote, if I'm not mistaken, Oracle never approved the published artifacts that make use of those classes and so they are really illegal.

@earcam
Copy link
Author

earcam commented Jul 19, 2018

@ggam knew the copy+paste+PR was always going to be the easier bit...

I was hoping for reprieve on grounds of harmless historical illegality.

Wasn't aware of the exact IP details, thank you for the information. I have emailed the London Java Community (which has a seat on JCP and a fair number of experts), to see if anyone will opine on legal challenges.

Side note: To support claims of used by "many projects", am trying to find a way to query maven central for total (direct and transitive) dependents. So far all I can find is mvnrepository stats which lists 5,052 direct dependencies (this list includes SLF4J, Guava, Spring, Hadoop, Spark, Jersey, Maven Plexus).

@ggam
Copy link
Contributor

ggam commented Sep 8, 2018

@earcam did you receive any answer about this?

@earcam
Copy link
Author

earcam commented Sep 8, 2018

@ggam yes I messaged the spec leads (one was busy, one responded positively) and then my local JUG (Martijn Verburg responded positively and kindly agreed to champion this, including the JCP/Oracle/legal bits).
May I add to your z06... email to a thread with Martijn (which includes exchange with spec lead)?

@ggam
Copy link
Contributor

ggam commented Sep 8, 2018 via email

@sdavids
Copy link

sdavids commented Sep 9, 2019

Any progress?

@gilbertoca
Copy link

@earcam @dblevins I think we could make a collaborative efforts like the one here with Apache NetBeans project apache/netbeans#1764

@michael-schnell
Copy link

+1

The "javax.annotation" problem really is a mess because of the mentioned split package problem. There is also a dicsussion going on at the Guava project (See issue Migrate off of jsr305). I guess any solution would be highly welcome.

In addition, you'd need Oracle to approve the use of those javax.* classes.

I think it would be fine to directly migrate to the jakarta.annotation namespace instead of using javax.annotation. Changing the annotations to the jakarta prefix is less effort compared with circumventing the split stuff.

@michael-schnell
Copy link

How about changing the namespace to "jakarta" and the merging this PR?

@michael-schnell
Copy link

As I cannot change the original PR, I created a new one: #91

@lukasj
Copy link
Contributor

lukasj commented Sep 6, 2021

AFAIK, putting stuff into javax namespace is prohibited

@alexei-osipov
Copy link

alexei-osipov commented Dec 5, 2022

AFAIK, putting stuff into javax namespace is prohibited

As I understand, the whole idea is that PR in this specific project because "jakartaee" still have permissions to use "javax" namespace. However that may be not true or only partially true. So it's necessary to clarify if that permitted or not and what exactly blocks this PR.

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 this pull request may close these issues.

None yet

8 participants