That’s a wrap
October 23rd, 2007 at 5:48 am by Jesper Thuun PetersenWow, it’s been a long day. I’ve just returned to the sanctuary of my hotel room after a long java day, followed by a glass of wine (or two) and a Colorado Burger in the hotel bar. Robert Mondavi does make very drinkable Cabernet, and, as it turns out, so does the guys at the Dry Creek vineyard. The burger was fine as well ![]()
I’ve snapped a few shots on the premises. I’m using Picasa to organize my photos, so take a look at the map. Click on the thumbnails to get a better view.
As for java, I’ve been to four sessions today, neither of which were essentially boring or uninteresting.
GROOVY
We’ve been using a tiny amount of Groovy scripting, so nothing surprising came up in the Groovy Session, but I were reminded, that the syntactic sugar offered by Groovy, which is a superset of the java language, running on any proper JVM, is pretty powerful.
JBOSS
The COSMIC electronic patient record we sell and enhance at the WM-data Healthcare division is deployed on a JBoss-platform. For that reason alone it was somewhat an eye opener attending the session on “Management, Monitoring, and Deployment of Tomcat and JBoss”. As it turned out, JBoss is distributed with a couple of very interesting surveillance applications, of which none is available in the distrubution we are running. The most interesting one being the web-console. Memory snapshots can be created and monitored from the jboss web-console. Snapshots and monitoring of changes in jmx values can be created across all the mbeans of the jmx-console. Alerts can be created, mails sent, etc. Pretty powerful!
Also, JConsole could be interesting in a JBoss context. JConsole is a part of the JDK, and the run.bat in the JBoss bin directory must be edited to include -Dcom.sun.management.jmxremote. After JBoss has been started, the $JAVA_HOME/bin/jconsole.exe can be executed. See: http://wiki.jboss.org/wiki/Wiki.jsp?page=UseJDK5JConsole
A couple of other very interesting points: OutOfMemory can occur because of too many statics overflowing the permanent generation memory, not the heap! We’ve seen this problem, where the amount of free memory looks perfectly fine, and all of a sudden an OutOfMemoryError is thrown. More at: http://java.sun.com/docs/hotspot/gc1.4.2/faq.html. Further: Actively invoking the GC from the mbeans will free *all memory*, including the hotspot-compiled classes. This is rarely desirable!
Google Gears is in a very few words a javascript library enabling ajax applications to go offline. As of now, Google reader is a prominent example. An essential property of Google Gears is the embedded SQL-database, which allows the client side javascript to do CRUD-operations on a client side data source.
Spring vs. Guice
Finally, I attended a session on the difference between Spring and Guice, two prominent exponents of dependency injection. The question really boils down to this: do you prefer the strong typing of the java language in Guice, or the more flexible, compile free approach of XML-hell in Spring. I’ve been really interested in trying out Guice for a while, but I still can’t quite see the point: why not just inject the dependencies via different constructors, and have the test case inject mock versions? After today’s session, I’m still looking for that rock solid argument…
Popularity: 276 points

