FINAL PROPOSAL: Headless OpenJDK<br><br>Dario Laverde<br><br>dario(at)nycjava.net<br><br><br>1.) Introduction<br>----------------<br>I propose the creation of a port or branch or more appropriately,<br>a subset of the OpenJDK to specifically support embedded and mobile<br>
devices without any GUI (i.e. no AWT or Swing or Java 2D) and <br>optionally without sound support or additional Java SE libraries that<br>are not required by the application so as to run in disk and memory<br>space constrained devices.<br>
<br>The goals of this project is to provide a Java implementation that will<br>be suited for devices such as wireless routers, single board devices,<br>PDAs, mobile phones and essentially any device where either there is no<br>
user interface or the user interface is proprietary or not easy to port<br>to without significant effort. Much like the case with headless servers,<br>Java implementations should be able to run without any UI requirements<br>
but additionally it should also have all such related library code <br>(both Java and native code) stripped to provide a minimal footprint<br>suitable for use in embedded and mobile devices. Without resorting to a<br>modular system, the goal is to provide a compact Java SE runtime<br>
deliverable targeting a specific device or platform.<br><br>This project proposal meets the following criterion for project types<br>as outlined by Official Rules of the OpenJDK Community Innovators&#39;<br>Challenge in section 3.F.<br>
&nbsp;&nbsp;&nbsp; 1.) Develops and implements ... that extend the applicability<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; or use of the JavaSE platform into new markets...<br>&nbsp;&nbsp;&nbsp; 3.) Ports the OpenJDK code base to a new and interesting OS<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; and/or hardware architecture.<br>
<br><br>2.) Deliverables<br>----------------<br>This project will be considered complete with delivery of<br>&nbsp;&nbsp;&nbsp; a) A working build system that others outside of the porting<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; effort can easily duplicate. This can optionally include<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cross compilation tools/support.<br>&nbsp;&nbsp;&nbsp; b) All source modifications (if required) published to the <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OpenJDK project.<br><br><br>3.) Milestones<br>--------------<br>&nbsp;&nbsp;&nbsp; a) Develop an easy to use build environment consisting of <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; either a branch or of tools that will strip away any <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dependencies on GUI support and unnecessary libraries for<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a given device and/or platform.<br>&nbsp;&nbsp;&nbsp; b) Proof of concept releases running on several devices.<br>
<br>4.) Dependencies on Sun<br>-----------------------<br>There is no dependence on Sun, outside of their role in the OpenJDK project.<br><br><br>5.) Relevance to the Community<br>------------------------------<br>In addition to eliminating all the issues regarding any remaining<br>
incumberances, developers should be able to freely use the latest<br>OpenJDK sources (as opposed to 3rd part efforts) as the basis for<br>porting to any device without regard to UI restrictions or the lack<br>of UI support. For devices such as PDAs or mobile devices that<br>
provide web browsers, standalone, downloadable applications can <br>provide users a UI via the web browser. Considering the current and<br>future capabilities of the web browsers found on some devices, the<br>need for native GUI becomes less of a requirement for custom Java<br>
applications to be available on almost any device.<br><br><br><br>6.) Developers<br>--------------<br>Dario Laverde has been developing in Java since 1995 and has<br>successfully ported and/or used third party open source JVMs<br>
in commercial and open source projects, from wireless routers<br>to robots to mobile phones such as the iPhone. He is the JUG<br>leader of the NYCJava.net JUG<br><br><br>