Notice regarding open letter to Sun Microsystems

The Apache Software Foundation has written an open letter to Sun Microsystems regarding our inabillity to acquire an acceptable license for the test kit for Java SE needed by Apache Harmony. For futher information please see the FAQ and direct all questions to Apache's VP for JCP issues, geirm at apache dot org, or our regular press inquiry address, press at apache dot org. Update : The Apache Software Foundation has received no official response from Sun regarding the open letter mentioned above, other than a polite acknowledgment of receipt. While we are disappointed by this lack of visible progress, we still hope that Sun will reconsider their position regarding this issue of fundamental importance to the Java ecosystem. We do believe that bringing awareness of the issue to the community has been beneficial. We understand that friends of the Foundation and others that feel strongly about these matters are talking to Sun directly on our behalf. Further, we have seen this issue become a gating issue with JCP Executive Committee members as the consider how they vote on JSR. For example, see Intel's and Red Hat's comments on the recent vote results for Java EE 6. Apache will continue to do what it can to escalate this issue with the JCP Executive Committee with the goal that Sun will finally grant the ASF a TCK license for Java SE that is free of any field of use limitations.

Apache And The Java Community Process

The Apache Software Foundation has been a participant in the Java Community Process since the creation of "JCP 2.0". Apache holds a seat on the Executive Committee for J2SE/J2EE.

Apache is focused on promoting the ideals of community collaboration and transparency and has been working for many years with demonstrable success. Apache was a key participant in the JCP 2.5 process change that allows for open-source implementations of JCP specifications and that grants free TCK licenses to qualified-non-profits, individuals and academics. Apache is a member of the TCK scholarship committee along with Doug Lea and Sun.

Our goal is to put the "Community" in Java Community Process.

The JCP activities of the ASF are centered around three areas :

  • Implementation of JCP specifications, such as Apache Tomcat , Apache Geronimo , WebServices , Portlets , Apache MyFaces and many others.

  • Participation in multiple expert groups of the JCP via individuals representing the ASF.

  • Influence the evolution of the JCP through our participation on the Executive Committee.

Getting Involved

1) Mail Lists

There are two general mail lists for the JCP activities at the ASF :

  • ASF JCP Public Interest List (open to all committers) subscribe

  • Foundation Internal JCP Issues (members-only) subscribe

Expert group interest lists can be created as need and interest dictates.

2) Representation

Apache community members represent the ASF on various expert groups. Our goal is to bring our interests in openness, meritocracy and community to the expert groups we work on. We encourage expert groups to:

  • Operate in an open, transparent manner in the same way that our Apache community lists work

  • Use consensus and/or voting for decision making

  • License their specifications to allow royalty-free implementations under an open source license

  • License their Reference Implementations (RIs) and Technology Compatibility Kits (TCKs) under open source licenses

Representing the ASF on a JSR

Members and committers are invited to represent the ASF on JSRs with the purpose of both promoting our values as well as ensuring that the Apache community can continue to influence and participate in the creation of new Java technology. Because participating individuals are representing the Apache Software Foundation (and not themselves), the ASF reserves the right to decide who represents the ASF. The ASF also will work to help individuals join expert groups, as we believe that independent representatives that have a good understanding of the value of open source are important to the health of the JCP communities.

The general guidelines for participation are:

  • You represent the interests of the ASF and your particular technical community, and not of your employer or personal technological interests

  • If there is an existing community at the ASF that has an interest in the JSR, engage with your community to bring feedback and ideas to the EG. If not, keep in mind how an ASF community might build or extend such a specification

If you are interested in representing the ASF on a new or existing expert group that doesn't have ASF representation, or participating with the existing activities on an expert group, please send email to the JCP open list and indicate your interest.

Current Representation

The following JSRs have active Apache representation. Some groups have an internal mailing list that is used by ASF Members and committers to discuss the progress of the JSR and the ASF's involvement through its representative(s). The list operates under the rules above for representatives.

JSR Representative Discussion List
JSR-220 : Enterprise Java Beans 3.0 Dain Sundstrom and Gianny Damour N/A
JSR-241 : The Groovy Programming Language James Strachan N/A
JSR-244 : Java EE 5 (aka J2EE 1.5) Jeff Genender and Dain Sundstrom N/A
JSR-255 : Java Management Extensions Alan Cabrera N/A
JSR-277 : Java Module System Brett Porter Subscribe
JSR-279 : Service Connection API for Java ME Changshin Lee N/A
JSR-280 : XML API for Java ME Changshin Lee N/A
JSR-286 : Portlet Specification 2.0 David Taylor and David DeWolf N/A
JSR-314 : JavaServer Faces 2.0 Martin Marinschek N/A
JSR-291 : Dynamic Component Support for Java SE Alex Karasulu N/A

Implementation

Because of the work of the ASF, we are able to legally implement JSRs in open source and distribute under the terms of the Apache License. There have been many successful implementations of JSRs at the ASF, in all areas of Java technology.

Projects are free to implement whatever JSR a project community desires, as long the specification license that you agree to allows open source implementations. All modern JSRs do - the key to knowing is to look to see that the JSR was conducted under "JCP version" 2.5 or above. There are some exceptions, such as J2SE 5 which was conducted under JCP v 2.1 yet licensed under the modern open-source-friendly specification license.

The following projects are implementing one or more JCP specifications:

Project JSR
Apache Geronimo 1.x J2EE 1.4
Apache Geronimo 2.x Java EE 5
Apache Tomcat Servlet and JSP
Apache DB JDO 2 (in JDO)
Apache Jakarta JSTL (in Taglibs)
Apache MyFaces JSF
Apache Portals Portlets (in Pluto)
Apache WebServices JAX-RPC, JAXB, J2ME WS, JAXM, JAXR, SAAJ
Apache Jackrabbit Content Repository (JSR-170, JSR-283)
Apache OpenJPA (Incubator) Java Peristence API (JSR-220)
Apache Harmony Java SE 5 (JSR-176)
Apache CXF JAX-WS (JSR-224), JAX-RS (JSR-311)

The following projects have officially tested and passed the TCK for their specific technology:

Project Version JSR Date
Apache Geronimo 1.0 J2EE 1.4 2006-01-05
Apache Geronimo 2.1 Java EE 5 2008-02-15
Apache MyFaces 1.1.8 JSF 1.1 2010-06-10
1.2.9 JSF 1.2 2010-06-10
2.0.2 JSF 2.0 2010-09-25
Apache CXF 2.0/2.1 JAX-WS 2.0/2.1 2007-06-19
2.2.2 JAX-RS 1.0 2009-05-28
2.3.0 JAX-RS 1.1/JAX-WS 2.2 2010-10-11

Testing with A TCK

Whenever a project chooses, it may request access to the TCK for the technology they are implementing. The ASF will work to license, acquire and provide the TCK for the project. The following guidelines apply to working with TCKs at the ASF:

  • A project can request access to a TCK by sending email to the JCP open list.

  • This TCK is for use * only * for the purpose of the Apache project, and no other.

  • While access to the TCK is left up to the requesting PMC, it is strongly encouraged that access be limited to project committers to avoid the perception that the ASF is being used as a "TCK laundry". We have an excellent record in our handling of the TCK materials, and the good reputation of the ASF is dependent upon PMC oversight in this case.

  • Every individual that has access to the TCK materials must have executed a Non-Disclosure Agreement with the ASF. The ASF receives these materials under the terms of an NDA, and we must take due care in how we handle these materials.

Traditionally, projects using Apache's TCKs have been very strict and closed about what information could be discussed in public forums. Over the years, this approach has been gradually relaxed by some projects with no adverse affects on the community, the general TCK testing process, or the ASF's commitment to protect the confidential information entrusted to it.

Therefore, the following should be deemed the guiding policy for dealing with TCKs from the ASF :

Projects must keep the official TCK materials confidential. Use your best judgement. For the elimination of doubt, public discussion about using the TCK, bugs found while using the TCK, and any project-created frameworks or assisting software or documentation that do not reveal the official confidential TCK material is acceptable.

If there are any questions about this policy, please send mail to the jcp-open@apache.org list or mail the VP, JCP privately.

Also note :

The Apache Software Foundation has reconsidered its policy of allowing software used for general community work to be covered under an agreement such as the NDA. The general plan is to eliminate NDAs for project software in a way that minimizes the distruption to our communities. We will work with organizations such as the JCP and its spec leads to achieve an acceptable resolution. While a hard date has not be officially set, we're looking for complete elimination of the NDA for project software by 2010. Discussion of this issue in the context of the JCP and the TCKs will take place on the jcp-open@apache.org list.

The ASF have licensed the following TCKs:

Specification Version JSR Latest Update
Java EE 6 JSR-313 8-Mar-2011
JSR-299 13-Jan-2011
5.0 JSR-244 10-Aug-2010
1.4.1 JSR-151 01-May-2009
1.4 JSR-151 26-May-2004
1.3.1 - 21-Apr-2004
JAF 1.1.1 JSR-925 28-Apr-2008
1.0.2 - 03-Mar-2005
JASPIC 1.0 JSR-196 15-Apr-2010
JavaMail 1.4.2 JSR-919 02-Nov-2009
1.4.1 JSR-919 23-Apr-2008
1.3 - 03-Mar-2005
J2ME Web Services 1.0 JSR-172 14-Nov-2006
JavaServer Faces 2.1 JSR-314 05-May-2011
2.0 JSR-314 13-Oct-2010
1.2 JSR-252 09-Jan-2009
1.1 - 27-Feb-2006
1.0 JSR-127 27-Feb-2006
Java Servlet 3.0 JSR-315 06-Apr-2010
2.5 JSR-154 10-Mar-2009
2.4 JSR-154 24-Apr-2007
1.0 - 14-Jun-2002
XML Binding (JAXB) 2.2 JSR-222 30-Apr-2010
2.1 JSR-222 30-Jul-2010
2.0 JSR-222 03-Mar-2009
1.0 JSR-31 10-Feb-2005
XML Messaging (JAXM) 1.1 JSR-67 16-Aug-2002
XML Processing (JAXP) 1.4 JSR-206 04-Jun-2008
1.3 JSR-206 25-Apr-2006
1.2 JSR-5 24-Feb-2004
XML Registries (JAXR) 1.0 JSR-93 24-Aug-2005
XML Based RPC (JAXRPC) 1.1 JSR-101 11-Jan-2006
1.0 JSR-101 09-Apr-2003
Restful Web Services (JAX-RS) 1.1 JSR-311 26-Jan-2010
1.0 JSR-311 14-May-2009
XML Web Services (JAX-WS) 2.2 JSR-224 05-Jan-2011
2.1 JSR-224 08-Dec-2009
2.0 JSR-224 15-May-2007
Java Business Integration 1.0 JSR-208 08-Feb-2007
Java Persistence API 2.0 JSR-317 5-Dec-2010
1.0 JSR-220 30-Mar-2007
JavaServer Pages (JSP) 2.2 JSR-245 30-Aug-2010
2.1 JSR-245 10-Aug-2010
2.0 JSR-152 21-Dec-2004
1.0 - 08-Jun-2002
Java Standard Tag Library (JSTL) 1.2 JSR-52 26-Mar-2008
1.1 JSR-52 18-Nov-2003
1.0 JSR-52 28-May-2003
Portlet 1.0 JSR-168 18-May-2005
SAAJ 1.3 - 20-Jan-2010
1.2 - 12-Aug-2005
1.1 - 16-Aug-2002
STaX 1.2 JSR-173 20-Apr-2010
1.1 JSR-173 21-Dec-2007
1.0 JSR-173 10-May-2006
Content Repository 1.0 JSR-170
JMS 1.1 JSR-914 08 June 2006
WS Metadata 2.0 JSR-181 01 Feb 2007

The following TCKs are in process of being acquired:

JSR
JSR-176 : Java SE 5