Open Source November 2006 Launch

Onno Kluyt Sr. Director , Inc. Recent Past: Open Source Java EE • Announced at J1 '05 • Delivered at J1 '06 • Key Contributors > Sun, Oracle, TmaxSoft > Many individuals • Includes > Production-Quality AppServer GlassFish Community > TopLink Essentials Open Java EE • OSI-License (CDDL) What's Next: Open Sourcing Java

Java ME & Java SE Why Now?

• Java: 11+ years building a very large, dynamic market Maturity • Open source: has evolved to the mainstream • Community: recognizing the value of compatibility • Sun: learning how to build communities

• GNU/: spreading open source worldwide Adoption • Customers: demand open source • Developers: follow volume

• Web 2.0: developed on open source foundations Innovation • Community development: Innovation happens everywhere Timeline

License Announcement JavaOne JavaOne Announcement 2007

Java SE 6 GA

May Aug Nov Feb May 2006 2006 2006 2007 2007

Java SE first code release, community First Press Buildable JDK Update Java ME buildable code Available release, community You are here Java SE, ME Open Source License

GPL Version 2 + Exception (SE Only) • Discourage proprietary forks • Build community • Gain goodwill of F/OSS • Calm fears of customers communities deploying Java software • Compatible with GNU/Linux, • Minimize second-guessing fostering adoption • Adopt the F/OSS • Sun Contribution Agreement community's exact will govern contributions approach The Classpath Exception (SE only) • Classpath exception: you can distribute Java programs that SE Libraries (GPL2/CE) link to the open source JRE and NOT GPL your code SE VM (GPL2) • Will minimize second-guessing of Sun's intentions > Existing Java SE projects use this mechanism: GNU/Classpath project, VM > Created by (http://www.gnu.org/software/classpath/license.html) > Similar to LGPL > Aligning licensing but welcome alternative implementations including GNU/Classpath • We are using the SAME licensing paradigm as the FSF

Copyright () 1996, 1997, 1998, 2004, 2005, 2006 Free Software Foundation, Inc. 51 Franklin St, Fifth Floor, Boston, MA 02110, USA Verbatim copying and distribution of this entire article is permitted worldwide without royalty in any medium provided this notice is preserved. Open Source Communities and Java • Have been engaging community leaders regularly • Choice is good! We don't expect anyone to “close up shop” • Developers can participate in multiple projects • GPL license is incompatible with some other licenses, particularly the Apache > Sun and Apache have collaborated in many ways > We are grateful for 's commitment to compatibility > We look forward to more collaboration, including on Java SE despite different licenses • Cordial, professional, mutually beneficial relationships Our hope is that projects will be differentiated on technology, not license or ideology, for the betterment of the Java ecosystem as a whole Java SE components in first open source code release • > Development javac • Hotspot APIs > virtual machine > Class Libraries > garbage collection > threads > security HotSpot Virtual Machine

Processor/OS Platform More about the code releases • First code release is from early builds of JDK 7 > Nearly identical to JDK 6 final code (soon to ship) > Changes include license, version, modifications for standalone builds, some bugfixes, minor enhancements • Spring 2007 code release will include: > All unencumbered source code modules of JDK 6, JDK 7 > Full build scripts > Small number of encumbered modules delivered as binary plugs JDK 7 is where the innovation is happening; JDK 6 will also be open sourced for bug fixes, updates How will encumbered code be handled? • Only a small number of significant encumbrances, all in : > ICC color management > Font rasterizer > Graphics rasterizer • Will be delivered as binary modules that can be linked with source modules in the build process. • Actively negotiating with IP owners to eliminate as many encumbrances as possible prior to release. • Will work with the community to resolve remaining encumbrances. Open Source Plans For Java ME Mobile & Embedded Community

Mobile & Embedded

Other Java “Application “Embedded phoneME cqME ME Platform Developer” Java” Projects

Sub-projects Sub-projects Possible Projects Possible Projects Existing Projects ● Feature: CLDC ● ME framework ● SIP, IMS, etc ● Java ME apps ● Framework, utilities ● Advanced: CDC ● JDT framework Resources ● applications Open Sourcing Sun's Java ME Implementations & Testing Tools • Open source code releases > Launch – November > Feature phone implementation (CLDC-based, mass market handsets) > ME framework (foundation for Java ME TCKs) > By end of December > Advanced OS phone implementation (CDC/FP/PBP-based, Adv OS handsets, set-top boxes, Blu-ray devices) > February > Java Device Test framework (foundation for compatibility & quality) • NetBeans Mobility Pack (development tools) > Already under open source development in NetBeans community • Manage encumbrances > Work to resolve - negotiate w/ IP owner, OSS alternative & Sun's products OpenJDK, Mobile & Embedded Communities

Mercurial Contribution Repository (future) Process Committers (initially Sun, eventually Subversion non-Sun) Repository Code Release Management Governance Planning

ZIP files Quality Collaboration Processes Infrastructure Project Management Bug Tracking Mailing lists, Blogs Functional Tests

http://community.java.net/openjdk http://community.java.net/mobileandembedded Governance • Under study > SE doesn't have a steady-state governance model yet. Target is mid 2007 > ME initial governance will evolve with feedback • SE initially will use the model from the past two years: > Contributions welcome - Sun engineers shepherd them through • Both will include non-Sun committers long-term > ME will have non-Sun committers very soon based on merit > Will be treated as equals – rights and responsibilities • Will likely allow for alternative implementation choices, community projects and ports Inclusive, meritocratic governance is the goal Collaboration Infrastructure • Hosted on java.net • Bug tracking, code management, process tools all Sun- specific and not ideal for community development • At launch: > SE will host mailing lists on java.net, will continue to use bugs.sun.com initially. Process tools to move to java.net over time > ME will use CollabNet infrastructure including issue tracker, allowing community to track bugs. Code management less an issue for ME • Tomorrow: community enabling tools, documented processes • Transition will take time, input from community Code Management • Java SE at launch > Teamware – not suited to community > Code available in zip archives & a read-only Subversion repository • Java ME at launch > /W Subversion repository • Moving to new source code management system: Mercurial (http://www.selenic.com/mercurial) > Fast, robust, distributed > Chosen by OpenSolaris community > SE will migrate soon, ME in the future This has to work for both the community and Sun in building high-quality commercial releases to a schedule GlassFish / Java EE Update • Adding GPL License to original CDDL > Choose at Change Time • Multiple Releases > V1 – Original Java EE 5 RI > V2 – More Features & Wider Community Engagement • All Development is visible outside Sun - > Sources, Bug Tracking, Roadmap, Design Documents... • Committers - Sun, Oracle, Individuals... and growing • Will adopt Mercurial sometime in future http://glassfish.dev.java.net Role of the JCP does not change

Spec

APIs Specs TCK

OpenJDK, GlassFish, Mobile&Embedded Community Code TCK TCK Code Commons RI The Java Brand • Two elements – the trademark, and the logo • Only Sun may use the trademark to name a product or service • Logo programs Java Powered and Java Compatible allow for third parties to brand compatible products • Fair use allows you to state that a product is intended for use with Java: “Jcool for Java technology” • Compatibility is determined by passing the TCK Products carrying the cup and steam logo, or using the terms Java Compatible or Java Powered are guaranteed to be tested and compatible Maintaining Compatibility • License: GPL discourages proprietary forks • Branding: easy to know what is compatible • JCP: remains governing body for specs • Community: a compelling developer experience • Influencers: value compatibility and will fight for it • Market: installed base of Java applications Ultimately the market will dictate how important compatibility is. We're optimistic that incompatible derivatives won't gain traction Duke goes open source too! • Every open source project needs a mascot! • http://duke.dev.java.net • BSD license [email protected] Who Wins?

• New markets, broader adoption, volume and ubiquity Developers • More influence, participation and community, freedom • Leveraging an industrial-strength foundation • Turning skill and knowledge into new opportunities

• No lock-in, lower switching costs, ultimate control Customers • Faster innovation, more competition, lower prices • Investment protection, leverage through compatibility • More applications, new markets served

• Monetizing ubiquity at point of value with commercial distributions and services Sun • Delivering systems optimized for SOA, Web 2.0 • Reaping increasing share of an expanding addressable market Open Source Java ME Benefits

● Engage developers and ISVs ● Accelerate innovation ● Drive common implementation, compatibility Java SE, ME Customer Economics Commercial Distribution Do it yourself with open from Sun source code base • Benefits • Benefits > Performance, reliability, > Power to fine tune, customize security, fit and finish > Support, updates • Costs > Focus on core business – > Headcount, time differentiation > Uncertainty, lower quality and performance • Costs > For platform implementations – > $ royalty/unit or subscription TCK license for branding fee for support > More responsibility > Less power for customization

Peace of mind is not free Free like a puppy Developer Who Wins? Sun OEM Operator User

• Improved access to source code • Simplified Handset • Reduced development costs evaluation OEMs • Simplified component partners participation

• Complete transparency • Faster innovation, more compelling apps Operators • Increased compatibility, reduced testing • Opportunity and operational costs to influence

• Ability to • Increased compatibility participate Developers • Reduced & testing costs • Faster time to market Java Evolution

Web And Now... 2.0

Mobile Java ME Enterprise Java EE

Java SE Foundation Sun’s History of Community Java: A Community of Communities

TheServerSide

Vendor JavaLobby Independent & ISV Projects ... Communities JUGs Apache java.net ObjectWeb NetBeans JCP JBoss JSRs Kaffe

O'Reilly Classpath ... We've Done it Before...

...And We're Doing it Again