CINXE.COM

The Java Community Process(SM) Program - JSRs: Java Specification Requests - detail JSR# 199

<!-- ** BEGIN: header.jsp ** //--> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3c.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <link href="/includes/css/menu.css" rel="stylesheet" type="text/css"></link> <link href="/includes/css/style.css" rel="stylesheet" type="text/css"></link> <!--[if lt IE 6]><link href="/includes/css/style5.css" rel="stylesheet" type="text/css" ></link><![endif]--> <!--[if gte IE 5]><link href="/includes/css/style6.css" rel="stylesheet" type="text/css" ></link><![endif]--> <link href="/includes/css/tabs.css" rel="stylesheet" type="text/css"></link> <script type="text/javascript" src="/includes/scripts/tabs.js"></script> <script type="text/javascript" src="/includes/scripts/menu.js"></script> <title>The Java Community Process(SM) Program - JSRs: Java Specification Requests - detail JSR# 199</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <script>!function(a){var e="https://s.go-mpulse.net/boomerang/",t="addEventListener";if("False"=="True")a.BOOMR_config=a.BOOMR_config||{},a.BOOMR_config.PageParams=a.BOOMR_config.PageParams||{},a.BOOMR_config.PageParams.pci=!0,e="https://s2.go-mpulse.net/boomerang/";if(window.BOOMR_API_key="UE9G5-FVEGY-MA38N-LMMNY-SBQP2",function(){function n(e){a.BOOMR_onload=e&&e.timeStamp||(new Date).getTime()}if(!a.BOOMR||!a.BOOMR.version&&!a.BOOMR.snippetExecuted){a.BOOMR=a.BOOMR||{},a.BOOMR.snippetExecuted=!0;var i,_,o,r=document.createElement("iframe");if(a[t])a[t]("load",n,!1);else if(a.attachEvent)a.attachEvent("onload",n);r.src="javascript:void(0)",r.title="",r.role="presentation",(r.frameElement||r).style.cssText="width:0;height:0;border:0;display:none;",o=document.getElementsByTagName("script")[0],o.parentNode.insertBefore(r,o);try{_=r.contentWindow.document}catch(O){i=document.domain,r.src="javascript:var d=document.open();d.domain='"+i+"';void(0);",_=r.contentWindow.document}_.open()._l=function(){var a=this.createElement("script");if(i)this.domain=i;a.id="boomr-if-as",a.src=e+"UE9G5-FVEGY-MA38N-LMMNY-SBQP2",BOOMR_lstart=(new Date).getTime(),this.body.appendChild(a)},_.write("<bo"+'dy onload="document._l();">'),_.close()}}(),"".length>0)if(a&&"performance"in a&&a.performance&&"function"==typeof a.performance.setResourceTimingBufferSize)a.performance.setResourceTimingBufferSize();!function(){if(BOOMR=a.BOOMR||{},BOOMR.plugins=BOOMR.plugins||{},!BOOMR.plugins.AK){var e=""=="true"?1:0,t="",n="bdpnbet4tppfqz7ccpaa-f-7641a2b54-clientnsv4-s.akamaihd.net",i="false"=="true"?2:1,_={"ak.v":"39","ak.cp":"1164872","ak.ai":parseInt("695954",10),"ak.ol":"0","ak.cr":1,"ak.ipv":4,"ak.proto":"http/1.1","ak.rid":"10836042","ak.r":6099,"ak.a2":e,"ak.m":"dscx","ak.n":"essl","ak.bpcip":"8.222.208.0","ak.cport":56796,"ak.gh":"124.155.222.84","ak.quicv":"","ak.tlsv":"tls1.2","ak.0rtt":"","ak.0rtt.ed":"","ak.csrc":"-","ak.acc":"reno","ak.t":"1742869440","ak.ak":"hOBiQwZUYzCg5VSAfCLimQ==hiRADPGF5/jyJgEKXlUdEswY2FW+9GBuxi/40dL5Or+2ugmCQeDuqFSoHOKusZc3gutAqRoCTbuzY4cn9RgBWFqZ7f5NmJdVoBmAVpxpShnoYN61vcJmxMrGi2NW5weMGCeD8J2KaA5GmpX4Akg3+ulUGZJIA6jmEt/Kt22Qd93hkrGb8BVPriDqmHtreFiCk6zcxPODWHdpvXt2Ka3/6PdlDp6ZFaz+Nfrczq+4NQ+MAp6l1dK+q0RLr3loU77Yw+JcJJWaJrA+pdAl46Gxr35WTl3y1Zwvia9dUelqgOJr+4eKBNRgmeziNC7W3hhlEcgUq2JUWffVrnk5PP9Z9X5PhI8Zmx0qKN2r1hDZFSfHi+2ePDyaEs6XYGi7J8wAPTRzEGTQRoYPVsJRJ08U6ldp1qrsOL52zaXHqXPhkrw=","ak.pv":"24","ak.dpoabenc":"","ak.tf":i};if(""!==t)_["ak.ruds"]=t;var o={i:!1,av:function(e){var t="http.initiator";if(e&&(!e[t]||"spa_hard"===e[t]))_["ak.feo"]=void 0!==a.aFeoApplied?1:0,BOOMR.addVar(_)},rv:function(){var a=["ak.bpcip","ak.cport","ak.cr","ak.csrc","ak.gh","ak.ipv","ak.m","ak.n","ak.ol","ak.proto","ak.quicv","ak.tlsv","ak.0rtt","ak.0rtt.ed","ak.r","ak.acc","ak.t","ak.tf"];BOOMR.removeVar(a)}};BOOMR.plugins.AK={akVars:_,akDNSPreFetchDomain:n,init:function(){if(!o.i){var a=BOOMR.subscribe;a("before_beacon",o.av,null,null),a("onbeacon",o.rv,null,null),o.i=!0}return this},is_complete:function(){return!0}}}}()}(window);</script></head> <body onload="P7_initPM(0,1,0,0,-1)"> <a name="top"></a> <div id="header"> <div id="logo"> <a href="/en/home/index"><img src="/images/spacer.gif" alt="Java Community Process" height="81" width="151"></a> </div> <div id="tools"> <div class="search"> <form name="search" action="/en/jsr/summary" method="get" onsubmit="return validate_search()"> <input name="id" value="Search JSRs" size="16" class="form" onfocus="nullify_if_equal(this, 'Search JSRs')" type="text"> <a href="javascript:document.search.submit()" onclick="return validate_search()"><img src="/images/button_go.gif" width="21" height="16" border="0" alt="Submit this Search" name="sub_search"></a> </form> </div> <div class="tools"> <a href="/en/press/pressroom">Press Room</a> &nbsp;|&nbsp; <a href="http://java.com/java/download/index.jsp?cid=jdp78399">Get Java Here</a> &nbsp;|&nbsp; <!-- <a href="javascript:void(0)">Print Format</a> &nbsp;|&nbsp;&nbsp; --> </div> </div> <div style="clear: right;"></div> <div class="topbar"><img src="/images/spacer.gif" alt="" height="3" width="154"></div> <div id="update"> </div> </div> <!-- ** BEGIN: Content Table ** //--> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <!-- ** BEGIN: Navigation Column ** //--> <td width="150" id="leftcontent" valign="top"> <!-- Navigation Placeholder //--> <div class="bar"><img src="/images/hr_dots1.gif" alt="" height="3" width="150"></div> <!-- begin find JSRs form --> <!-- IMPORTANT! do not convert this form to Struts < html : form > tag. javascript change of form.action property fails. --> <img src="/images/hd_find-jsrs.gif" alt="Find JSRs" height="18" width="150"> <form name="findjsr" action="/en/jsr/summary" method="get" class="pt5" onsubmit="return validate_findjsr()"> <input name="id" size="18" class="form" value="Search JSRs" onfocus="nullify_if_equal(this, 'Search JSRs')" type="text"> <a href="javascript:document.findjsr.submit()" onclick="return validate_findjsr()"><img src="/images/button_go.gif" width="21" height="16" border="0" alt="Submit this Search" name="sub_search"></a> </form><br><br> <!-- ** Menu Start ** //--> <ul id="p7PMnav"> <li><a href="/en/jsr/platform">JSRs by Platform</a></li> <li><a href="/en/jsr/tech">JSRs by Technology</a></li> <li><a href="/en/jsr/stage">JSRs by Stage</a></li> <li><a href="/en/jsr/ec">JSRs by Committee</a></li> <li><a href="/en/jsr/all">List of All JSRs</a></li> <!--end find JSRs form --> <div style="clear: both;"><img src="/images/spacer.gif" alt="" height="25" width="1"></div> <!--begin my JCP --> <img src="/images/hd_my-jcp.gif" alt="My JCP" height="18" width="150"> <form name="login" method="get" action="/en/user/login" > <input name="Sign-in" type="submit" title="Sign-in" value="Sign-in" /> </form> <div style="clear:both"><img src="/images/global/spacer.gif" width="1" height="3" alt=""></div> <div class="noNav"> <a href="/en/user/register">Register for Site</a> </div> <div class="bar"><img src="/images/hr_dots1.gif" alt="" height="3" width="150"></div> <div class="noNav" style="color: #666666; padding: 0;"> Use of JCP site is subject to the <a href="/en/home/terms" style="display:inline;padding: 0">JCP Terms of Use</a> and the <a href="http://www.oracle.com/us/legal/privacy/index.html" style="display:inline;padding: 0" href="">Oracle Privacy Policy</a> </div> <div style="clear:both"><img src="/images/global/spacer.gif" width="1" height="25" alt=""></div> <!--begin JCP info --> <img src="/images/hd_jcp-info.gif" alt="JCP Info" height="18" width="150"> <li><a href="/en/procedures/overview" class="p7PMtrg">About JCP</a> <ul> <li><a href="/en/procedures/overview">Program Overview</a></li> <li><a href="/en/procedures/jcp2">JCP Process Document</a></li> <li><a href="/en/whatsnew/calendar">Calendar</a></li> <li><a href="/en/participation/members">JCP Members</a></li> <li><a href="/en/participation/committee">Executive Committee</a></li> <li><a href="/en/whatsnew/elections">Elections</a></li> </ul> </li> <li><a href="/en/participation/overview" class="p7PMtrg">Get Involved</a> <ul> <li><a href="/en/participation/overview">Overview</a></li> <li><a href="/en/participation/membership">Becoming a JCP Member</a></li> <li><a href="/java-in-education">Java in Education</a></li> </ul> </li> <li><a href="/en/resources/contents" class="p7PMtrg">Community Resources</a> <ul> <li><a href="/en/resources/contents">Overview</a></li> <li><a href="/en/resources/tutorials">Tutorials</a></li> <li><a href="/en/resources/multimedia">JCP Podcasts</a></li> <li><a href="/en/resources/guide">Spec Lead Guide</a></li> <li><a href="/en/resources/tdk">TCK Tool & Info</a></li> <li><a href="/en/resources/license_reference">License Reference</a></li> </ul> </li> <li><a href="/en/press/pmo" class="p7PMtrg">Community News</a> <ul> <li><a href="/en/press/pmo">News</a></li> <li><a href="/en/press/news/awards/awards_main">Programs &amp; Awards</a></li> <li><a href="/en/press/releases">Press Releases</a></li> <li><a href="/en/press/success">Success Stories</a></li> </ul> </li> <li><a href="/en/introduction/faq">FAQ</a></li> <li><a href="/en/resources/contacts">Contact Us</a></li> <div style="clear: both;"><img src="/images/spacer.gif" alt="" height="25" width="1"></div> <!--[if lte IE 6]><style>#p7PMnav a{height:1em;}#p7PMnav li{height:1em;float:left;clear:both;width:100%}</style><![endif]--> <!--[if IE 6]><style>#p7PMnav li{clear:none;}</style><![endif]--> <!--[if IE 7]><style>#p7PMnav a{zoom:100%;}#p7PMnav li{float:left;clear:both;width:100%;}</style><![endif]--> </ul> <!--begin ad space --> <div class="ads"> <a href="http://java.com/java/download/index.jsp?cid=jdp78399" target="_blank"><img style="display: ;" src="/images/ad_banner2.gif" alt="Ad Banner" border="1" height="70" width="150"></a> </div> <!--end ad space --> <!-- ** Menu End ** //--> &nbsp;<br> &nbsp;<br> &nbsp;<br> &nbsp;<br> <img src="/images/common/trans.gif" alt="" width="1" height="150"><br> </td> <!-- ** END: Navigation Column ** //--> <!-- ** BEGIN: Gutter Column ** //--> <td width="10" nowrap><img src="/images/common/trans.gif" alt="" width="10" height="1"></td> <!-- ** END: Gutter Column ** //--> <!-- ** BEGIN: Content Column ** //--> <td width="100%" valign="top"> <script type="text/javascript"> String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g,""); } String.prototype.ltrim = function() { return this.replace(/^\s+/,""); } String.prototype.rtrim = function() { return this.replace(/\s+$/,""); } function validate_search() { if (document.search.id.value == "Search JSRs" || document.search.id.value.trim().length == 0) { alert("Search terms must be entered first"); return false; } return true; } function validate_findjsr() { if (document.findjsr.id.value == "Search JSRs" || document.findjsr.id.value.trim().length == 0) { alert("Search terms must be entered first"); return false; } return true; } function nullify_if_equal(field, str) { // alert("val=" + field.value); if (field.value == str) { field.value = ""; } } </script> <!-- ** END: header.jsp ** //--> <!-- BEGIN NAVIGATION TABS --> <div id="p7TP1"> <div class="p7TP_tabs"> <div id="p7tpb1_1" class="down"><a class="down">JSR</a></div> <div><a href="/en/egc/view?id=199">Community</a></div> <div><a href="/en/eg/eghome?id=199">Expert Group</a></div> <br class="p7TPclear" /> </div> <div class="p7TPcontent"> <div id="p7tpc1_1"> <a href="summary?id=199">Summary</a> &nbsp;|&nbsp; <a href="proposalDetails?id=199">Proposal</a> &nbsp;|&nbsp; <span>Detail (Summary &amp; Proposal)</span> &nbsp;|&nbsp; <a href="nominations?id=199">Nominations</a> </div> </div> <!--[if lte IE 6]><style type="text/css">.p7TPpanel div,.p7TPpanel a{height:1%;}.p7TP_tabs a{white-space:nowrap;}</style><![endif]--> </div> <script type="text/javascript"> P7_initTP(1,0); </script> <!-- END NAVIGATION TABS --> <div class="anybar"><img src="/images/global/bar_green.gif" alt="" width="12" height="4"></div> <div class="header2">JSRs: Java Specification Requests</div> <div class="header1">JSR 199: Java<sup><font size="-2">TM</font></sup> Compiler API</div> <div class="anybar"><img src="/images/global/bar_green.gif" alt="" width="12" height="4"></div> <br> <!-- ********************************************** --> <!-- JSR Status information --> <!-- ********************************************** --> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td id="centercontent" valign="top"> <tr> <td> <table class="tbl" cellpadding="4" cellspacing="1" width="100%"> <tr valign="top"> <td class="bdtl">Stage</td> <td class="bdtl">Access</td> <td class="bdtl">Start</td> <td class="bdtl">Finish</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Release 5</td> <td><a href="https://jcp.org/aboutJava/communityprocess/mrel/jsr199/index5.html">Download page</a></td> <td>11 Mar, 2025</td> <td>&nbsp;</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Review Ballot 8</td> <td><a href="results?id=6412">View results</a></td> <td>07 Jan, 2025</td> <td>13 Jan, 2025</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Draft Review 8</td> <td><a href="http://jcp.org/aboutJava/communityprocess/maintenance/jsr199/index8.html">Download page</a></td> <td>19 Dec, 2024</td> <td>06 Jan, 2025</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Release 4</td> <td><a href="https://jcp.org/aboutJava/communityprocess/mrel/jsr199/index5.html">Download page</a></td> <td>10 Sep, 2024</td> <td>&nbsp;</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Review Ballot 7</td> <td><a href="results?id=6395">View results</a></td> <td>30 Jul, 2024</td> <td>05 Aug, 2024</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Draft Review 7</td> <td><a href="http://jcp.org/aboutJava/communityprocess/maintenance/jsr199/index8.html">Download page</a></td> <td>16 Jul, 2024</td> <td>29 Jul, 2024</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Release 3</td> <td><a href="https://jcp.org/aboutJava/communityprocess/mrel/jsr199/index5.html">Download page</a></td> <td>15 Mar, 2022</td> <td>&nbsp;</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Review Ballot 6</td> <td><a href="results?id=6298">View results</a></td> <td>25 Jan, 2022</td> <td>31 Jan, 2022</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Draft Review 6</td> <td><a href="http://jcp.org/aboutJava/communityprocess/maintenance/jsr199/index8.html">Download page</a></td> <td>22 Dec, 2021</td> <td>20 Jan, 2022</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Review Ballot 5</td> <td><a href="results?id=6281">View results</a></td> <td>03 Aug, 2021</td> <td>09 Aug, 2021</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Draft Review 5</td> <td><a href="http://jcp.org/aboutJava/communityprocess/maintenance/jsr199/index8.html">Download page</a></td> <td>15 Jul, 2021</td> <td>28 Jul, 2021</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Review Ballot 4</td> <td><a href="results?id=6264">View results</a></td> <td>19 Jan, 2021</td> <td>25 Jan, 2021</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Draft Review 4</td> <td><a href="http://jcp.org/aboutJava/communityprocess/maintenance/jsr199/index8.html">Download page</a></td> <td>06 Jan, 2021</td> <td>19 Jan, 2021</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Review Ballot 3</td> <td><a href="results?id=6202">View results</a></td> <td>30 Jul, 2019</td> <td>05 Aug, 2019</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Draft Review 3</td> <td><a href="http://jcp.org/aboutJava/communityprocess/maintenance/jsr199/index8.html">Download page</a></td> <td>16 Jul, 2019</td> <td>29 Jul, 2019</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Release 2</td> <td><a href="https://jcp.org/aboutJava/communityprocess/mrel/jsr199/index5.html">Download page</a></td> <td>21 Sep, 2017</td> <td>&nbsp;</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Review Ballot 2</td> <td><a href="results?id=5944">View results</a></td> <td>25 Apr, 2017</td> <td>08 May, 2017</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Draft Review 2</td> <td><a href="http://jcp.org/aboutJava/communityprocess/maintenance/jsr199/index8.html">Download page</a></td> <td>09 Mar, 2017</td> <td>21 Apr, 2017</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Release </td> <td><a href="https://jcp.org/aboutJava/communityprocess/mrel/jsr199/index5.html">Download page</a></td> <td>04 Mar, 2014</td> <td>&nbsp;</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Review Ballot </td> <td><a href="results?id=5609">View results</a></td> <td>10 Dec, 2013</td> <td>16 Dec, 2013</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Draft Review </td> <td><a href="http://jcp.org/aboutJava/communityprocess/maintenance/jsr199/index8.html">Download page</a></td> <td>04 Nov, 2013</td> <td>04 Dec, 2013</td> </tr> <tr class="bgw" valign="top"> <td>Final Release </td> <td><a href="http://jcp.org/aboutJava/communityprocess/final/jsr199/index.html">Download page</a></td> <td>11 Dec, 2006</td> <td>&nbsp;</td> </tr> <tr class="bgw" valign="top"> <td>Final Approval Ballot </td> <td><a href="results?id=4053">View results</a></td> <td>24 Oct, 2006</td> <td>06 Nov, 2006</td> </tr> <tr class="bgw" valign="top"> <td>Proposed Final Draft </td> <td><a href="http://jcp.org/aboutJava/communityprocess/pfd/jsr199/index.html">Download page</a></td> <td>02 Oct, 2006</td> <td>&nbsp;</td> </tr> <tr class="bgw" valign="top"> <td>Public Review Ballot </td> <td><a href="results?id=3886">View results</a></td> <td>18 Jul, 2006</td> <td>24 Jul, 2006</td> </tr> <tr class="bgw" valign="top"> <td>Public Review </td> <td><a href="http://jcp.org/aboutJava/communityprocess/pr/jsr199/index.html">Download page</a></td> <td>19 Jun, 2006</td> <td>24 Jul, 2006</td> </tr> <tr class="bgw" valign="top"> <td>Early Draft Review </td> <td><a href="http://jcp.org/aboutJava/communityprocess/edr/jsr199/index.html">Download page</a></td> <td>13 Jul, 2005</td> <td>12 Aug, 2005</td> </tr> <tr class="bgw" valign="top"> <td>Expert Group Formation </td> <td>&nbsp;</td> <td>10 Dec, 2002</td> <td>28 Mar, 2005</td> </tr> <tr class="bgw" valign="top"> <td>JSR Review Ballot </td> <td><a href="results?id=1524">View results</a></td> <td>26 Nov, 2002</td> <td>09 Dec, 2002</td> </tr> </table> </td> </tr> </td> </tr> </table> <!-- ********************************************** --> <!-- JCP Version --> <!-- ********************************************** --> <span style="padding: 10px; display: block;"> <b> Status: </b><a href="/en/introduction/glossary#status"><font color=green><span title="A JSR that has posted a milestone within the last twelve months.">Active</span></font></a><br> <b>JCP version in use:</b> <a href="/procedures/jcp2"> 2.11</a><br> <b>Java Specification Participation Agreement version in use:</b> 2.0<br> <br><br> <b>Description</b>:<br> A service provider API that allows a Java program to select and invoke a Java Language Compiler programmatically. <br><br> <!-- ********************************************** --> <!-- JSR Comments Email excluding JSR 900 and up --> <!-- ********************************************** --> <b>Expert Group Transparency:</b><br> &nbsp;&nbsp;<a href="https://bugs.openjdk.java.net">Public Communications</a><br> &nbsp;&nbsp;<a href="https://bugs.openjdk.java.net/issues/">Issue Tracking</a><br> <br> </span> <!-- ****************************************** --> <div id="p7TP52"> <div class="p7TP_tabs2"> <div><span>Team</span></div> <br class="p7TPclear" /> </div> </div> <table bgcolor="#f2f2f2" border="0" cellpadding="5" cellspacing="1" width="100%"> <tr valign="top"> <td colspan="3"><span class="header4">Specification Leads</span></td> </tr> <tr valign="top"> <td width="20" nowrap>&nbsp;</td> <td>Jan&nbsp;Lahoda</td> <td>Oracle</td> </tr> <tr valign="top"> <td colspan="4" class="spacerw"><img src="/images/global/spacer.gif" alt="" height="1" width="1"></td> </tr> <tr valign="top"> <td colspan="3"><span class="header4">Expert Group</span></td> </tr> <tr valign="top"> <td width="20" nowrap>&nbsp;</td> <!-- Gutter //--> <td>Bityukov, Serge S.<br>: Serge S. Bityukov</td> <td>Borland Software Corporation<br>: Christian Kemper</td> <td>Torsten Curdt</td> </tr> <tr valign="top"> <td width="20" nowrap>&nbsp;</td> <!-- Gutter //--> <td>Google Inc.<br>: Neal Gafter</td> <td>IBM<br>: Philippe Mulet</td> <td>Lefevre, Olivier<br>: Olivier Lefevre</td> </tr> <tr valign="top"> <td width="20" nowrap>&nbsp;</td> <!-- Gutter //--> <td>Litchev, Lubomir<br>: Lubomir B Litchev</td> <td>Oracle<br>: Jan Lahoda</td> <td>Oracle<br>: Michel Trudeau</td> </tr> <tr valign="top"> <td width="20" nowrap>&nbsp;</td> <!-- Gutter //--> <td>Pramati Technologies<br>: Sachin Hejip</td> <td>Sun Microsystems, Inc.<br>: Peter von der Ahe</td> <td>Sun Microsystems, Inc.<br>: Santiago Pericas-Geertsen</td> </tr> <tr valign="top"> <td width="20" nowrap>&nbsp;</td> <!-- Gutter //--> <td>TmaxSoft, Inc.<br>: Changshin Lee</td> </tr> <tr valign="top"> <td colspan="4" class="spacerw"><img src="/images/global/spacer.gif" alt="" height="1" width="1"></td> </tr> <tr valign="top"> <td colspan="3"><span class="header4">Contributors</span></td> </tr> <tr valign="top"> <td width="20" nowrap>&nbsp;</td> <!-- Gutter //--> <td width="30%">&nbsp;</td> <td width="30%">&nbsp;</td> <td width="30%">&nbsp;</td> </tr> </table> <!-- ********************************************** --> <!-- Expert Group Status --> <!-- ********************************************** --> <table cellpadding="0" cellspacing="0" border="0"> </table> <!-- ****************************************** --> <!-- ********************************************** --> <!-- JSRProposal Info --> <!-- ********************************************** --> <p> </center><a name="updates"><font size="+2">Updates to the Original JSR</font></a><p> The following updates have been made to <a href="#orig">the original request</a>.<P> <B><U>2024.07.09</u></b><BR> The Maintenance Lead has changed from Jonathan Gibbons to Jan Lahoda. <P> <P><b>Maintenance Lead:</b> Jan Lahoda</P> <P><b>E-Mail Address:</b> jan.lahoda<faketag>&#64;</faketag>oracle.com</P> <P><b>Telephone Number:</b> -</P> <P><b>Fax Number:</b> -</P> <U><B>2019.07.16</B></U>:<BR> The Maintenance of JSR 199 was moved to <a href="/en/procedures/jcp2_11">JCP 2.11</a>.<P> <U><B>2013.10.21</b></u>:<BR> The Maintenance of JSR 199 was moved to <a href="/en/procedures/jcp2_9">JCP 2.9</a>.<P> <H4>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.</H4> <P> Interested parties can submit issues at bugs.sun.com, which will be filtered into JBS, the JDK Bug System hosted at <a href="https://bugs.openjdk.java.net">https://bugs.openjdk.java.net</a>. <P> <H4>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?</h4><P> <a href="https://bugs.openjdk.java.net/issues/?jql=project%20%3D%20jdk%20%20and%20component%3D%22tools%22%20and%20Subcomponent%20%3D%20%22javac%22">The JSR 199 related issues in JBS</a> <P> <h4>2.21 Please provide the location of the publicly accessible document archive you have created for the Expert Group.</h4><P> Since JSR 199 is in maintenance, there is no expert group. <P> <B><U>2011.12.02</u></b><BR> The Maintenance Lead has changed from Peter von der Ahe to Jonathan Gibbons. <P> <P><b>Maintenance Lead:</b> Jonathan Gibbons</P> <P><b>E-Mail Address:</b> jonathan.gibbons<faketag>&#64;</faketag>oracle.com</P> <P><b>Telephone Number:</b> +1 408 276 7432</P> <P><b>Fax Number:</b> -</P> <B><U>2006.10.24</U></b> <H4>2.15 Please provide a description of the business terms for the Specification, RI and TCK that will apply when this JSR is final.</H4> Sun will license the RI binary for this JSR free of charge. <P> 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. <P> 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. <P> <B><U>2006.10.12</u></b>:<BR> <H4>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. </H4> <P>We plan to include the RI and TCK as part of Java SE 6 as well as making the TCK available standalone.</P> <H4>2.15 Please provide a description of the business terms for the Specification, RI and TCK that will apply when this JSR is final.</H4> <P>Sun will license the RI binary for this JSR free of charge.</P> <P><HR><P> </center><a name="orig"><font size="+2">Original Java Specification Request (JSR)</font></a><p> <FONT SIZE="-1"> <!-- BEGIN-SUB TOPICS --> <A HREF="#1"> Identification</A> | <A HREF="#2"> Request</A> | <A HREF="#3"> Contributions</A> <BR> <!-- END-SUB TOPICS --> </FONT> <P> <!-- BEGIN TEMPLATE --> <!-- SECTION 1 --> <A NAME="1"></A> <P><FONT size=+2>Section 1. Identification</FONT> <P><b>Submitting Member:</b> Sun Microsystems, Inc</P> <P><b>Name of Contact Person:</b> Neal Gafter</P> <P><b>E-Mail Address:</b> Neal.Gafter&#64;sun.com</P> <P><b>Telephone Number:</b> +1 408 276 7080</P> <P><b>Fax Number:</b> +1 408 276 7700</P> <BR> <P><b>Specification Lead:</b> Neal Gafter</P> <P><b>E-Mail Address:</b> Neal.Gafter&#64;sun.com</P> <P><b>Telephone Number:</b> +1 408 276 7080</P> <P><b>Fax Number:</b> +1 408 276 7700</P> <BR> <P><B>Initial Expert Group Membership:</B> </P> <P>TBD</P> <P><B>Supporting this JSR:</B> </P> <P>Sun Microsystems<BR> IBM<BR> Oracle<BR> Borland<BR> Sybase<br> IBM</p> <BR><BR> <!-- SECTION 2 --> <A NAME="2"></A> <P> <FONT SIZE="+2">Section 2: Request</FONT><P> </P> <H4>2.1 Please describe the proposed Specification:</H4> <P>The Java<sup><font size="-2">TM</font></sup> Compiler API is a set of interfaces that describes the functions provided by a Java<sup><font size="-2">TM</font></sup> Language Compiler, and a service provider framework so vendors can provide implementations of these interfaces.<P> 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.<P> 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.<P> 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. </P> <H4>2.2 What is the target Java platform? (i.e., desktop, server, personal, embedded, card, etc.)</H4> <P>J2SE</P> <H4>2.3 What need of the Java community will be addressed by the proposed specification?</H4> <P>The main initial audiences are<BR> (1) JSP implementations, which must invoke a Java Language compiler on generated Java code<BR> (2) IDE (Integrated Development Environments) which must process user-written source code<BR> (3) Some internal Java facilities are simplified by the ability to generate class files efficiently through generation of source files.</P> <H4>2.4 Why isn't this need met by existing specifications?</H4> <P>There simply isn't anything like this in the platform.</P> <H4>2.5 Please give a short description of the underlying technology or technologies:</H4> <P>The reference implementation will likely be built on Sun's javac.</P> <H4>2.6 Is there a proposed package name for the API Specification? (i.e., <TT>javapi.something</TT>, <TT>org.something</TT>, etc.)</H4> <P>javax.compiler</P> <H4>2.7 Does the proposed specification have any dependencies on specific operating systems, CPUs, or I/O devices that you know of?</H4> <P>No</P> <H4>2.8 Are there any security issues that cannot be addressed by the current security model?</H4> <P>No</P> <H4>2.9 Are there any internationalization or localization issues?</H4> <P>These will be explicitly addressed by the specification.</P> <H4>2.10 Are there any existing specifications that might be rendered obsolete, deprecated, or in need of revision as a result of this work?</H4> <P>No</P> <H4>2.11 Please describe the anticipated schedule for the development of this specification.</H4> <P>We hope to have the specification completed in time to be included in the next major revision of the Java<sup><font size="-2">TM</font></sup> platform (Tiger). Note that while this API would be part of Tiger, it would not be a required part of the JRE. </P> <H4>2.12 Please describe the anticipated working model for the Expert Group working on developing this specification.</H4> <P>Sun will lead the specification and implementation work, with experts contributing to the API specification.</P> <H4>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. </H4> <P>We plan to include the RI and TCK as part of J2SE 1.5.</P> <font color="red">NOTE</font> that this section <a href="#updates">has been updated</a> from this original request. <H4>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). </H4> <P> Not applicable.</P> <H4>2.15 Please provide a description of the business terms for the Specification, RI and TCK that will apply when this JSR is final.</H4> <P>The terms will be the same as those for <a href="/aboutJava/communityprocess/jsr/tiger/BizTerms.html">J2SE 1.5</a>, which are broadly the same as J2SE 1.4.</P> <font color="red">NOTE</font> that this section <a href="#updates">has been updated</a> from this original request. <BR><BR> <BR><BR> <!-- SECTION 3 --> <A NAME="3"></A> <P> <FONT SIZE="+2">Section 3: Contributions</FONT><P> </P> <H4>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.</H4> <P>See <a href="http://groups.yahoo.com/group/javax_compiler"> http://groups.yahoo.com/group/javax_compiler</a> for some very early thoughts.<P> Sun's javac will likely form the basis of the reference implementation.</P> <H4>3.2 Explanation of how these items might be used as a starting point for the work.</H4> <P>The expert group will consider them as a starting point for ideas on defining the specification.</P> <BR><BR> </p> <!-- ** BEGIN: footer.jsp ** //--> </td> </tr> </table> <!-- ** END: Content Table ** //--> <!-- ** BEGIN: Footer Table ** //--> <div id="footer" style="clear: both;"> <div class="footleft"> <a href="/en/resources/contacts">Contact Us</a> </div> <div class="botbar"><img src="/images/spacer.gif" alt="" height="23" width="1"></div> <div class="footleft2"> &copy; 2025, Oracle Corporation and/or its affiliates. <a href="/en/home/terms">Terms of Use</a>. <a href="http://www.oracle.com/us/legal/privacy/index.html">Privacy Policy</a>. <a href="http://www.oracle.com/us/legal/third-party-trademarks/third-party-trademarks-078568.html">Trademarks</a> </div> <div class="footright"> <img src="/images/common/logo_oracle_footer.gif" alt="Oracle Corporation" height="22" width="91"> </div> <div style="clear: both;"><img src="/images/spacer.gif" alt="" height="30" width="1"></div> </div> <!-- ** END: Footer Table ** //--> <!-- ** Menu Start ** //--> </body> </html> <!-- ** END: footer.jsp ** //-->

Pages: 1 2 3 4 5 6 7 8 9 10