The JBoss talk talk at AustinJUG went better than
expected. I knew there would be a crowd, but I wasn't sure if we
would beat out last month's Oracle + free pizza talk, which set an
attendance record for the group. But with 140 in attendance, we blew
away last months record handily. I think Marc even made a joke about
free software being a bigger draw than free pizza.
There was a short intro to hibernate given by Steve Ebersole, a
local Austin hibernate developer. I haven't paid much attention to
hibernate until now, and was surprised how similar it is to TopLink.
I worked with TopLink for years and hibernate seemed like something I
could almost step right into. I'm definitely going to look into it
more.
To stay with the Hibernate theme, Gavin King (hibernate lead and
fellow manning author) was
in attendance. We chatted briefly about JSR 175 and XDoclet with
respect to the future of Hibernate. Since Hibernate doesn't really
need any code generation, there's a good chance that JSR 175 will
address Hibernate's metadata needs. But, given that Java 1.5 is
required for JSR 175 it may be a while before Hibernate can really
have a hard dependency on it.
The main even was Marc's talk. The first bit was a JBoss
marketing pitch, followed by an overview of the various JBoss projects
and then a talk about AOP from the perspective of JBoss. It was
mostly pictures, a bit of code and nukes demo. (which
I captured live) I thought the most impressive JBoss product was
JBoss
Cache. Marc spent a lot of time talking about field level cache
updates, which make for very high performance caching solutions, which
was very cool. In a previous life, I wrote a distributed cache (for
TopLink) that was able to do fine grained caching of objects. (not at
the field level, but it could replicate changes to single objects in a
graph without doing the entire graph) Of course, this only worked with
our code generated persistent objects. The JBoss solution works in a
much more general sense. Very cool.
I forget to ask about the JBoss classloader woes, but I did catch
some of Marc's comments during the talk about it. I do think I see
where they are coming from now, and it isn't entirely crazy, but I
just don't agree that the JBoss flat "everyone sees everything"
classloader is a better solution. The problem is that to use that
model, you have to organize your deployment such that there are
no duplicate classes anywhere. If you have duplicate classes, you
run the chance of the class cast exception problems that drive
every single JBoss user I know nuts. If you flatten out
your distribution, everything works great in JBoss.
But that's a packaging nightmare if you have any aspirations of
doing anything outside of JBoss. That means not only do you have to
create the normal EAR/WAR/etc... packages with their nice, clean
classloader boundaries, but you also have to develop separate flat
ones for use in JBoss. That's the position we are in at work. Some
parts of the system run in JBoss
1000
or weblogic (we are one of those off
companies that deploy our app into a customers existing app server)
and finding a solution that works in both worlds is not easy.
To make things worse, the flat world of JBoss dies horribly when
you are working with multiple applications in an app server.
(especially when you are working in the customer's app server) If you
are using the same jars as another application in the server, you will
die horribly when hot deploys come up if you don't manage those jars.
In a more standard J2EE model, one app doesn't interfere with the
other in any way and the peacefully co-exist.
Getting back to the topic of the meeting, I left very impressed
with what JBoss is up to. The meeting went long and I didn't have
time ask around, but my general impression was that there were a lot
of JBoss converts in the room last night.
I hope that attendance stays up at AustinJUG next month when we do
a Manning double feature. I'll be giving my Code Generation / XDoclet
talk and Ira and Nate Forman (Java Reflection in Action)
will be talking on some of the more interesting aspects of reflection.
I'm looking forward to it. (note to self: work on that presentation)