Sun will make the TCKs for future and key past specifications available separately from the RI code. Previously, there had been a requirement to license the RI when licensing a TCK, which made true independent implementations impossible.
For details on the agreement, see Sun's Letter of Intent at http://jcp.org/aboutJava/communityprocess/
announce/LetterofIntent.html and Apache's press release at http://jakarta.apache.org/site/jspa-agreement.html.
Is Java finally open sourced?
<jason>: That depends on what this question means. I believe it can mean three different things.
One: "Can there be an open source Java implementation?" The answer is yes, this agreement should ensure that when J2SE 1.5 is released it can have an independent, open source licensed implementation. Many Java specifications will have that ability right away.
Two: "Is the reference implementation for Java (the JDK) available as open source?" This agreement does not address that. Apache doesn't believe in telling Sun or anyone else what license their code must be under. What Apache believes is that if you don't like a code license, you must have the ability to code it yourself. The purpose of this agreement is to allow that.
Three: "Will Java be developed following the open source method?" Right now there's a formal process by which Java specifications are created within the Java Community Process (JCP). The JCP will probably remain as a formal specification-creating body, although Apache hopes it will become more open. The project I lead, JDOM, is JSR number 102, and with the JSR we're proving you can have open development on a Java specification even within the JCP. Now, the clear ability to have open source RIs and TCKs will help this JSR progress.
Apache saw an explosive growth in the number of projects during the last couple of years. What do you see as the major challenges facing the Apache Foundation in being able to maintain the momentum and support all of the existing efforts in the long term.
[Kirk Pepperdine, [email protected]]
<jason>: Apache only accepts projects that have an established, vital, and active community. Put another way, code must come with a community of coders. Apache doesn't accept "throw it over the wall" code - no matter how enticing.
So far the policy has worked well. The main challenge is to effectively integrate the coders into the Apache community.
Are you completely satisfied with the substance and level of commitment contained in this announcement?
<jason>: Right now it's an agreement on a course of action. Apache will be much more satisfied when the plan of action has been executed.
In your opinion, what does Sun stand to gain from this agreement?
<jason>: Apache has been a strong partner of Sun, promoting Java on the server side. Projects like Tomcat, Ant, Xerces, Xalan, and Axis/SOAP are widely used and vital to the server-side Java community. Many Apache projects have Sun developer support, quite a few have implemented Java specifications, and usually when that happens the Apache code has been used as a base for the specification RIs. However, the legal issues surrounding open source Java implementations absolutely had to be settled for Apache to continue supporting the Java Community Process (JCP) and the specifications the JCP produces.
Does Apache plan on creating a JXTA implementation?
[wwsmithms, [email protected]]
<jason>: JXTA is not a JCP specification. It's a Sun-backed but independent and language-neutral open source project with an Apache-style license. It's unaffected by this agreement.
Do you think that this agreement will result in Sun finally testing JBoss for J2EE certification?
<jason>: JBoss will now have access to the TCKs for J2EE 1.4 coming later this year. Because JBoss is a for-profit corporation, they will probably have to pay for the TCK. When talking with them they had no objections to that. It'll be up to them to ensure compliance with the TCK.
How does Apache feel/cope when a lot of their ideas/products are incorporated by other companies? For example, an equivalent of the ORO project has been incorporated into Java 1.4 as regexp classes.
[Fintan Conway, [email protected]]
<jason>: There are two ways to interpret this question.
One: "How does Apache feel when its products are incorporated into products of other companies, e.g., how IBM WebSphere uses the Apache Web Server?" Apache uses this particular license (a very liberal license that allows reuse in commercial products) precisely because Apache wants its code to be both useful and used by anyone and everyone who is interested.
Two: "How does Apache feel when the JCP creates specifications for the Java platform that are in a similar vein to preexisting Apache projects?" This question is more difficult to answer because there may be as many opinions as developers within Apache. I think it's fair to say this: people are glad to see Java incorporating functionality such as regular expressions and logging. However, we've seen the specifications being created in private and with little community input, compared to the typical, Apache project.
Not surprisingly, when you compare the Java specifications with the Apache projects that were created "in the wild" with large amounts of user feedback, the new standards may not seem of equal quality. What's more, the incorporated technology will only fall farther behind as Apache continues innovating and doesn't have to wait until J2SE 1.5 for the next release. At the same time, Apache people realize there's the Microsoft Windows-style effect: whatever's provided with the platform gains the majority marketshare, regardless of its comparative quality.
Is this the beginning of the end? Are we entering a future where we'll be seeing different flavors of Java, like we've seen in the C/C++ world, and building specific versions for specific target JVMs?
<jason>: It's important to recognize that the agreement provides for "compatible" open source independent implementations. Apache believes this agreement will improve Java's portability through the wider availability of Test Compatibility Kits and with the existence of solid open source implementations on which vendors can build. Servlet portability has only improved with the availability of the Tomcat servlet engine.
It may seem like an obvious question but even though Apache is a nonprofit organization, how do they plan to continue to deliver excellent, quality offerings in the future?
[Mark Menzies, [email protected]]
<jason>: For a good description of how open source projects work, I would recommend a book like The Cathedral and the Bazaar [by Eric S. Raymond and Bob Youngor].
Can you explain the finer print on the support that is on offer from Sun for the open source community?
<jason>: In the months before the agreement Apache set as a minimum requirement that the TCK binaries be "easily available" to any open source or academic group. The notion that a specification lead could decide to waive TCK license fees was not sufficient, because a busy spec lead might not even respond to a small group or individual, and we wanted to allow for the next Linus Torvalds to spring up (this time in Javaland). During negotiations, Sun was willing to license the TCKs free of charge to these groups, but was concerned that many TCKs are so complicated they essentially require support in order to run. Sun couldn't grant support to all nonprofits because, unlike TCK binaries, there's a real cost for each support customer.
To solve that problem, the proposal is to have a board (consisting of a Sun member, an Apache member, and an academic member) who would grant free TCK binaries to any qualifying group, and grant TCK support within some budget limits. The method for qualifying groups and granting support will be worked out by the board members. I personally wouldn't be surprised if open source mailing lists became the common vehicle for support for open source groups.
How do you think the major Java players feel about this move?
<jason>: Among the JCP Executive Committee (EC) members there has been strong support for this change. Apache's concerns were listed by EC members as the number one issue to be dealt with in the JSPA legal document as it goes from community review toward public review. Several EC members went on record in support during JavaOne.
<alan>: Tell us a little about Apache. Is it an official company/body? Do they have offices? Is there a telephone somewhere on the planet with someone answering "Good Morning, Apache, how can I help you?"
<jason>: Apache is a nonprofit corporation, with a board, chairman, president, and assets (servers, trademarks, etc.). There are no central offices. As for a number to dial, we prefer e-mail to phones! For more information, here's what we put at the end of press releases:
The Apache Software Foundation provides organizational, legal, and financial support for the Apache open-source software projects. Formerly known as the Apache Group, the Foundation incorporated as a membership-based, not-for-profit corporation to ensure that the Apache projects continue to exist beyond the participation of individual volunteers, to enable contributions of intellectual property and financial support, and to provide a vehicle for limiting legal exposure while participating in open-source projects. For more information on the Apache Software Foundation, please see www.apache.org/.
<alan>: Finally, now that there's been time for the news to sink in, what has been your feedback from the community at large?
<jason>: I find people are still asking questions. The issues are very complicated, and the deeper you dig, the more details you find. Eventually you wish you hadn't ventured so deep! Sometimes I wish I'd taken the blue pill. Happily, things appear to be improving, and I hope Q&A pieces like this help people understand what's changing and what it means.
Alan Williamson is editor-in-chief of Java Developer's Journal. During the day he holds the post of chief technical officer at n-ary
(consulting) Ltd, one of the first companies in the UK to specialize in Java at the server side. Rumor has it he welcomes all suggestions and comments.