JSRs: Java Specification Requests
JSR 198: A Standard Extension API for Integrated Development Environments
JCP version in use: 2.6
Java Specification Participation Agreement version in use: 2.0
JSR 198 has the goal of defining a standard IDE API that allows developers to implement IDE plugins once and have them run with any IDE supporting the specification.
Please direct comments on this JSR to the Spec Lead(s)
Original Java Specification Request (JSR)
Original Summary: JSR 198 is a proposal to create a standard interface for adding extensions to Java Integrated Development Environments (IDEs). This will allow vendors to write an IDE extension once, and have it work on any J2SE-compliant IDE.
Section 1. Identification
Submitting Member: Oracle Corporation
Name of Contact Person: Ted Farrell
E-Mail Address: Ted.Farrell@oracle.com
Telephone Number: +1 650 506 9812
Specification Lead: Jose R. Cronembold
E-Mail Address: Jose.Cronembold@oracle.com
Telephone Number: +1 650 506 6459
Initial Expert Group Membership:
Supporting this JSR:
Sun, Macromedia, JetBrains
Section 2: Request
2.1 Please describe the proposed Specification:
There are a diverse set of IDE products that are designed from the ground up to be extensible platforms where third parties can plug-in new addins to enhance an IDE with additional features. In general, these third party modules are only compatible with the integration API of single IDE. Examining the IDE-Tool integration layer that typical IDE platforms provide it can be observed that:
1. It is a very thin layer of code (compared to the amount of code generally written by the third party to implement a useful tool),
This proposed specification has the goal of defining a standard IDE extension API that allows developers to implement IDE addin modules once and have their feature run with any IDE supporting the standard specification.
Where there are many areas of integration that could be addressed in this JSR, for purposes of the first scope, viability and time, this JSR will focus on the following IDE addin integration points:
1. Menus - The addin will be able to add menu items to the IDE
In conclusion, the Extension API specification defines interfaces that standardize each of the integration points listed above. The proposed Extension API is fully based on the Java 2 platform and does not introduce any proprietary components. Also note that it is up to the individual IDEs to determine how to support these interfaces.
2.2 What is the target Java platform? (i.e., desktop, server, personal, embedded, card, etc.)
JavaTM 2, Standard Edition
2.3 What need of the Java community will be addressed by the proposed specification?
The need for a standard IDE extension API that allows developers to implement IDE addins once and have their feature work on any IDE supporting this specification.
2.4 Why isn't this need met by existing specifications?
Currently, there are no standards addressing this need. Currently all vendors, include Sun Forte (fka: NetBeans) and Eclipse have competing, proprietary technology for IDE integration. While all of these technologies are good, viable solutions for each particular vendor, without a standard interface the industry is still left with having to write addins multiple times to support each vendor's envionrment.
2.5 Please give a short description of the underlying technology or technologies:
J2SE, AWT, Swing
2.6 Is there a proposed package name for the API Specification? (i.e., javapi.something, org.something, etc.)
2.7 Does the proposed specification have any dependencies on specific operating systems, CPUs, or I/O devices that you know of?
2.8 Are there any security issues that cannot be addressed by the current security model?
2.9 Are there any internationalization or localization issues?
The delivered API will feature support for I18N.
2.10 Are there any existing specifications that might be rendered obsolete, deprecated, or in need of revision as a result of this work?
2.11 Please describe the anticipated schedule for the development of this specification.
EG selected : December 15, 2002
First working draft : March 15, 2003
2.12 Please describe the anticipated working model for the Expert Group working on developing this specification.
Email, phone conference, etc. (TBD)
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.
The RI & TCK will be stand-alone and based off of J2SE 1.4 or higher.
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).
2.15 Please provide a description of the business terms for the Specification, RI and TCK that will apply when this JSR is final.
It is Oracle's intention to create open source licenses that are as similar as possible to an "Apache"-style license. Additions or changes to this basic open source format will be limited to those terms required to comply with the JSPA, or which explain terms or limitations of the licenses granted under the JSPA. Currently intended terms are as follows:
Oracle will grant a royalty-free source code license to use, modify and distribute the Reference Implementation.
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.
Because all vendors currently have different IDEs, APIs and functionality, it is considered best to wait and let the initial EG determine the initial draft and APIs for this JSR.
3.2 Explanation of how these items might be used as a starting point for the work.