Use of JCP site is subject to the
JCP Terms of Use and the
Oracle Privacy Policy
|
JSRs: Java Specification Requests
JSR 199: JavaTM Compiler API
JCP version in use: 2.11 Java Specification Participation Agreement version in use: 2.0 Description: A service provider API that allows a Java program to select and invoke a Java Language Compiler programmatically. Expert Group Transparency: Public Communications Issue Tracking Team
The following updates have been made to the original request.
2024.07.09
Maintenance Lead: Jan Lahoda E-Mail Address: jan.lahoda Telephone Number: - Fax Number: - 2019.07.16:The Maintenance of JSR 199 was moved to JCP 2.11.
2013.10.21:
2.19 Please describe the communications channel you have established for the public to observe Expert Group deliberations, provide feedback, and view archives of all Expert Group communications.Interested parties can submit issues at bugs.sun.com, which will be filtered into JBS, the JDK Bug System hosted at https://bugs.openjdk.java.net.
2.20 What is the URL of the Issue Tracker that the public can read, and how does the public log issues in the Issue Tracker?The JSR 199 related issues in JBS
2.21 Please provide the location of the publicly accessible document archive you have created for the Expert Group.Since JSR 199 is in maintenance, there is no expert group.
2011.12.02
Maintenance Lead: Jonathan Gibbons E-Mail Address: jonathan.gibbons Telephone Number: +1 408 276 7432 Fax Number: - 2006.10.242.15 Please provide a description of the business terms for the Specification, RI and TCK that will apply when this JSR is final.Sun will license the RI binary for this JSR free of charge.This JSR will be included in the Java SE 6 platform release. The JSR TCK will thus be licensed as part of the Java SE 6 TCK under the terms described in the JSR-270 business terms. Sun will license the standalone TCK for this JSR for a flat fee of $50 K. In addition, Sun will make the standalone TCK available for no charge to Java SE TCK licensees, qualified individuals and not for profit organizations.
2006.10.12: 2.13 Please describe how the RI and TCK will de delivered, i.e. as part of a profile or platform edition, or stand-alone, or both. Include version information for the profile or platform in your answer.We plan to include the RI and TCK as part of Java SE 6 as well as making the TCK available standalone. 2.15 Please provide a description of the business terms for the Specification, RI and TCK that will apply when this JSR is final.Sun will license the RI binary for this JSR free of charge. Original Java Specification Request (JSR)
Identification |
Request |
Contributions
Section 1. Identification Submitting Member: Sun Microsystems, Inc Name of Contact Person: Neal Gafter E-Mail Address: Neal.Gafter@sun.com Telephone Number: +1 408 276 7080 Fax Number: +1 408 276 7700 Specification Lead: Neal Gafter E-Mail Address: Neal.Gafter@sun.com Telephone Number: +1 408 276 7080 Fax Number: +1 408 276 7700 Initial Expert Group Membership: TBD Supporting this JSR: Sun Microsystems Section 2: Request
2.1 Please describe the proposed Specification:The JavaTM Compiler API is a set of interfaces that describes the functions provided by a JavaTM Language Compiler, and a service provider framework so vendors can provide implementations of these interfaces. The interfaces abstract the way a compiler interacts with its environment. While the existing command-line versions of compiler receive their inputs from the file systems and deposit their outputs there, reporting errors in a single output stream, the new compiler API will allow a compiler to interact with an abstraction of the file system. This abstraction will likely be provided by an extension of the NIO facilities in Tiger (1.5), and allow users to provide source and class files (and paths) to the compiler in the file system, in jar files, or in memory, and allowing the compiler to deposit its output similarly. Diagnostics will be returned from a compiler as structured data, with both pre- and post-localization messages available. In addition, the new API should provide a facility for a compiler to report dependency information among compilation units. Such information can assist an integrated development environment in reducing the scope of future recompilations. Future versions of this API might expose more of the structure of the program, for example the declaration structure of the program (ala the javadoc API), program annotations (JSR 175) or even the code itself (ASTs: Abstract Sytntax Trees). These are not goals of the initial version of this specifications. 2.2 What is the target Java platform? (i.e., desktop, server, personal, embedded, card, etc.)J2SE 2.3 What need of the Java community will be addressed by the proposed specification?The main initial audiences are 2.4 Why isn't this need met by existing specifications?There simply isn't anything like this in the platform. 2.5 Please give a short description of the underlying technology or technologies:The reference implementation will likely be built on Sun's javac. 2.6 Is there a proposed package name for the API Specification? (i.e., javapi.something, org.something, etc.)javax.compiler 2.7 Does the proposed specification have any dependencies on specific operating systems, CPUs, or I/O devices that you know of?No 2.8 Are there any security issues that cannot be addressed by the current security model?No 2.9 Are there any internationalization or localization issues?These will be explicitly addressed by the specification. 2.10 Are there any existing specifications that might be rendered obsolete, deprecated, or in need of revision as a result of this work?No 2.11 Please describe the anticipated schedule for the development of this specification.We hope to have the specification completed in time to be included in the next major revision of the JavaTM platform (Tiger). Note that while this API would be part of Tiger, it would not be a required part of the JRE. 2.12 Please describe the anticipated working model for the Expert Group working on developing this specification.Sun will lead the specification and implementation work, with experts contributing to the API specification. 2.13 Please describe how the RI and TCK will de delivered, i.e. as part of a profile or platform edition, or stand-alone, or both. Include version information for the profile or platform in your answer.We plan to include the RI and TCK as part of J2SE 1.5. NOTE that this section has been updated from this original request.2.14 Please state the rationale if previous versions are available stand-alone and you are now proposing in 2.13 to only deliver RI and TCK as part of a profile or platform edition (See sections 1.1.5 and 1.1.6 of the JCP 2 document).Not applicable. 2.15 Please provide a description of the business terms for the Specification, RI and TCK that will apply when this JSR is final.The terms will be the same as those for J2SE 1.5, which are broadly the same as J2SE 1.4. NOTE that this section has been updated from this original request.Section 3: Contributions
3.1 Please list any existing documents, specifications, or implementations that describe the technology. Please include links to the documents if they are publicly available.See http://groups.yahoo.com/group/javax_compiler for some very early thoughts. Sun's javac will likely form the basis of the reference implementation. 3.2 Explanation of how these items might be used as a starting point for the work.The expert group will consider them as a starting point for ideas on defining the specification. |