Skip to Main Content
Apache Events The Apache Software Foundation
Apache 20th Anniversary Logo

FAQ - Open Letter to Sun Microsystems - JCK

FAQ Open Letter to Sun Microsystems

We have created the following FAQ to provide background information on the open letter to Sun microsystems.

Q : What is the Apache Software Foundation?
A : The Apache Software Foundation - or ASF - is a 501(c)3 public
    charity that, among other things, provides a foundation for
    open, collaborative software development projects by supplying
    hardware, communication, and business infrastructure.  The
    Foundation website is http://www.apache.org and you can read
    more about the Foundation at
    http://www.apache.org/foundation/faq.html

Q : What is the Apache Harmony project?
A : Apache Harmony is a project of the Apache Software Foundation
    focused on creating an independent, compatible implementation
    of Java SE.  That means we're writing the whole implementation
    from scratch, or incorporating software from other open source
    projects.  You can read more about the Apache Harmony project
    at its website http://harmony.apache.org

Q : Why was Harmony created?
A : Harmony was created for many reasons.  The fundamental reason is the same as
    other projects in the open source / free software space working Java (such as
    GNU Classpath, Kaffe, GCJ, etc) - we wanted to do an implementation of a
    complete, compatible Java SE runtime environment,  including virtual machine,
    class library and tools under a FLOSS license.

Q : What does "FLOSS" mean?
A : It refers to a license being either "Free", "Libre" or "Open
    Source".

Q : What is the Java Community Process?
A : The Java Community Process (or JCP) is the governing
    organization for Java.  Initially created by Sun, it includes
    an Executive Committee composed of 32 representatives from
    corporations, individuals and academics representing thousands
    of members.  The JCP is the organization through which new
    specifications for Java technology are created.

Q : How long has the JCP existed?
A : After an initial draft of the process was crafted and
    distributed on October 8, 1998, the JCP was introduced on
    December 8, 1998 and was announced by Sun at the 1998 Java
    Business Expo Conference.

Q : What is the JSPA?
A : The JSPA is the "Java Specification Participation Agreement",
    the governing document of the JCP.  Among other things, it
    specifies how IP is managed in an expert group, how it is
    licensed to independent implementations, and how the TCK and
    RI can be licensed.

Q : What is a JSR?
A : A JSR is a "Java Specification Request", the formal vehicle
    through which Java technologies are created or updated.  A JSR
    is proposed by any JCP member, who is then known as the
    "specification lead" or "spec lead" for that JSR.  The spec
    lead organizes an "expert group" and that expert group works
    to create the specification.  The expert group must also
    create a "reference implementation" or "RI", as well as a
    "technology compatibility kit" or "TCK".

Q : What is an expert group?
A : An expert group is a group of people, organized by a spec lead
    for a JSR, with appropriate expertise in the area of the JSR.

Q : How many JSRs has the ASF participated in?
A : Many - the ASF has had representation in JSRs since the modern
    JCP was formed.

Q : How many JSRs has the ASF implemented as open source software?
A : Many. For example, Apache Tomcat, Apache Geronimo, Apache
    Harmony, Apache MyFaces, Apache Scout, Apache ActiveMQ, Apache
    ServiceMix, Apache Jackrabbit, Apache Portals, Apache
    WebServices and Apache XML are all projects that implement one
    or more JSRs.

Q : What is a TCK?
A : The Technology Compatibility Kit, a test framework produced by
    the spec lead to be used by independent implementations to
    demonstrate compatibility (and therefore get the grant of
    necessary IP).

Q : Why is the TCK useful?
A : It allows independent implementations to demonstrate that they
    are compatible with the specification, and as a result,
    receive all the "necessary IP" from expert group members.

Q : What is "necessary IP" and why is this important that
    compatible implementations receive it?
A : "Necessary IP" is the IP - usually patents - that cannot be
    technically avoided when implementing the specification.  This
    is important because it prevents anyone from joining an expert
    group and gaining the ability to demand royalties from
    implementors or users of the specification.  This is one of
    the main features of the JCP that makes the specs the JCP
    produces "open specifications".

Q : You talk about the JCK in the letter.  Is the JCK a TCK?
A : It is, actually.  The JCK is the name Sun gave the TCK for the
    Java SE specification.  While it has a different name, it's a
    TCK for the purposes of JCP process discussion.

Q : Who owns the JCK?
A : Sun owns the JCK, as they created it as part of their
    obligation as a spec lead.  The JSPA requires the spec lead
    for every JSR to deliver a TCK (which Sun calls the JCK for
    the Java SE spec) when a given spec is completed to allow
    independent implementations to demonstrate compatibility and
    receive the necessary IP grant.

Q : Was it always possible to create and distribute
    implementations of JSRs under free and open source licenses?
A : No, but the ASF was instrumental in making this possible.  In
    2002, the Apache Software Foundation, working with other
    members of the Java community, led the effort to change the
    JCP governance document - the "Java Specification
    Participation Agreement" or JSPA.  These changes finally made
    it possible to create independent implementations of Java
    specification under free and open source licenses.  Before
    these changes, it was impossible to do so.

Q : What is the "Apache Compromise"?
A : As part of the process that led to changes in the JSPA, Sun
    Microsystems made a public commitment to the Java community
    that Sun-led specifications would be implementable in free and
    open source software.  That commitment can be found here :
    http://jcp.org/aboutJava/communityprocess/announce/LetterofIntent.html

Q : Is it true that Java SE 5 was the first of the Java SE JSRs to
    be released under the above-mentioned FOSS-friendly JCP terms?
A : Yes.  Some Java specifications take years to complete, and one
    was in progress at the time of the JSPA changes.  So we had to
    wait until the next JSR for Java SE was complete, which was
    Java SE 5.

Q : I see you refer to "necessary IP" in your open letter.  Is Sun
    the only owner of the necessary intellectual property that the
    Java SE JSR contains?
A : No.  There probably is "necessary IP" from all members of the
    Java SE expert group.  The JSPA requires expert group members
    to license their necessary IP to the spec lead, who in turn is
    obligated to license all necessary IP to any compatible
    implementation that passes the TCK (or in this case, the JCK).

Q : Who was the spec lead for the Java SE 5 JSR?
A : Sun.  See http://jcp.org/en/jsr/detail?id=176

Q : Is Apache the first to ask for a JCK license?
A : No.  There are many JCK licensees.  It is our understanding
    that we are the first non-profit with no commercial ties to
    Sun to attempt to license the JCK.  We know about a JCK
    licensing discussion between Sun and some in the free software
    community, but we don't believe that led to a successful
    resolution.

Q : Is Apache against Sun earning money out of licensing the JCK
    to commercial entities?
A : Of course not.  The ASF is a public charity and as such,
    doesn't compete in the commercial marketplace.  We take a
    completely neutral position regarding legal commercial
    activity.

Q : What is a "field of use" restriction?
A : A "field of use" restriction is a restriction that limits how
    a user can use a given piece of software, either directly or
    indirectly.  To give a concrete example from the Sun / Apache
    dispute, if Apache accepted Sun's terms, then users of a
    standard, tested build of Apache Harmony for Linux on a
    standard general purpose x86-based computer (for example, a
    Dell desktop) would be prevented from freely using that
    software and that hardware in any application where the
    computer was placed in an enclosed cabinet, like an
    information kiosk at a shopping mall, or an X-ray machine at
    an airport.

Q : Is a "field of use" restriction incompatible with both open
    source and free software principles?
A : Yes, both.  See the Open Source Initiative's open source
    definition (http://www.opensource.org/docs/osd), most notably
    section 6 and 10 and the Free Software Foundation's free
    software definition
    (http://www.gnu.org/philosophy/free-sw.html) most notably
    freedom #0.

Q : Would the ASF be satisfied with a TCK license that removed the
    field of use restriction if used only on Apache Licensed code?
A : No.  Looking at the broader picture, the ASF has worked for
    years to ensure that the JCP creates "open specifications",
    specs that are freely implementable under free and open source
    licenses.  If the field of use restriction was lifted only for
    the Apache License (or only the GPL, or only the MPL, or...)
    then it still would be discriminatory and contrary to the
    terms of the JSPA.  The resulting specs still wouldn't be open
    specifications.  In addition to that, the Apache License 2.0
    grants everybody who follows the terms of the license "a
    perpetual, worldwide, non-exclusive, no-charge, royalty-free,
    irrevocable copyright license to reproduce, prepare Derivative
    Works of, publicly display, publicly perform, sublicense, and
    distribute the Work and such Derivative Works in Source or
    Object form."  In particular, note the word "sublicense" in
    that quote - it's not possible for an "Apace License
    carve-out" here as people can sublicense our software.  (Note
    that it's still true that if someone makes a derivative work
    of Apache Harmony, they are still obligated to secure their
    own JCK license and test their derivative if they wish to call
    their work compatible).

Q : What is an acceptable JCK license for Apache?
A : Simply put, we're asking Sun to make it like the other 15+ TCK
    licenses - including other major platform JSRs like Java EE -
    we have executed with them over the years, all of which have
    no "field of use" limitations.  We are asking that Sun drops
    the "field of use" limitation, therefore allowing freedom of
    use, in accordance with their obligations under the JSPA.

Q : Why does Apache think it's entitled to such a license while
    others have to pay for it?
A : This isn't a debate about the cost - Sun agrees that it should
    be available to Apache at no cost.  The important issue is
    lack of a field of use limitation.  The JSPA mandates is that
    everyone is entitled to a TCK license free of field of use
    limitations - whether or not they pay for the license - and
    that is what makes the specs created by the JCP open
    specifications.  Now, as to the issue of paying for the TCK,
    the JSPA requires that TCKs are made available to qualified
    not-for-profits, individuals and academics.  As Apache is a
    501(c)3 public charity - aka "non-profit" - we therefore would
    receive the JCK at no cost.

Q : Does Apache think that Harmony could be used by commercial
    entities to avoid paying JCK licensing fees to Sun?
A : No.  The only way that could happen is if a commercial entity
    stopped shipping their own software and started shipping the
    tested binaries that were created by the Harmony project.
    Even then, they would still need to license the Java branding
    rights from Sun, as Apache does not pass those rights
    downstream to users or redistributors of our software.  Note
    that if an entity made a derivative work, or used only part of
    Harmony's source code in building their implementation, they
    would still be obligated to obtain their own JCK license for,
    and test the software themselves.  Apache does not make its
    TCKs available for use outside of our projects.

Q : Is Apache trying to damage Sun's business?
A : No.  Apache is a non-profit and does not engage in any
    commercial activity.  We're trying to build our own
    independent implementation of Java, and create a community of
    users and developers around that software, and need the JCK to
    do so.

Q : What about OpenJDK?  Sun has indicated their intention to
    release the source code of their implementation of Java SE
    under a modified version of the GPLv2.  Would OpenJDK be
    allowed to ship without passing the JCK?
A : Good question, and a complicated one.  We think the answer is
    "no".  While Sun was the spec lead of the Java SE JSR and
    therefore had all the "necessary IP" licensed to them by all
    the expert group members, by simply placing their own
    implementation under the GPLv2, not all of the necessary IP is
    automatically granted.  If OpenJDK users are to receive the
    benefits of compatibility, the project will need to ship a
    binary that has passed the JCK.  It is worth noting that if
    Sun placed "field of use" limitations in the certified
    releases of OpenJDK, that would be in violation of its own
    license, the GPLv2.  If Sun added a "GPL-only carve-out" to
    the field of use, that would be problematic in the same way
    that an "Apache License-only carve-out" would be problematic,
    as we discussed above.

Q : Why doesn't Apache simply ignore this and ships Harmony
    without passing the JCK?
A : We can ship Harmony without passing the JCK - it's our source
    code to do with what we wish - and we will with milestone
    releases as we progress towards completion.  However, we could
    never claim to be Java compatible, which is something very
    important to Java users, and is the stated goal of the
    project.  Also, users wouldn't be assured that they had all
    necessary IP rights from the spec's contributors. Compatibility
    is important to us as is not putting users in IP jeopardy, as
    it has been for every JSR the ASF has ever implemented.  We have
    no interest in forking the technology.

Q : Why is Apache resorting to this public "open letter"?
A : Apache has tried since August of 2006 to get this license.
    There has been quite a bit of effort put into this to achieve
    a private resolution, including private appeals to officers of
    Sun, including Jonathan Schwartz, Sun's CEO.  We even brought
    the issue up to the JCP Executive Committee.  But to this point,
    Sun has continued to be unyielding.  We really did hope to resolve this
    peacefully and privately, and continue to hope that we can
    resolve this peacefully.  But we owe answers to our
    communities as to why we haven't been able to secure the JCK,
    and we feel that at this point, it is Sun's question to answer
    given their contractual obligations in the JSPA, and their
    past and current promises to the open and free software
    communities.

Q : Would Apache send such an open letter if it wasn't Sun the
    spec lead of the Java 5 JSR?
A : Absolutely, if we ever got to an equivalent stage with another
    spec lead.  JCP openness is a necessary requirement for a
    healthy and diverse java ecosystem and has nothing to do with
    the identity of the spec lead or their company affiliation.