By now, you must have seen the tons of blogs about Java Stack in Ubuntu Feisty Fawn. It surely is a exciting day for me as I spent the last couple of months getting the GlassFish bits delivered into Ubuntu.
It has been a learning experience for me as I had never done any packaging work for any operating system (let alone Ubuntu).
The whole process started for us in late november at the Ubuntu Developer summit held in Mountain View. We were just exploring the packaging process at that particular time and work started in true earnest after the december break. We had to first make our GlassFish packaging module open source(packager-ext). This module was not open source - not because we did not want to, but we never got to it amongst other release commitments. Modifying our packaging structure to generate the bits for GlassFish turned out to be a lot more work than we anticipated.
We now deliver 4 packages called glassfish, glassfish-bin, imq and sunwderby into Ubuntu Multiverse.
- Glassfish package has pretty much all the glassfish packages.
- Glassfish-bin has some binary (architecture dependent) components (for e.g. we need to have binary components to actually mask passwords entered on the screen - this functionality is not present in JDK 5 but is present in JDK 6). Thus, the packages that you install work for i386 architecture today. Subsequent releases should work of JDK 6 and we will get rid of this binary package. Those who want to run on other architectures can still get the bits from the GlassFish home page.
- Imq is Sun's Messaging Queue Product that GlassFish uses for messaging.
- Sunwderby is a derby database package. We included this package as this is the derby release that GlassFish V1 had been tested end to end.
GlassFish depends on JDK 5 for installation. The reason was for this dependency was that GlassFish V1 has been fully tested and certified with JDK 5. We had released the V1 URI bits in November and these bits have been delivered into Feisty. Another reason for the delivery was the extremely short release cycle and JDK 6 work was happening in parallel. This would have meant adding additional dependencies.
You can still go ahead and modify the configuration scripts to use this with JDK6.
1. Make sure multiverse is a component declared in /etc/apt/sources.list
2. sudo apt-get install glassfish. Accept the license and glassfish, glassfish-bin, imq and sunwderby will be installed under /usr/share/sunappserver. Domains will be installed under /var/lib/sunappserver.
If you want to install domains under your home directory - there is a convenience script called /usr/bin/asadmin that will help you. It is recommended that you still use the /usr/share/sunappserver/bin/asadmin script to manage your installation.
Here is the snapshot of Synaptic package manager for GUI installation:
As with any release there are too many people to name who made this possible. Among the ones I can list are Anil Gaur, Abhijit Kumar who have supported and nurtured this from the beginning. Larry Freeman for writing some of the early packaging code, Prasad Subramanian for helping open source packager-ext module, Carla Carlson for program management, Ann Hillesland for documentation, Terena Chinn-Fujii for release management, Sathyan Catari, Sreeram and his group for testing. Tom Marble for his help in almost everything! Barton George, Ken Drachnik. Jeff Bailey, Daniel Holbach, Colin Watson and Etienne Goyer from Ubuntu.
You can attend a Java One Talk about this on May 8th. Here is the session information
- Session: TS 7361 Packaging Java Applications for Ubuntu
- Speakers: Jeff Bailey (Ubuntu) and Harpreet Singh (Sun Microsystems)
- Time: 3:20 PM, May 8th
- Location: Esplanade 305, Moscone Center.
You can also attend the CommunityOne day for GlassFish on May 7th and hear about this. CommunityOne day is free and you can find registration information here.