IntellectualSites / IntellectualSites/PlotSquared
Proposal for further annotation cleanup
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 653
- Forks
- 975
- Avg merge
- 2m
- Merged PRs (30d)
- 6
Description
In https://github.com/IntellectualSites/PlotSquared/commit/3eb485e90043ee64df78fbecaa83686e3b27b598 I dropped informational Guava and JB annotations and reduced our overall annotation library count from 6 to 5. This is a proposal to determine which frameworks are needed still or can be removed or transitioned to checkerqual, our core annotation framework.
All annotation frameworks mentioned are shaded and provided at runtime.
-
JB (org.jetbrains)
Used only in Fawe classes and a single time inClickStripTransform, looks like a wrong import. To match with upstream, Fawe switched to javax some months ago. We can adapt the changes and remove JB overall. -
IJ Lang (org.intellij.lang)
I couldn't find a single use case in the code, it provides@Language,@Patternand@RegExpat runtime, do we need it for some third party dependency? -
JavaX (javax.annotation)
Used in a few injectable classes. Originally introduced when we switched to Guice 4, because Guice didn't recognize nullability provided by qual. We are now using Guice 5 and should evaluate again whether that is still true. It is used inPlotTitleas well, which is non injectable.
Edit: Taking a look at the Guice documentation, checkerqual nullability is supported. -
JSR 305 (com.google.code.findbugs)
Required for cloud until the JavaX scenario from above has been evaluated. -
JSR 330 (javax.inject)
We don't use that a single time in our codebase, our@Injectand@Singletonis provided by Guice. To my knowledge, JSR 330 has been published in 2009, do we really have dependencies that demand such ancient libraries?
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with commit 3eb485e90043ee64df78fbecaa83686e3b27b598 and inspect annotation usage in Fawe classes, ClickStripTransform, PlotTitle, and the cloud dependencies. Check the Guice 5 documentation and dependency declarations to determine which annotation frameworks remain necessary; done means documenting and applying an agreed cleanup without breaking required runtime annotations.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- build-system
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 32/100