Java Community Process: Difference between revisions
Removed occurrance self-promotion, which added no value related to the topic itself (why was this even added in?). Undid revision 827998997 by 209.249.118.47 (talk) |
No edit summary |
||
| (46 intermediate revisions by 33 users not shown) | |||
| Line 1: | Line 1: | ||
{{Short description|Professional organization}} |
|||
The '''Java Community Process''' ('''JCP'''), established in 1998, is a formalized mechanism that allows interested parties to develop standard technical specifications for [[Java (software platform)|Java technology]]. Anyone can become a JCP Member by filling a form available at the [https://www.jcp.org JCP website]. JCP membership for organizations and [[Commercial entity|commercial entities]] requires annual fees – but is free for individuals.<ref>{{cite web|title=Becoming a JCP Member|url=http://jcp.org/en/participation/membership|accessdate=11 June 2011}}</ref> |
|||
The '''Java Community Process (JCP)''', established in 1998, is a formal mechanism that enables interested parties to develop standard technical specifications for Java technology. Becoming a member of the JCP requires solid knowledge of the Java programming language, its specifications, and best practices in software development. Membership in the JCP involves a detailed review of the candidate's profile, including an assessment by current members. Typically, professionals are invited to join the JCP based on their contributions and reputation within the Java community. |
|||
Once invited, the new member undergoes an evaluation by the JCP Executive Committee, ensuring that they can effectively contribute to the Java Specification Requests (JSRs). These formal documents describe proposed specifications and technologies to be added to the [[Java (software platform)|Java platform]]. New members are encouraged to engage actively and play a crucial role in supporting the Java community and its releases. It is essential that members possess expertise and in-depth technical knowledge, combined with strong professional experience, to significantly contribute to the growth and usage of the [[Java (programming language)|Java language]]. |
|||
Membership for organizations and commercial entities requires annual fees, but it is free for individuals. JSRs undergo formal public reviews before becoming final, and the JCP [[JCP Executive Committee|Executive Committee]] votes on their approval. A finalized JSR provides a [[reference implementation]], which is a free implementation of the technology in source code form, and a Technology Compatibility Kit to verify the API specification. |
|||
| ⚫ | |||
| ⚫ | |||
==List of JSRs== |
==List of JSRs== |
||
| Line 21: | Line 24: | ||
| [http://www.jcp.org/en/jsr/detail?id=8 8]||[[OSGI]] Open Services Gateway Specification |
| [http://www.jcp.org/en/jsr/detail?id=8 8]||[[OSGI]] Open Services Gateway Specification |
||
|- |
|- |
||
| [http://www.jcp.org/en/jsr/detail?id=9 9]||[[Jiro]] (Federated Management Architecture Specification) 1.0 |
| [http://www.jcp.org/en/jsr/detail?id=9 9]||[[Jiro (software)|Jiro]] (Federated Management Architecture Specification) 1.0 |
||
|- |
|- |
||
| [http://www.jcp.org/en/jsr/detail?id=12 12]||[[Java Data Objects]] (JDO) 1.0 |
| [http://www.jcp.org/en/jsr/detail?id=12 12]||[[Java Data Objects]] (JDO) 1.0 |
||
| Line 47: | Line 50: | ||
| [http://www.jcp.org/en/jsr/detail?id=40 40]||[[Java Metadata Interface]] (JMI) 1.0 |
| [http://www.jcp.org/en/jsr/detail?id=40 40]||[[Java Metadata Interface]] (JMI) 1.0 |
||
|- |
|- |
||
| [http://www.jcp.org/en/jsr/detail?id=41 41]||A Simple [[Assertion (computing)|Assertion Facility]] (as of J2SE 1.4) |
| [https://web.archive.org/web/20080616233205/http://www.jcp.org/en/jsr/detail?id=41 41]||A Simple [[Assertion (computing)|Assertion Facility]] (as of J2SE 1.4) |
||
|- |
|- |
||
| [http://www.jcp.org/en/jsr/detail?id=47 47]||[[Data logging|Logging]] API Specification (as of J2SE 1.4) |
| [http://www.jcp.org/en/jsr/detail?id=47 47]||[[Data logging|Logging]] API Specification (as of J2SE 1.4) |
||
| Line 53: | Line 56: | ||
| [http://www.jcp.org/en/jsr/detail?id=48 48]||[[WBEM Services Specification]] (as of J2SE 1.4) |
| [http://www.jcp.org/en/jsr/detail?id=48 48]||[[WBEM Services Specification]] (as of J2SE 1.4) |
||
|- |
|- |
||
| [http://www.jcp.org/en/jsr/detail?id=51 51]||[[ |
| [http://www.jcp.org/en/jsr/detail?id=51 51]||[[Non-blocking I/O (Java)|Non-blocking I/O]] (NIO) (as of J2SE 1.4)||[[Project Grizzly (software)|Grizzly]], [[Netty (software)|Netty]] |
||
|- |
|- |
||
| [http://www.jcp.org/en/jsr/detail?id=52 52]||[[JavaServer Pages Standard Tag Library]] (JSTL) 1.0 and 1.1<ref>JSR 52 originally specified the JSTL 1.0 release. A subsequent maintenance release provided JSTL 1.1.</ref> |
| [http://www.jcp.org/en/jsr/detail?id=52 52]||[[JavaServer Pages Standard Tag Library]] (JSTL) 1.0 and 1.1<ref>JSR 52 originally specified the JSTL 1.0 release. A subsequent maintenance release provided JSTL 1.1.</ref> |
||
| Line 74: | Line 77: | ||
|- |
|- |
||
| [http://www.jcp.org/en/jsr/detail?id=75 75]||[[PDA Optional Packages for the J2ME Platform]] |
| [http://www.jcp.org/en/jsr/detail?id=75 75]||[[PDA Optional Packages for the J2ME Platform]] |
||
| |
|||
|- |
|- |
||
| [http://www.jcp.org/en/jsr/detail?id=77 77]||[[J2EE Management]] |
| [http://www.jcp.org/en/jsr/detail?id=77 77]||[[J2EE Management]] |
||
| Line 169: | Line 173: | ||
| [http://www.jcp.org/en/jsr/detail?id=202 202]||[[Class (file format)|Java Class File]] Specification Update |
| [http://www.jcp.org/en/jsr/detail?id=202 202]||[[Class (file format)|Java Class File]] Specification Update |
||
|- |
|- |
||
| [http://www.jcp.org/en/jsr/detail?id=203 203]||More [[ |
| [http://www.jcp.org/en/jsr/detail?id=203 203]||More [[Non-blocking I/O (Java)]] (NIO2) |
||
|- |
|- |
||
| [http://www.jcp.org/en/jsr/detail?id=204 204]||Unicode Supplementary Character Support (as of J2SE 5.0 adds support for [[Unicode]] 3.1) |
| [http://www.jcp.org/en/jsr/detail?id=204 204]||Unicode Supplementary Character Support (as of J2SE 5.0 adds support for [[Unicode]] 3.1) |
||
| Line 199: | Line 203: | ||
| [http://www.jcp.org/en/jsr/detail?id=225 225]||[[XQuery API for Java]] (XQJ) |
| [http://www.jcp.org/en/jsr/detail?id=225 225]||[[XQuery API for Java]] (XQJ) |
||
|- |
|- |
||
| [http://www.jcp.org/en/jsr/detail?id=226 226]|| [[ |
| [http://www.jcp.org/en/jsr/detail?id=226 226]|| [[Scalable Vector Graphics|Scalable 2D Vector Graphics]] API for [[Java ME]] |
||
|- |
|- |
||
| [http://www.jcp.org/en/jsr/detail?id=229 229]|| [[Payment API]] (PAPI) |
| [http://www.jcp.org/en/jsr/detail?id=229 229]|| [[Payment API]] (PAPI) |
||
| Line 279: | Line 283: | ||
| [http://www.jcp.org/en/jsr/detail?id=296 296]||[[Swing Application Framework]] (Java SE 7) |
| [http://www.jcp.org/en/jsr/detail?id=296 296]||[[Swing Application Framework]] (Java SE 7) |
||
|- |
|- |
||
| [http://www.jcp.org/en/jsr/detail?id=299 299]||Contexts and Dependency Injection for the Java EE platform (CDI)||Weld|| |
| [http://www.jcp.org/en/jsr/detail?id=299 299]||[http://cdi-spec.org/ Contexts and Dependency Injection for the Java] EE platform (CDI)||[https://weld.cdi-spec.org/ Weld]||[[Apache OpenWebBeans|OpenWebBeans]] |
||
|- |
|- |
||
| [http://www.jcp.org/en/jsr/detail?id=301 301]||JSF Portlet Bridge |
| [http://www.jcp.org/en/jsr/detail?id=301 301]||JSF Portlet Bridge |
||
| Line 289: | Line 293: | ||
| [http://www.jcp.org/en/jsr/detail?id=308 308]||[[Java annotation|Annotations]] on Java Types (Java SE 8) |
| [http://www.jcp.org/en/jsr/detail?id=308 308]||[[Java annotation|Annotations]] on Java Types (Java SE 8) |
||
|- |
|- |
||
| [http://www.jcp.org/en/jsr/detail?id=311 311]||[[ |
| [http://www.jcp.org/en/jsr/detail?id=311 311]||[[Jakarta RESTful Web Services|JAX-RS]]: The Java API for RESTful Web Services (1.0 and 1.1) |
||
|- |
|- |
||
| [http://www.jcp.org/en/jsr/detail?id=314 314]||[[JavaServer Faces]] (JSF) 2.0||Mojarra JavaServer Faces||[[Apache MyFaces]] |
| [http://www.jcp.org/en/jsr/detail?id=314 314]||[[JavaServer Faces]] (JSF) 2.0||Mojarra JavaServer Faces||[[Apache MyFaces]] |
||
| Line 301: | Line 305: | ||
| [http://www.jcp.org/en/jsr/detail?id=325 325]||[[IMS Communication Enablers]] (ICE) (See [[IP Multimedia Subsystem|IMS]]) |
| [http://www.jcp.org/en/jsr/detail?id=325 325]||[[IMS Communication Enablers]] (ICE) (See [[IP Multimedia Subsystem|IMS]]) |
||
|- |
|- |
||
| [http://www.jcp.org/en/jsr/detail?id=330 330]||[[Dependency Injection for Java]] |
| [http://www.jcp.org/en/jsr/detail?id=330 330]||[[Dependency Injection for Java]] ||[[GlassFish HK2|HK2]] || |
||
|- |
|- |
||
| [http://www.jcp.org/en/jsr/detail?id=336 336]||[[Java version history#Java SE 7 (July 28, 2011)|Java SE 7 Release Contents]]||[OpenJDK 7]||? |
| [http://www.jcp.org/en/jsr/detail?id=336 336]||[[Java version history#Java SE 7 (July 28, 2011)|Java SE 7 Release Contents]]||[OpenJDK 7]||? |
||
| Line 308: | Line 312: | ||
|- |
|- |
||
| [http://www.jcp.org/en/jsr/detail?id=338 338]||[[Java Persistence API]] (JPA) 2.1 ||[[EclipseLink]]||[[Hibernate (Java)|Hibernate]], openJPA |
| [http://www.jcp.org/en/jsr/detail?id=338 338]||[[Java Persistence API]] (JPA) 2.1 ||[[EclipseLink]]||[[Hibernate (Java)|Hibernate]], openJPA |
||
|- |
|||
| [http://www.jcp.org/en/jsr/detail?id=339 339]||[[Jakarta RESTful Web Services|JAX-RS 2.0]]: The Java API for RESTful Web Services |
|||
|- |
|- |
||
| [http://www.jcp.org/en/jsr/detail?id=343 343]||[[Java Message Service]] 2.0 (JMS) |
| [http://www.jcp.org/en/jsr/detail?id=343 343]||[[Java Message Service]] 2.0 (JMS) |
||
|- |
|- |
||
| [http://www.jcp.org/en/jsr/detail?id=352 352]||Java Batch||[https://www-03.ibm.com/support/techdocs/atsmastr.nsf/WebIndex/WP102706 IBM Java Batch]{{dead link|date=January 2025|bot=medic}}{{cbignore|bot=medic}} ||[https://github.com/jberet/jsr352 JBeret], [https://docs.spring.io/spring-batch/trunk/reference/html/jsr-352.html Spring Batch] |
|||
| ⚫ | |||
|- |
|- |
||
| [http://www.jcp.org/en/jsr/detail?id=354 354]||[[Java Money & Currency API]] |
| [http://www.jcp.org/en/jsr/detail?id=354 354]||[[Java Money & Currency API]] |
||
| Line 317: | Line 323: | ||
| [http://www.jcp.org/en/jsr/detail?id=356 356]||[[Java API for WebSocket]] |
| [http://www.jcp.org/en/jsr/detail?id=356 356]||[[Java API for WebSocket]] |
||
|- |
|- |
||
| |
|[http://www.jcp.org/en/jsr/detail?id=365 365] |
||
|[http://cdi-spec.org/ Contexts and Dependency Injection for Java] 2.0 |
|||
|[https://weld.cdi-spec.org/ Weld] |
|||
| |
|||
|- |
|||
| [http://www.jcp.org/en/jsr/detail?id=367 367] || Java API for JSON Binding (JSON-B) || [https://projects.eclipse.org/projects/ee4j.yasson Eclipse Yasson] || [[Jackson (API)|Jackson]] |
|||
|- |
|||
| [http://www.jcp.org/en/jsr/detail?id=370 370] || [[Java API for RESTful Web Services]] (JAX-RS) 2.1 || [[Project Jersey]] |
|||
|- |
|||
| [http://www.jcp.org/en/jsr/detail?id=374 374] || Java API for JSON Processing 1.1 || [https://eclipse-ee4j.github.io/jsonp Eclipse JSON-P] {{Webarchive|url=https://web.archive.org/web/20190531192637/https://eclipse-ee4j.github.io/jsonp/ |date=2019-05-31 }} || [[Jackson (API)|Jackson]] |
|||
|- |
|||
| [http://www.jcp.org/en/jsr/detail?id=376 376] || [[Java Module System|Java Platform Module System]] (supersedes [http://www.jcp.org/en/jsr/detail?id=277 277] |
|||
|- |
|||
| ⚫ | |||
|- style = "height:4px; background:lavender;" |
|- style = "height:4px; background:lavender;" |
||
| colspan="4" | |
| colspan="4" | |
||
| Line 331: | Line 350: | ||
| [http://www.jcp.org/en/jsr/detail?id=914 914]||[[Java Message Service]] (JMS) API 1.0 and 1.1 |
| [http://www.jcp.org/en/jsr/detail?id=914 914]||[[Java Message Service]] (JMS) API 1.0 and 1.1 |
||
|- |
|- |
||
| [http://www.jcp.org/en/jsr/detail?id=924 924]||[[Java Virtual Machine]] Specification, Second Edition (JVM) (as of J2SE 5.0).<ref>JSR 924 originally specified changes to the JVM to support changes in J2SE 5.0. {{As of|2006}} a maintenance update to support changes proposed by JSR 202 is underway.</ref>||OpenJDK |
| [http://www.jcp.org/en/jsr/detail?id=924 924]||[[Java virtual machine|Java Virtual Machine]] Specification, Second Edition (JVM) (as of J2SE 5.0).<ref>JSR 924 originally specified changes to the JVM to support changes in J2SE 5.0. {{As of|2006}} a maintenance update to support changes proposed by JSR 202 is underway.</ref>||OpenJDK |
||
|- |
|- |
||
| [http://www.jcp.org/en/jsr/detail?id=926 926]||[[Java 3D]] API 1.5|||| |
| [http://www.jcp.org/en/jsr/detail?id=926 926]||[[Java 3D]] API 1.5|||| |
||
| Line 337: | Line 356: | ||
==Criticism== |
==Criticism== |
||
[[Image:Java press panel at JavaOne 2012.jpg|thumb|right|A JCP representative (far right) speaks to the trade press during a panel discussion at the JavaOne conference in 2012]] |
|||
| ⚫ | |||
The JCP's executive board has been characterized as a "[[Rubber stamp (politics)|rubber stamp organization]]" since [[Oracle Corporation|Oracle]] acquired [[Sun Microsystems]] (the original developer of the [[Java (programming language)|Java language]]).<ref name=Handy>{{cite web|last=Handy|first=Alex|title=Java is open, but is the process?|url=https://sdtimes.com/java/java-is-open-but-is-the-process/|work=SD Times|date=12 September 2011 |access-date=21 September 2011}}</ref> |
|||
| ⚫ | The [[Apache Software Foundation]] resigned its seat on the board in December 2010 because [[Oracle Corporation|Oracle]] was unwilling to license the [[Technology Compatibility Kit]] for Apache's version of Java.<ref name=Whiting>{{cite web|last=Whiting|first=Rick|title=Apache Quits Java Governing Board Over Dispute With Oracle|url=http://www.crn.com/news/applications-os/228800169/apache-quits-java-governing-board-over-dispute-with-oracle.htm|work=CRN|date=10 December 2010 |access-date=21 September 2011}}</ref> |
||
{{clear}} |
|||
==JCP Program and Industry Awards<ref>[http://jcp.org/en/press/news/awards/awards_main The Java Community Process(SM) Program - Press & Success - News Stories]. Jcp.org. Retrieved on 2013-07-17.</ref> |
==JCP Program and Industry Awards== |
||
Source:<ref>[http://jcp.org/en/press/news/awards/awards_main The Java Community Process(SM) Program - Press & Success - News Stories]. Jcp.org. Retrieved on 2013-07-17.</ref> |
|||
{| class="wikitable sortable" |
{| class="wikitable sortable" |
||
|+2012 — 10th Annual JCP Award Winners<ref>[http://jcp.org/en/press/news/awards/2012award_nominees The Java Community Process(SM) Program - Press & Success - News Stories]. Jcp.org. Retrieved on 2013-07-17.</ref> |
|+2012 — 10th Annual JCP Award Winners<ref>[http://jcp.org/en/press/news/awards/2012award_nominees The Java Community Process(SM) Program - Press & Success - News Stories]. Jcp.org. Retrieved on 2013-07-17.</ref> |
||
| Line 351: | Line 375: | ||
| rowspan="6" |JCP Member/Participant of the Year |
| rowspan="6" |JCP Member/Participant of the Year |
||
|London Java Community and [[SouJava]] |
|London Java Community and [[SouJava]] |
||
|[https://community.oracle.com/community/java/jcp/adopt-a-jsr |
|[https://community.oracle.com/community/java/jcp/adopt-a-jsr "Adopt a JSR!"] program |
||
|Supporting Java developers through the JCP. |
|Supporting Java developers through the JCP. |
||
| |
| |
||
| Line 452: | Line 476: | ||
==See also== |
==See also== |
||
{{Portal| |
{{Portal|Computer programming}} |
||
*[[JDK Enhancement Proposal]] |
*[[JDK Enhancement Proposal]] |
||
| Line 464: | Line 488: | ||
{{Java (software platform)}} |
{{Java (software platform)}} |
||
{{Sun Microsystems}} |
|||
[[Category:Java platform]] |
|||
[[Category:Java specification requests| ]] |
[[Category:Java specification requests| ]] |
||
Latest revision as of 08:31, 8 May 2026
The Java Community Process (JCP), established in 1998, is a formal mechanism that enables interested parties to develop standard technical specifications for Java technology. Becoming a member of the JCP requires solid knowledge of the Java programming language, its specifications, and best practices in software development. Membership in the JCP involves a detailed review of the candidate's profile, including an assessment by current members. Typically, professionals are invited to join the JCP based on their contributions and reputation within the Java community.
Once invited, the new member undergoes an evaluation by the JCP Executive Committee, ensuring that they can effectively contribute to the Java Specification Requests (JSRs). These formal documents describe proposed specifications and technologies to be added to the Java platform. New members are encouraged to engage actively and play a crucial role in supporting the Java community and its releases. It is essential that members possess expertise and in-depth technical knowledge, combined with strong professional experience, to significantly contribute to the growth and usage of the Java language.
Membership for organizations and commercial entities requires annual fees, but it is free for individuals. JSRs undergo formal public reviews before becoming final, and the JCP Executive Committee votes on their approval. A finalized JSR provides a reference implementation, which is a free implementation of the technology in source code form, and a Technology Compatibility Kit to verify the API specification.
The JCP itself is described by a JSR. As of 2020[update], JSR 387 describes the current version (2.11) of the JCP.
List of JSRs
[edit | edit source]There are hundreds of JSRs. Some of the more visible JSRs include:
Criticism
[edit | edit source]
The JCP's executive board has been characterized as a "rubber stamp organization" since Oracle acquired Sun Microsystems (the original developer of the Java language).[9]
The Apache Software Foundation resigned its seat on the board in December 2010 because Oracle was unwilling to license the Technology Compatibility Kit for Apache's version of Java.[10]
JCP Program and Industry Awards
[edit | edit source]Source:[11]
| Award | Nominee | Contributions | Details | JSR # | Win? |
|---|---|---|---|---|---|
| JCP Member/Participant of the Year | London Java Community and SouJava | "Adopt a JSR!" program | Supporting Java developers through the JCP. | Win! | |
| Stephen Colebourne | Date and time API for Java. | Comprehensive and advanced. Tireless work. | 310 | ||
| Markus Eisele | Active work among the German Java community and in the JSR 342 Expert Group. | 342 | |||
| JUG Chennai | Becoming the most active JCP organization in India and a competitive service organization in the commercial marketplace. | ||||
| Werner Keil | Incredible energy and participation in seven JSRs as well as the Executive Committee. | ||||
| Antoine Sabot-Durand |
|
||||
| Outstanding Spec Lead | Victor Grazi, | Java Money & Currency API | Dedicated, focused expertise in solving issues representing money and currencies. | 354 | Win! |
| Michael Ernst | Annotations on Java Types | Level-headed approach; a great example of a well-run JSR. | 308 | ||
| Nigel Deakin, | Java Message Service 2.0 | Outstanding, thorough, and intelligent work keeping the JMS 2 EG open and moving forward at a great pace. | 343 | ||
| Pete Muir, | Contexts and Dependency Injection for Java EE 1.1 | Voluntarily upgrading to 2.8 in late 2011 and maintaining what were already transparent methods in running his Expert Group. | 346 | ||
| Most Significant JSR | Jitendra Kotamraju | API for JSON Processing | An important step in bringing Java into the world of the modern web. | 353 | |
| Victor Grazi, | Money and Currency API | New ways of handling monetary amounts and currency computations. Fixing critical Java Number Format and Representation bugs beyond monetary values. | 354 | ||
| Mitch Upton | Java State Management | The potential to improve how Application Servers and Distributed Services are going to look in the near future as well as simplifying deployment in PaaS and Cloud environments. | 350 | ||
| Nigel Deakin | Java Message Service 2 | Modernize JMS at a rapid pace. | 343 | ||
| Patrick Curran | JCP.Next | Setting the direction and procedures for the next-generation JCP. | 348 355 358 | Win! |
See also
[edit | edit source]Notes
[edit | edit source]- ↑ JSR 3 originally specified the JMX 1.0 release. Two subsequent "final" releases have provided JMX 1.1 and JMX 1.2. JMX 2.0 is specified by JSR 255.
- ↑ JSR 52 originally specified the JSTL 1.0 release. A subsequent maintenance release provided JSTL 1.1.
- ↑ JSR 56 originally specified the JNLP 1.0 release. A subsequent "final" release provided JNLP 1.5, which was primarily a maintenance release. As of February, 2006, the JNLP 6.0 maintenance release has been completed but not finalized.
- ↑ JSR 63 originally specified the JAXP 1.1 release. A subsequent maintenance release of JSR 63 provided the JAXP 1.2 specification. JAXP 1.3 is specified by JSR 206.
- ↑ JSR 127 originally specified the JSF 1.0 release. A subsequent maintenance release provided the JSF 1.1 specification. JSF 1.2 is specified by JSR 252.
- ↑ JSR 154 originally specified the Java Servlet 2.4 release. As of February, 2006 a maintenance draft of the 2.5 servlet specification is under review, scheduled to close on March 20, 2006.
- ↑ JSR 913 originally specified JCP 2.0. It was subsequently amended by various changes to voting rules to produce version 2.1 and then further changed by licensing rules, policy, and processes to get to version 2.5. JCP 2.6 is defined by JSR 215.
- ↑ JSR 924 originally specified changes to the JVM to support changes in J2SE 5.0. As of 2006[update] a maintenance update to support changes proposed by JSR 202 is underway.
- ↑ Handy, Alex (12 September 2011). "Java is open, but is the process?". SD Times. Retrieved 21 September 2011.
- ↑ Whiting, Rick (10 December 2010). "Apache Quits Java Governing Board Over Dispute With Oracle". CRN. Retrieved 21 September 2011.
- ↑ The Java Community Process(SM) Program - Press & Success - News Stories. Jcp.org. Retrieved on 2013-07-17.
- ↑ The Java Community Process(SM) Program - Press & Success - News Stories. Jcp.org. Retrieved on 2013-07-17.