At the June 15, 1999 JavaOne conference opening keynote in San Francisco, James Gosling, Sun vice president and fellow, announced with Brian Behlendorf, cofounder of Apache, that Sun Microsystems and the Apache Group have agreed to the following: Sun will license the source code to the JavaServer Web Development Kit (JSWDK), which contains the Servlet and JavaServer Pages (JSP) reference implementation and was previously known as JSDK 2.1, and the related test suites to Apache; Apache then will relicense the source code to the public under the open Apache license.
This announcement has tremendous implications for servlet and JSP developers, as well as the Java community at large. It means we'll soon see Apache -- a server with more than 50 percent of the Web-server marketshare -- in the position to always support the latest version of servlet and JSP releases.
This agreement also allows for a more consistent servlet and JSP implementation across all Web servers because the reference implementation source code will be available to everyone, including other Web server vendors and servlet engine vendors.
Perhaps the most exciting aspect of the announcement is that it marks the first time Sun proprietary Java source code will be available under a license as unrestrictive as the Apache license. With the Apache license, individuals and companies are be free to use the source code for nearly any use without royalty payments of any kind.
The Jakarta Project
What are the full implications of this new unrestrictive license? According to Sun and Apache developers near to the project, work will continue on the servlet and JSP source code following the open Apache process, under the project name Jakarta. (This was the name of the Sun conference room in which the majority of the meetings leading up to the agreement took place; not coincidentally, it's also the name of Indonesia's capital.) Under this process, all the Jakarta code will be downloadable for free, meaning it will be free to use, modify, and incorporate into other projects without royalty fees. It will also be possible to submit changes to the official Jakarta source code back to the Jakarta Project, subject to review by the group of developers who are actively participating in the project. The details of the process are still being finalized. The rules will likely be similar to those stated in the Java Apache Constitution. (See Resources.)
Sun states it will continue to release updated versions of the JavaServer Web Development Kit as the reference implementation for servlets and JSP, and that the JSWDK code will come from the Jakarta code.
The Jakarta Project will be divided into a number of projects involving Java. Sun's code will be the basis for two of the projects -- one for servlets and one for JSP. The servlet portion has been given the name Tomcat (the previous codename for the JSDK 2.1 project inside Sun). The JSP portion tentatively has been given the name JoSPer. Other projects currently under the Java Apache umbrella are likely to be integrated into Jakarta.
James Davidson, the Sun engineer responsible for the Servlet API, has been heavily involved in creating the Jakarta Project and will play a major role in coordinating its activities. He says representatives from outside Sun will be involved as well. IBM has already agreed to participate.
"This agreement and the Jakarta Project will have a far-reaching effect on the world of servlets and JSP," said Davidson. "This move ensures the latest and greatest Sun technology gets into the hands of the Apache developers where together we can provide world-class servlet and JSP implementation."
For more information, see the URL for the Jakarta Project in the Resources section.
Jakarta Q & A
The following question-and-answer section attempts to anticipate the questions that may come up regarding this announcement.
Who can help develop the servlet and JSP code?
The code will be made available in the same way the code for the rest of the Apache Project is made available. Anyone can gain read access. Individuals who have shown merit can gain write access. See the Java Apache Constitution in Resources for more information.
What does this mean for the recently-released Apache JServ, the servlet engine developed by the Apache Group?
Apache JServ will merge with Tomcat. The best ideas and code from both projects will be used in Jakarta.
Can the code be used by other servlet engine vendors?
Absolutely. The Apache license is very unrestrictive. According to James Davidson, "It's hoped that with the modular 'servlet container' provided by Jakarta, other servlet engines will be able to use this code to ensure maximum compatibility through a common codebase." Third parties are likely to compete on quality of server integration, administration, and extra features.
Can the code be used on its own?
Yes. The design is modular so the code can be used inside Apache, inside another server, or standalone for easy development and testing. The code can even be embedded inside another Java program.
Is Jakarta a product?
No. Jakarta is the name of the overall project.
Learn more about this topic
- Jakarta Project, which was just made public
- Apache Project
- Java Apache Project
- The Apache Project Constitution describes the collaborative development process used by the Apache Project
- The general Apache license