Hi,
Jandex 2.4.0.Final was released on Wed (with a couple of bigger changes
that are technically breaking, but not for ordinary Jandex API callers: 3
new methods on `IndexView`, new storage format version) and now it’s time
to talk about $SUBJ.
As you might have noticed, I’m slowly taking over Jandex maintenance from
Jason. We have agreed that it’s time to do a 3.0 release with some changes
that are visibly breaking for everyone. Hence this wide distribution.
You can find the current plan for 3.0 here:
https://github.com/wildfly/jandex/milestone/3, but I’ll repeat the
important points here:
- Move to SmallRye, both on GitHub and in the Maven coordinates space. The
`groupId` will change, but the package name will not. This has the
potential to cause nondeterministic classpath, so configuring Enforcer to
ban `org.jboss:jandex` will be a good idea.
- Move to Java 8 as the base.
- Uniform API to access annotations. Currently, each `AnnotationTarget` has
a slightly different set of methods to access annotations, and I’d really
like to unify that.
- `Indexer.index()` will no longer return `ClassInfo`. The very existence
of this return type prevents doing post-processing in `Indexer.complete()`,
which we’d need to do to properly resolve some recursive generic
declarations. The recently introduced `Index.of()` methods are a nicer way
to quickly construct an index for test purposes.
- Runtime-invisible annotations (i.e., `RetentionPolicy.CLASS`) will be
visible in the index. Hopefully this is just an FYI.
- I’d like to merge the Maven plugin into the main codebase, and hopefully
also the `typeannotation-test` artifact.
Also, Jandex will use (at this point, more like continue using) GitHub
Issues for issue tracking. The JANDEX project in Red Hat JIRA will be
decommissioned.
Of course, the purpose of this email is to let you voice any concerns you
may have. Feel free to either reply to this email, or file an issue in the
existing Jandex repo on GitHub (it will be transferred to SmallRye, so
nothing will get lost), or add a comment to one of the existing issues.
Thanks,
LT