Archive for the ‘Java’ Category

IzPack 4.0.1, 4.1.0-beta1 released

Monday, July 21st, 2008

I am please to announce that 2 new versions of IzPack have been released!

The complete details are available from
the official announcement.

If you are impatient to package one, deploy everywhere, you may also directly go to the IzPack downloads page :-)

Groovy cross-platform installer

Thursday, July 17th, 2008

You can now officially download a cross-platform installer for Groovy!

I’ll prepare an updated version within the next few days with some important patches from the current development versions.

IzPack supports pack200

Wednesday, July 16th, 2008

I’m glad to announce that IzPack now supports Pack200 compression (see the related JIRA entry).

Pack200 compression offers a drastic reduction of the installers size. The flip side of the coin is of course that it takes much longer to create an installer :-)

On the IzPack installer itself, enabling Pack200 reduces the installer by 4Mb.

The way it works is simple: all you need to do is add an empty pack200 tag in your info section of your installers, then every JAR that is added to a pack is compressed. As a special exception, signed JARs are not compressed using Pack200 (remember that Pack200 is only semantic-preserving). It should also be noted that the Pack200 compression that has been implemented is highly aggressive as it also strips debug symbols. Feel-free to send us a patch if you would like a more fine-grained Päck200 compression.

Here is a small excerpt:

<info>
   <appname>IzPack</appname>
   <appversion>4.0.0</appversion>
   (...)
   <requiresjdk>no</requiresjdk>
   <pack200/>
   (...)
</info>

If you want to test the feature, you will need to get IzPack from its Subversion trunk.

Finally, there is more to come in IzPack 4.1 in terms of installers footprint reduction. I’m really glad that Google released Protocol Buffers, as I was going to develop a similar binary data encoding system. Indeed, IzPack currently relies a lot on Java objects serialization (which is costly), so switching to more compact data encodings will drastically reduce the size of installers. My personal test case for this will be Glassfish v3 from Sun. Stay tuned :-)

Glassfish installer: now with more Windows integration

Tuesday, June 17th, 2008

The IzPack Glassfish installer has just been updated. It now provides a deeper integration on Windows systems.

Shortcuts to asadmin, the update center and the uninstaller are now created in the start menu hierarchy:

The Windows Add / Remove Software settings box will also display an icon for the Glassfish installation:

Lastly, the installer was generated from a snapshot of the IzPack Subversion trunk.

Oh and I forgot one more thing: the Glassfish installer has been downloaded at least 1326 times in May :-)

Building Glassfish v3 from SVN

Saturday, June 14th, 2008

Building Glassfish v3 from its Subversion trunk is relatively easy.

The first thing to do is to create an account on Java.net, else you won’t be able to perform any checkout. I believe that it is sufficient, but thing is you will be prompted for a user name and password by your Subversion client…

Next, you should point to the Glassfish-SVN project on Java.net, not to the regular Glassfish project as it uses CVS, and everyone knows how painful CVS can be (Subversion is not perfect either, especially on merges or tracking of upstream vendor branches…).

Checkout a fresh copy of the trunk:

svn checkout https://glassfish-svn.dev.java.net/svn/glassfish-svn/trunk/v3 \
      glassfish-v3-trunk --username YOUR_JAVANET_USERNAME

What you get is a bunch of Maven projects. The organization of the v3 repository is well done. For a comparison, go and have a look at the v2 one which embeds a lot of stuff that should not be under version control like Javadocs…

The next step is of course to grab and install Maven if you don’t have it on your local machine. You could go straight with Maven and build Glassfish, but there are a few caveats.

  1. The build will fails if you don’t enlarge the JVM stack size, so you should
     export MAVEN_OPTS=-Xmx512m
    

    or something similar depending on your operating system and current shell.

  2. Maven downloads a ton of bits from the net, so don’t forget to define a HTTP proxy if you need to.
  3. Unit tests may fail (this is a trunk!) and Maven stops building when unit tests fail: you can disable them by passing the
    -Dmaven.test.skip=true

    parameter to Maven.

Building Glassfish is easy, from the root of your trunk checkout, just launch the Maven install and package goals, e.g.:

mvn install package -Dmaven.test.skip=true

The build may take a while, especially as Maven has to download a lot of plugins and dependencies. Once this is done, you can find a zipped image of Glassfish in

(your-trunk)/distributions/glassfish/target/glassfish-10.0-SNAPSHOT.zip

.

Hopefuly one day the Maven build will call the nice IzPack Maven plugin that our new developer Dan Tran contributed ;-)

You can then easily test Glassfish:

unzip glassfish-10.0-SNAPSHOT.zip
cd glassfish
java -jar modules/glassfish-10.0-SNAPSHOT.jar

Have fun hacking Glassfish! ;-)