The Morning Keynote
I am no fan of keynotes, but I figured I should earn my press pass (thanks
Jacki!) and show up.
Today is day 0 of Java One, AKA “Community One,” with a focus on
open source and community projects. With the economy being what it is, and Java
One stretching the definition of “early bird” specials past the
breaking point—the discount was good until today—I was fearing for
the worst, but there definitely were crowds today.
style="float: left; margin-right: 1em;" />As everyone knows from yesterday
morning's news, Oracle has made an offer to buy Sun Microsystems, Sun has
accepted, and the acquisition is expected to go through by the summer.
I am currently
revising my “Big Java” book, a college text for beginning computer
When teaching unit testing in the context of a simple EJB3.1 application, I
was looking for an easy way of testing managed beans and session beans inside
style="float:right; margin-left: 1em;" />
A Thinkpad sale seduced me into
upgrading my laptop. My feeble rationale was that I could stop dual-booting,
use Linux on the new laptop and Vista on the old one.
Java EE 6 makes it pretty straightforward to crunch out a basic web +
database application. This semester, my software engineering class is building
web apps, and I decided it is simpler to have them use JSF + JPA in Glassfish
v3 rather than some technology that seems easy at first and then lets them
Here is a laundry list of recent simplifications.
As a book author and glutton for punishment, I am often interested in
bleeding-edge Java technologies, as they are cooked up through the Java
community process. For example, when David Geary and myself wrote the first
edition of our Core JavaServer Faces book, we needed to work with the early
access versions of the spec and reference implementation (RI).
JSF2 will provide a standard mechanism for adding AJAX capabilities to JSF
applications. Jim Driscoll has href="http://weblogs.java.net/blog/driscoll/archive/2008/11/a_simple_ajax_j.html">this
example, but it is a bit odd—the property getter is actually a
mutator. Here is a more run-of-the-mill example.