I have some good news to report in the Apache-Sun relationship this week!
Apache has signed a newly formed (and much improved) TCK License covering all the JSRs on which it's active, allowing Apache to continue participating in the JCP. This new TCK License is becoming the Sun boilerplate and promises to bring benefits to all JSR licensees, both commercial and open source, by allowing true legitimate independent implementations of Java technology for the first time.
If you haven't been a part of JCP politics, that paragraph probably looked like gibberish to you. So here's a little background:
I'm Apache's representative to the Java Community Process (JCP) Executive Committee. Back in March of this year, I stood on the JavaOne keynote stage to announce an Apache/Sun agreement to make the JCP more open source friendly. Before this agreement, Apache found itself in the odd position of having Sun development support many of its Java-based projects -- while at the same time Sun legal drafted documents that made Apache's involvement illegal. The JavaOne agreement was Sun's promise to rectify this problem.
The promise didn't include a timeframe, yet in fact we had one. The Apache Board of Directors had days before JavaOne passed a resolution that Apache would no longer implement a specification that wasn't freely implementable by any non-profit under an open source license, effective 90 days hence. Thus, for Sun JSRs to continue being supported in Apache projects like Tomcat, Xerces, Xalan, and Axis required this promise be fulfilled within the 90 days.
After negotiations during the last three months, Sun and Apache last week agreed on final specification and test kit license terms, and Apache signed the Test Compatibility Kit (TCK) license agreement. It was the 89th day.
So now, effective immediately, Apache has access to the TCKs for all the JSRs on which it's active or likely to be active. Apache Axis already has been working to certify against the JAX-RPC TCK. Other Apache products will likely soon follow.
As another important result of this agreement, the Servlet and JSP technologies are once again available independently of J2EE -- legitimizing products like Apache Tomcat that provide servlets without the bulk of J2EE as well as providing a standard TCK against which servlet engines can test.
Beyond Apache, commercial companies and open source groups should benefit from the new licensing terms because TCKs are now more readily available than ever before with fewer restrictions on access. For example, Reference Implementation (RI) code must no longer be licensed along with TCK code.
A few items remain to be finished. First, the "Big Java" platforms (J2SE and J2EE) still require new license terms. Those terms need to be in place before J2EE 1.4 (the next anticipated platform release) finalizes. Second, the agreed-to "Review Board" overseeing the non-profit qualification process has yet to be formed. That should happen over the next couple weeks.
I'll post copies of the license shortly. Unlike previous TCK license agreements, we made sure these would not be held as confidential.
The May release of the com.oreilly.servlet MultipartRequest file upload tool added support for pluggable file renaming logic. Now there's an update that polishes that feature to provide the file name both before and after renaming. In this version getFilesystemName() returns the name as stored on the filesystem and there's a new method getOriginalName() to return the original file name. Enjoy! Get the software here.