[Live-demo] OpenJDK Only for LiveDVD 5.5?

Even Rouault even.rouault at mines-paris.org
Sun Jan 1 12:28:55 PST 2012


Le dimanche 01 janvier 2012 19:03:33, Andrea Aime a écrit :
> On Sun, Jan 1, 2012 at 6:55 PM, Andrea Aime <andrea.aime at geo-
solutions.it>wrote:
> > The brief facts:
> >> * Sun Java is not allowed to be packaged into future distributions (like
> >> ubuntu, debian, or OSGeo-Live). Instead, users are expected to download
> >> SunJava from Sun.
> >> * SunJava 7 will be based upon OpenJDK.
> >> * OpenJDK is reportedly much better than previous OpenJDK versions.
> 
> Hmmm.... I wanted to run a benchmark to substantiate this claim but there
> are no OpenJDK 7 binaries available
> for my aging Ubuntu 10.04 (which I'll upgrade only when the new LTS shows
> up).
> 
> Also, on Windows there are no OpenJDK builds so in the end we need to
> target Oracle JDK anyways (besides
> the obvious business reasons), this means a OpenJDK support will have to
> come in parallel (aka "more work")

Not sure how/if it can help for geoserver/geotools, but I can give you some of 
my experience with OpenJDK6 and Windows. I have ported a quite big Java app 
from Sun Java 1.4.2 -> Sun Java 1.6.0 -> OpenJDK 1.6.0 and it is now in 
production in our client.

It is true that there are no Windows OpenJDK builds easily found. I finally 
build mine. The hardest part was to gather all the requirements (cygwin, 
directx headers, freetype, GNU make, etc...), plus some undocumented issues 
that I finally identified as being due to my use of a non-English version of 
MSVC. But overall I found that the build instructions worked well if you 
follow them closely. Lately, I've updated to the build b23 and found that the 
building process was a bit easier than during my first experience that dated 
back to more than 1 year 1/2.

As far as the port of the app is concerned, most problems found were due to an 
inadequate use of some bits of the Java API where the Sun Java 1.4.2/1.6 
implementation were permissive, but the OpenJDK one not. When looking at the 
docs, we realized that we were relying on unspecified behaviour. The most 
problematic was due to an inadequate use of threading with AWT (use of AWT 
from another thread than the AWT event dispatch thread).

The other most problematic part I can recall was related to font rendering. 
The font engine of the windows openjdk build uses freetype whereas the 
commercial version uses a closed-source engine. This required adjusting font 
sizes in GUIs and setting some anti-aliasing hints.

I'm not sure if the changes we did would have been necessary if we had 
targetted JDK7/OpenJDK7 directly instead of OpenJDK6, but at the time they 
were done it wasn't yet released.

Best regards,

Even



More information about the Osgeolive mailing list