CFV: Project Annotations Pipeline 2.0

Jonathan Gibbons jonathan.gibbons at oracle.com
Fri Jun 27 20:45:00 UTC 2014


JDK 8 saw the introduction of three separate language features affecting 
annotations and annotation processing.

* Annotations on Java Types [1]
* Repeating Annotations [2]
* Lambda Expressions [3], which introduced new positions for annotations

Although these features were developed independently, there is 
non-trivial overlap between them, such as repeated type annotations on a 
parameter type in a lambda expression. In addition, these features all 
have to work well together with existing features such as the Annotation 
Processing API, Language Model API, and javadoc.

The machinery within javac to handle these features needs to be improved.

Therefore, I hereby propose the creation of Project Annotations Pipeline 
2.0 with Joel Borggrén-Franck as the Lead and the Compiler group as the 
sponsoring group.

In accordance with the OpenJDK guidelines [4], this project will provide 
a venue to explore improvements to the overall handling of annotations 
within the javac compilation pipeline. The project will be entirely 
focussed on improving the implementation of the existing language and 
API specifications, and is not intended as a venue to change or enhance 
these specifications.

The initial Reviewers and Committers will be:

* Jonathan Gibbons
* Joel Borggrén-Franck
* Maurizio Cimadamore
* Eric McCorkle
* Jan Lahoda
* Alex Buckley

Initial Authors will be

* Werner Dietl
* Steve Sides
* Andrey Eremeev

The project will host the following mailing list for developers:

* anno-pipeline-dev

The initial source of this project will be based on a clone of a JDK 9 
repository.  Changes from the JDK 9 parent will be synced into 
Annotations Pipeline 2.0 periodically.  Similar to Project Lambda, we 
will follow a "commit first, review later" policy, as code will not flow 
directly from the Annotations Pipeline 2.0 repositories into the JDK 
repositories, but instead will be done by a "curated merge" where select 
changes are extracted into new changesets for incorporation into JDK 
repositories when they are ready for inclusion.

Votes are due by July 11, 2014, 5PM PDT.

Only current OpenJDK Members [5] are eligible to vote on this
motion.  Votes must be cast in the open on the discuss list.
Replying to this message is sufficient if your mail program
honors the Reply-To header.

For Lazy Consensus voting instructions, see [6].


[1] https://www.jcp.org/en/jsr/detail?id=308
[2] http://openjdk.java.net/jeps/120
[3] https://jcp.org/en/jsr/detail?id=335
[4] http://openjdk.java.net/projects/#new-project
[5] http://openjdk.java.net/census#members
[6] http://openjdk.java.net/projects/#new-project-vote


More information about the announce mailing list