More from the JEP 261 backlog
Jonathan Gibbons
jonathan.gibbons at oracle.com
Tue Jul 23 22:09:08 UTC 2024
Stephan,
While the encoding used for `ct.sym` may be an internal implementation
detail, the question you maybe should be asking is, "what is the
content?" as in, "what are the modules (if any), classes, interfaces,
and their members, that are deemed to be part of the "public" API for
that release. If you start with modules (JDK 9 and later) beginning with
`java.*` or `jdk.*` that do not include the word`internal`, and look for
the public classes in the exported packages of those modules, you'll be
off to a good start.
Once you have the filter, at least for releases using modules, should be
easy enough to write an annotation processor that can list the relevant
API in any given release of JDK. For releases before JDK 9, the
top-level filter may be a little more ad-hoc.
-- Jon
On 7/23/24 6:30 AM, Stephan Herrmann wrote:
> Alex, Joe,
>
> From both your answers I learned that I was working from assumptions
> that are not shared by Oracle. I apologize.
>
> Just to show where we are coming from, and to mention that all this
> was done in the best of intentions to help the Java community at
> large, some words of explanation:
>
> Back in the time of JEP 261, we - developers of the Eclipse compiler
> for Java, who are not laywers - believed that we were required to
> implement the --release option in order to claim support for Java 9.
> Within the existing architectural context, using information from
> ct.sym was literally the only possibility we saw.
>
> As of now the underlying problem remains, but we'll have to come back
> with a different set of questions.
>
> regards,
> Stephan
>
More information about the amber-spec-observers
mailing list