CINXE.COM

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

<!-- ** 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# 269</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="bdpnbet4tppfqz7cp2ua-f-f4aec384a-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":"13264e25","ak.r":6099,"ak.a2":e,"ak.m":"dscx","ak.n":"essl","ak.bpcip":"8.222.208.0","ak.cport":37180,"ak.gh":"124.155.222.134","ak.quicv":"","ak.tlsv":"tls1.2","ak.0rtt":"","ak.0rtt.ed":"","ak.csrc":"-","ak.acc":"reno","ak.t":"1742896808","ak.ak":"hOBiQwZUYzCg5VSAfCLimQ==FH44aQZa8RyI1W2PWjdmSryn/HBHvgAMhnNHaCeicNDxlftGQp4gir0ntjMQsNtXaXvwDyL5pnsWmw7xXjqC3QdIumZCkRQINocZ6NYnvMrTsJ9AjnK7e5lTI0Vd5CYRvuUzMzx4URp2klGooWWWF7SxP9fzc9FZYW3k6NtKCDzbNuG1ljRDVRju1qw84NM0ocr5D6MR43inHKJDW49PHvSqrCwjxij2kmjgdOS5ORvFmKXxvR1YnmzT7Qv+rGxgDSCE1L2MtcV6lnU69MuPKCGU5D5rLKShLeI19ZYwVBlhjdrsK/U0IDrfUCGwtM0rW+czorWba1PyuLN1YdPjDCizUKaSbHcyhUh4qpZfa+uIjVB6f0udDtdJPxPTW6OcUTQ9ezbEqwIGSqf9T56eUWIstNavTofS1RIRqLjFDFs=","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=269">Community</a></div> <div><a href="/en/eg/eghome?id=269">Expert Group</a></div> <br class="p7TPclear" /> </div> <div class="p7TPcontent"> <div id="p7tpc1_1"> <a href="summary?id=269">Summary</a> &nbsp;|&nbsp; <a href="proposalDetails?id=269">Proposal</a> &nbsp;|&nbsp; <span>Detail (Summary &amp; Proposal)</span> &nbsp;|&nbsp; <a href="nominations?id=269">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 269: Pluggable Annotation Processing 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 10</td> <td><a href="https://jcp.org/aboutJava/communityprocess/mrel/jsr269/index10.html">Download page</a></td> <td>11 Mar, 2025</td> <td>&nbsp;</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Review Ballot 17</td> <td><a href="results?id=6409">View results</a></td> <td>07 Jan, 2025</td> <td>13 Jan, 2025</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Draft Review 18</td> <td><a href="https://jcp.org/aboutJava/communityprocess/maintenance/jsr269/index18.html">Download page</a></td> <td>16 Dec, 2024</td> <td>06 Jan, 2025</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Release 9</td> <td><a href="https://jcp.org/aboutJava/communityprocess/mrel/jsr269/index10.html">Download page</a></td> <td>10 Sep, 2024</td> <td>&nbsp;</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Review Ballot 16</td> <td><a href="results?id=6391">View results</a></td> <td>23 Jul, 2024</td> <td>29 Jul, 2024</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Draft Review 17</td> <td><a href="https://jcp.org/aboutJava/communityprocess/maintenance/jsr269/index18.html">Download page</a></td> <td>09 Jul, 2024</td> <td>22 Jul, 2024</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Release 8</td> <td><a href="https://jcp.org/aboutJava/communityprocess/mrel/jsr269/index10.html">Download page</a></td> <td>13 Mar, 2024</td> <td>&nbsp;</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Review Ballot 15</td> <td><a href="results?id=6367">View results</a></td> <td>23 Jan, 2024</td> <td>30 Jan, 2024</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Draft Review 16</td> <td><a href="https://jcp.org/aboutJava/communityprocess/maintenance/jsr269/index18.html">Download page</a></td> <td>09 Jan, 2024</td> <td>22 Jan, 2024</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Release 7</td> <td><a href="https://jcp.org/aboutJava/communityprocess/mrel/jsr269/index10.html">Download page</a></td> <td>13 Sep, 2023</td> <td>&nbsp;</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Review Ballot 14</td> <td><a href="results?id=6353">View results</a></td> <td>25 Jul, 2023</td> <td>31 Jul, 2023</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Draft Review 15</td> <td><a href="https://jcp.org/aboutJava/communityprocess/maintenance/jsr269/index18.html">Download page</a></td> <td>11 Jul, 2023</td> <td>24 Jul, 2023</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Release 6</td> <td><a href="https://jcp.org/aboutJava/communityprocess/mrel/jsr269/index10.html">Download page</a></td> <td>08 Mar, 2023</td> <td>&nbsp;</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Review Ballot 13</td> <td><a href="results?id=6337">View results</a></td> <td>21 Feb, 2023</td> <td>27 Feb, 2023</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Draft Review 14</td> <td><a href="https://jcp.org/aboutJava/communityprocess/maintenance/jsr269/index18.html">Download page</a></td> <td>12 Jan, 2023</td> <td>25 Jan, 2023</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Release 5</td> <td><a href="https://jcp.org/aboutJava/communityprocess/mrel/jsr269/index10.html">Download page</a></td> <td>19 Sep, 2022</td> <td>&nbsp;</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Review Ballot 12</td> <td><a href="results?id=6323">View results</a></td> <td>26 Jul, 2022</td> <td>01 Aug, 2022</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Draft Review 13</td> <td><a href="https://jcp.org/aboutJava/communityprocess/maintenance/jsr269/index18.html">Download page</a></td> <td>08 Jul, 2022</td> <td>21 Jul, 2022</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Release 4</td> <td><a href="https://jcp.org/aboutJava/communityprocess/mrel/jsr269/index10.html">Download page</a></td> <td>15 Mar, 2022</td> <td>&nbsp;</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Review Ballot 11</td> <td><a href="results?id=6305">View results</a></td> <td>01 Feb, 2022</td> <td>07 Feb, 2022</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Draft Review 12</td> <td><a href="https://jcp.org/aboutJava/communityprocess/maintenance/jsr269/index18.html">Download page</a></td> <td>18 Jan, 2022</td> <td>31 Jan, 2022</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Review Ballot 10</td> <td><a href="results?id=6282">View results</a></td> <td>03 Aug, 2021</td> <td>09 Aug, 2021</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Draft Review 11</td> <td><a href="https://jcp.org/aboutJava/communityprocess/maintenance/jsr269/index18.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 9</td> <td><a href="results?id=6263">View results</a></td> <td>19 Jan, 2021</td> <td>25 Jan, 2021</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Draft Review 10</td> <td><a href="https://jcp.org/aboutJava/communityprocess/maintenance/jsr269/index18.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 8</td> <td><a href="results?id=6245">View results</a></td> <td>28 Jul, 2020</td> <td>03 Aug, 2020</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Draft Review 9</td> <td><a href="https://jcp.org/aboutJava/communityprocess/maintenance/jsr269/index18.html">Download page</a></td> <td>08 Jul, 2020</td> <td>21 Jul, 2020</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Review Ballot 7</td> <td><a href="results?id=6231">View results</a></td> <td>04 Feb, 2020</td> <td>10 Feb, 2020</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Draft Review 8</td> <td><a href="https://jcp.org/aboutJava/communityprocess/maintenance/jsr269/index18.html">Download page</a></td> <td>21 Jan, 2020</td> <td>03 Feb, 2020</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Review Ballot 6</td> <td><a href="results?id=6205">View results</a></td> <td>30 Jul, 2019</td> <td>05 Aug, 2019</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Draft Review 7</td> <td><a href="https://jcp.org/aboutJava/communityprocess/maintenance/jsr269/index18.html">Download page</a></td> <td>16 Jul, 2019</td> <td>29 Jul, 2019</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Review Ballot 5</td> <td><a href="results?id=6171">View results</a></td> <td>29 Jan, 2019</td> <td>04 Feb, 2019</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Draft Review 6</td> <td><a href="https://jcp.org/aboutJava/communityprocess/maintenance/jsr269/index18.html">Download page</a></td> <td>15 Jan, 2019</td> <td>28 Jan, 2019</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Review Ballot 4</td> <td><a href="results?id=6128">View results</a></td> <td>07 Aug, 2018</td> <td>13 Aug, 2018</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Draft Review 5</td> <td><a href="https://jcp.org/aboutJava/communityprocess/maintenance/jsr269/index18.html">Download page</a></td> <td>18 Jul, 2018</td> <td>31 Jul, 2018</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Review Ballot 3</td> <td><a href="results?id=6102">View results</a></td> <td>06 Feb, 2018</td> <td>12 Feb, 2018</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Draft Review 4</td> <td><a href="https://jcp.org/aboutJava/communityprocess/maintenance/jsr269/index18.html">Download page</a></td> <td>23 Jan, 2018</td> <td>05 Feb, 2018</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Release 3</td> <td><a href="https://jcp.org/aboutJava/communityprocess/mrel/jsr269/index10.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=5942">View results</a></td> <td>25 Apr, 2017</td> <td>08 May, 2017</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Draft Review 3</td> <td><a href="https://jcp.org/aboutJava/communityprocess/maintenance/jsr269/index18.html">Download page</a></td> <td>09 Mar, 2017</td> <td>21 Apr, 2017</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Release 2</td> <td><a href="https://jcp.org/aboutJava/communityprocess/mrel/jsr269/index10.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=5620">View results</a></td> <td>07 Jan, 2014</td> <td>13 Jan, 2014</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Draft Review 2</td> <td><a href="https://jcp.org/aboutJava/communityprocess/maintenance/jsr269/index18.html">Download page</a></td> <td>20 Nov, 2013</td> <td>20 Dec, 2013</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Release </td> <td><a href="https://jcp.org/aboutJava/communityprocess/mrel/jsr269/index10.html">Download page</a></td> <td>07 Nov, 2011</td> <td>&nbsp;</td> </tr> <tr class="bgw" valign="top"> <td>Maintenance Draft Review </td> <td><a href="https://jcp.org/aboutJava/communityprocess/maintenance/jsr269/index18.html">Download page</a></td> <td>11 Mar, 2011</td> <td>25 Apr, 2011</td> </tr> <tr class="bgw" valign="top"> <td>Final Release </td> <td><a href="http://jcp.org/aboutJava/communityprocess/final/jsr269/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=4063">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/jsr269/index.html">Download page</a></td> <td>18 Sep, 2006</td> <td>&nbsp;</td> </tr> <tr class="bgw" valign="top"> <td>Public Review Ballot </td> <td><a href="results?id=3859">View results</a></td> <td>13 Jun, 2006</td> <td>19 Jun, 2006</td> </tr> <tr class="bgw" valign="top"> <td>Public Review </td> <td><a href="http://jcp.org/aboutJava/communityprocess/pr/jsr269/index.html">Download page</a></td> <td>17 May, 2006</td> <td>19 Jun, 2006</td> </tr> <tr class="bgw" valign="top"> <td>Early Draft Review </td> <td><a href="http://jcp.org/aboutJava/communityprocess/edr/jsr269/index.html">Download page</a></td> <td>30 Jun, 2005</td> <td>01 Aug, 2005</td> </tr> <tr class="bgw" valign="top"> <td>Expert Group Formation </td> <td>&nbsp;</td> <td>15 Feb, 2005</td> <td>02 Mar, 2005</td> </tr> <tr class="bgw" valign="top"> <td>JSR Review Ballot </td> <td><a href="results?id=3034">View results</a></td> <td>01 Feb, 2005</td> <td>14 Feb, 2005</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> Provide an API to allow the processing of JSR 175 annotations (metadata); this will require modeling elements of the Java(TM) programming language as well as processing-specific functionality. <br><br> <!-- ********************************************** --> <!-- JSR Comments Email excluding JSR 900 and up --> <!-- ********************************************** --> <b>Expert Group Transparency:</b><br> &nbsp;&nbsp;<a href="https://bugs.openjdk.org">Public Communications</a><br> &nbsp;&nbsp;<a href="https://bugs.openjdk.org/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>Joe&nbsp;Darcy</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>BEA Systems<br>: Tim Wagner</td> <td>Bruce Chapman</td> <td>Google Inc.<br>: Bob Lee</td> </tr> <tr valign="top"> <td width="20" nowrap>&nbsp;</td> <!-- Gutter //--> <td>Doug Lea</td> <td>Niemeyer, Patrick D.<br>: Patrick Niemeyer</td> <td>Oracle<br>: Joe Darcy</td> </tr> <tr valign="top"> <td width="20" nowrap>&nbsp;</td> <!-- Gutter //--> <td>Oracle<br>: Michel Trudeau</td> <td>Sun Microsystems, Inc.<br>: Joe Darcy</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> <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> <U><B>2019.07.16</b></U>:<BR> The Maintenance of JSR 269 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 269 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%20and%20component%20%3D%20core-libs%20and%20Subcomponent%20in%20%28%22javax.annotation.processing%22%2C%20%22javax.lang.model%22%29">The JSR 269 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 269 is in maintenance, there is no expert group. <P> <U><B>2010.02.15</b></u> <BR> Oracle took over as Maintenance Lead from Sun Microsystems. <P> <B>Maintenance Lead</b>: Oracle America, Inc.<P> <B>Contact</b>: Joe Darcy<P> <B>E-mail address</b>: joe.darcy<faketag></faketag>&#64;oracle.com <P> <B>Telephone</b>: +1 408 276 7053 <P> <B><U>2006.10.24</U></b> <H4>2.18 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><P> <H4>2.16 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.18 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> 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 <a href="http://jcp.org/en/jsr/detail?id=270">JSR-270</a> 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> <P><HR><P> <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> | <A HREF="#4"> Additional Information</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> Joseph D. Darcy </P> <P><b>E-Mail Address:</b> joe.darcy&#64;sun.com</P> <P><b>Telephone Number:</b> +1 408 276 7053</P> <P><b>Fax Number:</b> +1 408 276 7700</P> <BR> <P><b>Specification Lead:</b> Joseph D. Darcy </P> <P><b>E-Mail Address:</b> joe.darcy&#64;sun.com</P> <P><b>Telephone Number:</b> +1 408 276 7053</P> <P><b>Fax Number:</b> +1 408 276 7700 </P> <BR> <P><B>Initial Expert Group Membership:</B> </P> <P>BEA<BR> Google<BR> Oracle<BR> Doug Lea<BR> Bruce Chapman</P> <P><B>Supporting this JSR:</B> </P> <P>Google<BR> Oracle<BR> Doug Lea</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>J2SE 1.5 added a new Java language mechanism "annotations" that allows annotation types to be used to annotate classes, fields, and methods. These annotations are typically processed either by build-time tools or by run-time libraries to achieve new semantic effects. In order to support annotation processing at build-time, this JSR will define APIs to allow annotation processors to be created using a standard pluggable API. This will simplify the task of creating annotation processors and will also allow automation of the discovery of appropriate annotation processors for a given source file.<P> The specification will include at least two sections, a section of API modeling the Java programming language and a distinct section for declaring annotation processors and controlling how they are run. Since annotations are placed on program elements, an annotation processing framework needs to reflect program structure. Annotation processors will be able to specify what annotations they process and multiple processors will be able to run cooperatively.<P> The processors and program structure api can be accessed at build-time; i.e. this functionality supplements core reflection support for reading annotations. </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 The Executive Committees would like to ensure JSR submitters think about how their proposed technology relates to all of the Java platform editions. Please provide details here for which platform editions are being targeted by this JSR, and how this JSR has considered the relationship with the other platform editions.</H4> <P>Just as JSR 175 was delivered in J2SE with extensive expected use by J2EE, this JSR is being submitted to the J2SE EC although we expect the functionality in this JSR to be heavily used by J2EE. </P> <H4>2.4 Should this JSR be voted on by both Executive Committees?</H4> <P>No</P> <H4>2.5 What need of the Java community will be addressed by the proposed specification?</H4> <P>Standardized annotation processing mechanism for build-time annotation processing. </P> <H4>2.6 Why isn't this need met by existing specifications?</H4> <P>A standardized build-time annotation processing mechanism was not included in JDK5 coincident with shipping JSR175. The core reflection support for reading annotations does not allow annotations to be read from source code (or the reading of source-only annotations). The javadoc API does not directly support running multiple pluggable modules based on what annotations are present. </P> <H4>2.7 Please give a short description of the underlying technology or technologies:</H4> <P>In order to realize the full benefits of annotations, a standardized mechanism is necessary to process them in contexts other than a running jvm. Since annotations are added to declarations (classes, methods, fields, etc.), the API needs to include a model of program structure. Additionally, the processors for different annotations should be able to work cooperatively and the set of processors that are run should be able to depend on what annotations are present in the code being processed.</P> <H4>2.8 Is there a proposed package name for the API Specification? (i.e., <TT>javapi.something</TT>, <TT>org.something</TT>, etc.)</H4> <P>All the API elements are expected to reside in the javax namespace; the language modeling portions of the API might be called javax.mirror.declaration, javax.mirror.type, etc. while the processing related portions of the API might be called javax.annotation.processing.</P> <H4>2.9 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.10 Are there any security issues that cannot be addressed by the current security model?</H4> <P>None known.</P> <H4>2.11 Are there any internationalization or localization issues?</H4> <P>No i18n or l10n issue beyond localizing messages in the implementation. </P> <H4>2.12 Are there any existing specifications that might be rendered obsolete, deprecated, or in need of revision as a result of this work?</H4> <P>The intent is to supersede the com.sun.mirror.* APIs and the apt tool shipped as part of Sun's JDK 5. </P> <H4>2.13 Please describe the anticipated schedule for the development of this specification.</H4> <P>The intention is to deliver this JSR as part of the Mustang umbrella JSR. Early review would occur in May 2005, Public Preview in October 2005, and Proposed Final Draft in February 2006.</P> <H4>2.14 Please describe the anticipated working model for the Expert Group working on developing this specification.</H4> <P>A mailing list is intended to be the primary communication mechanism among members of the expert group. Conference calls may be used on an as-needed basis.</P> <H4>2.15 It is important to the success of the community and each JSR that the work of the Expert Group be handled in a manner which provides the community and the public with insight into the work the Expert Group is doing, and the decisions that the Expert Group has made. The Executive Committees would like to ensure Spec Leads understand the value of this transparency and ask that each JSR have an operating plan in place for how their JSR will address the involvement of the community and the public. Please provide your plan here, and refer to the Spec Lead Guide for a more detailed description and a set of example questions you may wish to answer in your plan.</H4> <P>We anticipate providing draft specs every two to three months after the first draft is released until the Proposed Final Draft. A JSR interest mailing list will be established so interested parties can be informed of issues under discussion. </P> <H4>2.16 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>This JSR and its RI and TCK are intended to be part of the Mustang RI and TCK, respectively. </P> <P> <font color="red">NOTE</font> that this section <a href="#updates">has been updated</a> from this original request. <H4>2.17 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.18 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 RI and TCK will be delivered and licensed as part of the RI and TCK for Mustang. </P> <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>This JSR is targeting the same general functionality as the apt tool, <a href="http://java.sun.com/j2se/1.5.0/docs/guide/apt/index.html"> http://java.sun.com/j2se/1.5.0/docs/guide/apt/index.html</a>. It is expected the API included in this JSR will resemble but not necessarily be compatible with the existing apt API. <P> We expect some coordination with JSR199 to avoid designing overlapping functionality. </P> <H4>3.2 Explanation of how these items might be used as a starting point for the work.</H4> <P>Users of apt have identified several limitations to the API; this feedback should be considered by the expert group. </P> <BR><BR> <!-- SECTION 4 --> <A NAME="4"></A> <P> <FONT SIZE="+2">Section 4: Additional Information (Optional)</FONT><P> </P> <H4>4.1 This section contains any additional information that the submitting Member wishes to include in the JSR.</H4> <P></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