New IcedTea Project
IcedTea-Web attempts to fill in some of the parts that OpenJDK does not supply.
Deepak is a Senior Software Engineer at Red Hat. He currently works on the Java team and is the maintainer of the IcedTea-Web project. He also contributes to Fedora and Red Hat Enterprise Linux by maintaining various packages therein. Deepak has a degree in Computer Science, specializing in Software Engineering from the University of Toronto. He currently resides in Toronto and works from the Red Hat office there.
Last month, Senior Developer at Red Hat Deepak Bhole announced the first release of the IcedTea-Web project, an open source addon component to the IcedTea harness. The first release of IcedTea-Web contained a Java web browser plugin, a Net X-based Java Web Start implementation and an alpha preview of the IcedTea-Web GUI tool. In this interview, JAXenter speaks to Deepak Bhole about the new project, how it relates to IcedTea and Net X, and what we can expect from IcedTea-Web in the future.
JAXenter: You recently announced the first release of IcedTea-Web. How does this project relate to IcedTea?
Deepak Bhole: IcedTea-Web attempts to fill in some of the parts that OpenJDK does not supply but the proprietary Oracle JDK does. More specifically, it consists of a web browser plugin, a Free Web Start – javaws – implementation based on NetX, and itweb-settings, a deployment configuration tool.
Initially the plugin and Web Start implementations were part of the IcedTea repository. After having had to do a few IcedTea releases just to push new plugin and Web Start updates, we realized that it might be better to split those into a separate project that can release independently. This has the added benefit that IcedTea-Web can be built without having to build the entire JDK.
The first release of IcedTea-Web contained the plugin, the Web Start implementation, and an alpha preview of a new tool we’ve been developing to allow easy deployment configuration of the plugin and Web Start implementations.
JAXenter: IcedTea-Web.1.0 contains an alpha preview of itweb-settings. How does this tool work?
Deepak: The tool is a Java Swing based application to control deployment settings. For a while, a lot of the settings were embedded in the Java code of the plugin and Web Start implementations. This was later moved into a deployment.properties configuration file. While that made it a bit easier to work with, it still lagged in terms of ease of use, especially compared to something like the Control Panel tool that is part of the Oracle JDK.
In addition to having a GUI, there is also a rich command-line interface to itweb-settings. The CLI allows a user to modify, view and check configuration values. All supported options can be seen by running “itweb-settings help”
itweb-settings will ultimately be able to control settings like proxies, cache, logging, etc. and do certificate management as well. Most of this is already in, and the rest of the pieces are being filled in as time passes.
JAXenter: How does the project build on NetX, on which it is based?
Deepak: NetX is a Free Web Start implementation originally written by Jon A. Maxwell. When we, IcedTea, started looking at it, the project had already been dormant upstream for a while. Given the inactivity, it made sense to fork the project and develop it as part of IcedTea which was far more active.
The Web Start implementation in IcedTea, and now in IcedTea-Web, is based on NetX. NetX was not fully complete when we forked it, so we made enhancements on top of it that include features like the ability to run outside the sandbox, handle 3rd party certificates, signed jars, etc. As enhancements are made to the Web Start specification, we try to keep our implementation updated accordingly. The original NetX project could handle JNLP files that conformed to the 1.0 specification only. The Web Start implementation in IcedTea-Web can handle files all the way up to the latest 1.6 specification.
Furthermore, a large part of the requirements for the web browser plugin are the same as those for Web Start. So rather than duplicate the effort, the plugin defers to that code for shared functionality.
JAXenter: What can users expect from the next major release of IcedTea-Web?
Deepak: Certainly more stability I would say. Over the past year especially, we have been doing heavy development on all the components of IcedTea-Web. As those components mature, we will be shifting our priority to fix the little but annoying issues, and to make the components more stable overall.
Some of the major upcoming features on our list include:
- Ability to work with upstream OpenJDK
– Better proxy support, including support for proxy auto-config (PAC)
– Better cache management to manage individual application cache
– Per application security policies
We also maintain a list with more release specific feature plans
on our wiki.
I would also like to mention a quick thanks to all of the IcedTea-Web contributors who have made this project possible. Though there are many to name, I feel at least a few key ones should be acknowledged: Dr. Andrew John Hughes for writing and maintaining the build system and files; Omair Majid for numerous enhancements to the Web Start implementation; and Andrew Su for developing and maintaining itweb-settings.