I just finished installing Fedora 8. One new feature that really caught my eye is that it includes an unencumbered version of Java, based on OpenJDk, called IcedTea. In addition to IcedTea, Fedora 8 includes a lot of Java software out of the box including Eclipse, Maven, ANT, Tomcat 5, and Jetty, among others.
I have been using Maven for several months now to do my builds, I tried the included version of Maven to build some of my existing projects with the IcedTea compiler and JVM, so far all projects I have tried to build have built with no problems.
The included Eclipse is based on version 3.3, it includes a lot of plugins out of the box, including Mylyn, Subclipse and PyDev (for Python Development). Oddly, it does not include Web Tools Project, however, I was able to install it as usual through the Eclipse update manager. I was able to open several of my existing project without a problem.
I then tried to install my
favorite application server, running the installer via java
-jar glassfish-installer-v2-b58g.jar
was not a problem. However, the
next step, which is to execute an included ANT script called setup.xml
was a troublesome
/opt/glassfish/setup.xml:156: The following error occurred while executing this line:
/opt/glassfish/setup.xml:146: Glassfish requires JDK 1.5 or higher, you have java version "1.7.0"
IcedTea Runtime Environment (build 1.7.0-b21)
IcedTea 64-Bit Server VM (build 1.7.0-b21, mixed mode)
Inspecting setup.xml, I noticed the following two lines:
<contains string="${targeted.java.version}" substring="1.5"/>
<contains string="${targeted.java.version}" substring="1.6"/>
I then inspected the output of java -version
:
java version "1.7.0" IcedTea Runtime Environment
(build 1.7.0-b21) IcedTea 64-Bit Server VM (build 1.7.0-b21, mixed mode)
After this the reason for the problem became clear, the GlassFish build script was only checking for JDK 1.5 and 1.6, and the IcedTea JDK is based on JDK 1.7.
Armed with this knowledge, I added the following line to setup.xml
:
At this point I reran ant -f setup.xml
,
unfortunately it failed again, the new error message was:
[exec] Domain
being created with profile:developer, as specified by variable
AS_ADMIN_PROFILE in configuration file. [exec] Security Store uses: JKS
[exec] keytool error: java.io.IOException: Invalid keystore format
[exec] [exec] CLI130 Could not create domain, domain1 BUILD FAILED
/opt/glassfish/setup.xml:170: The following error occurred while
executing this line: /opt/glassfish/setup.xml:552: exec returned: 1
The GlassFish setup script was complaining about an invalid keystore format, not knowing how to fix this (save installing Sun's JDK), I gave up on trying to install GlassFish.
I then downloaded an installed NetBeans 6 Beta 2, Web and Java EE pack. This version of NetBeans bundles GlassFish, I thought I might be able to cheat my way into installing GlassFish by installing NetBeans, unfortunately the GlassFish installation through the NetBeans installer failed as well.
NetBeans started without a problem, however, when I tried to create a new project, it froze, apparently looking for project categories in some kind of internal datastore.
Trying to add a new file to an existing project also resulted in the IDE freezing as well.
At this point I downloaded and installed JBoss, it installed without a problem. I deployed an existing project to it, it deployed and executed without a hiccup. It would have been a bit dissapointing if JBoss didn't work, since JBoss is now a Red Hat product, and of course so is Fedora, thankfully it worked properly.
I was pleasantly surprised with the high degree of compatiblity that IcedTea brings to the table. Also, the bundled Java tools such as Maven, ANT and Eclipse save a lot of time of downloading and configuration.
Unfortunately the inability to install GlassFish is a showstopper for me, therefore I'm going to have to download and install the official Sun JDK, but for those not using GlassFish, this is not an issue. NetBeans fans are also out of luck.