Java Internal Use License (JIUL) released for JDK 5.0
I am very pleased to announce that Sun has released a new license for the JDK called the Java Internal Use License (JIUL or "jewel"). This license lets developers easily make changes to the JDK for internal deployments. It's free, click-through and should be easy-to-read by non-lawyers.
End-users of Sun's implementations of J2SE 5.0 now have the ability under the JIUL to fix any critical issue in the code that adversely affects their business operations. In addition, Sun will waive the commercial requirement to pass the Technology Compatibility Kit (TCK) for J2SE (a.k.a. the JCK) as long as all code changes are made with diligence to assure the resulting implementation remains true to the specification and that its use is restricted to the licensee's internal business or organization.
What? How could this be? Hasn't Sun proclaimed since the dawn of Java, "Thou shalt only have compatible implementations before thee!" And now... Sun is giving people the right to change the JDK without verifying that compatibility?
Well yes, and no.
Sun is not backing away from compatibility. In fact, a passion for Java compatibility should be a prerequisite for any company or individual who enters into the JIUL. The purpose of the JIUL is to address a specific business need of Sun's customers who tell us that while compatibility is critical to both Java technology and their businesses, they also need the ability to fix critical bugs or performance issues in an emergency.
So why drop the requirement to pass the JCK?
The JCK is not designed for end-users, but rather for J2SE implementers who are intimately familiar with the operation of their code. Few businesses need to understand all the intricacies of the JDK runtime and few operate in work environments that make use of every J2SE feature. However, all features must be set up and successfully tested as part of passing the JCK. For this reason, the cost in time and resources necessary to understand, set up an appropriate test environment, and then pass the JCK is just not practical for most businesses.
The JIUL runs on the "honor system." Sun trusts that licensees will make changes with great professional care so as to limit the risk that compatibility is compromised. Sun understands too that even the best of intentions may fail which is why all JIUL-based J2SE implementations must remain strictly within the confines of that licensee's business or organization.
To be clear, the JIUL is not a general purpose J2SE implementation license. Sun has commercial licenses for those who wish to distribute their implementations (and such licenses do require the code passes the JCK). Think of the JIUL as a safety net. It provides peace of mind when things are good and more control over managing your IT operations in times of a business emergency. I hope you never have to use the JIUL, but if the need ever arises, you'll be glad it's there.