gosling updates

It's been way too long since I've blogged but I do have an update that might be of interest. I finally carved out enough time to get support built in to gosling for using dependency resolution using maven repositories. At the moment that is accessed through the Dependencies class. The call is a pretty simple call to make but it does require that you pass in a Dependency object and a FileSet to add the dependency path to. I'm going to add convenience methods on Project to access all this so that you needn't worry about the plumbing. It's still largely experimental but the unit test passes and that's a good sign. My ultimate hope is that this mechanism can be used to add plugins to your build without having to download them manually. Adding things to $ANT_HOME/lib has always irked me and just seems a little clunky. Maven manages this pretty well as far as I can tell so it shouldn't be too bad. So what's next for gosling? I want to finish building out the most common tasks for building systems. For example, I use uptodate quite a bit in various ant settings. I also need to work on support for publishing artifacts via gosling to maven repositories. I would also like to clean up APIs a little.  There's still more XML-oriented cruft in there than I'd like.  I'm getting close enough to usability that I might just stamp it 1.0 once things like this are rounded out. Once 1.0 is done the biggest item on my plate is what I'm calling at the moment "profiles."

This isn't anything terribly exotic but the one profile that seems to be most asked about would be a maven-like profile where project structure is defaulted and enforced along with a build lifecycle that users of this profile would just hook into. This could also mean more focused profiles such as web application oriented profiles or ones more geared to full JEE development.  Since it's just Java, this will largely be done through inheritance and likely will use event notifications. I still have to work through that particular design. So that's what's on tap for gosling. I just pushed version 0.3 out to https://gosling.dev.java.net.  If you haven't tried gosling out yet, please do give it a try and provide some feedback on the lists.

Java goes GPL

Sun has finally confirmed the rumors. Java will be released under GPL v2 with the Classpath exception as detailed here. I'm not all that crazy about the GPL choice but I understand the rationale. It most likely is in Java's best interest as the GPL will prevent malicious forks. I would've preferred the CDDL or a BSD/ASL license due to my own anti-GPL leanings. Even the LGPL might've been a better choice. Either way, though, this is a great move for the Java community over all. I think there will still be some hand wringing about the viral nature of the GPL and such but now that Java is truly (or at least will be very soon) perhaps the the FSF and Richard Stallman can shut it about the Java Trap. And perhaps we can finally start addressing speed concerns in the collections classes, for example. But as pointed out on the TSS thread, the TCK really needs to be opened up so that contributors can test their changes before submission. Perhaps that's in the works as well. I haven't seen anything on that point. It's a good day for Java, though.

The JasperReports book lives!

Thanks to all those who replied.  The survey convinced the publisher that there was indeed sufficient interest, so we'll keep plugging away on the book.  We're having to do a little restructuring due to some logistic issues on the back end, but we hope to have the book finished by December, to print by January, and on shelves by JavaOne.  Of course, those are "just deadlines" and things like this tend to slip, but we're going to give it our best shot.  Thanks again to all who replied.  Check back here and on Manning's site as the day approaches for updates.