The Source for Java Technology Collaboration
User: Password:



Tim Boudreau's Blog

February 2007 Archives


We have a book cover - I mean, a new NetBeans book!

Posted by timboudreau on February 28, 2007 at 12:34 AM | Permalink | Comments (7)

Well, our new NetBeans book is not finished, but available in "rough cut" form. If you've ever wondered about writing NetBeans plug-ins or how you can architect a large, extensible application and have it actually work, I hope this will be a resource.

The last one of these I wrote was a year and a half in the making; this was a six-week fire-drill. Sometime last fall, Geertjan, who deserves full credit for making the project happen, wrote me and asked if I'd "contribute a chapter or two." Six chapters and two appendices later...well, if you're going to do something, do something :-)

I'm generally happy with the results (well, okay, I read the chapters and immediately find things I could improve, but sometimes you have to let things go). If you do download the rough cut, any feedback, suggestions, error reports or improvements are welcome - even if they don't make it into this edition they will into the next!

Probably the most fun part of writing it, oddly, was the little card game library used in the Nodes chapter (like there aren't enough of these sorts of things already!). The part that was fun was analyzing the problem (really I was just looking for a data model that people would be familiar enough that people would focus on what we were doing with the data model, not how it worked), and realizing that you can boil pretty much any card game down into piles of cards and logical rules about what cards are visible and what cards may legally be added. Not that any of that is new, but there is a certain thrill to figuring something out from first principles and taking it to its conclusion.

On a completely other note - anybody out there have any handy implementations of diff algorithms for java.util.Lists? I put some work into adding another algorithm to contrib/misc/diffs in the NetBeans source tree today - being able to simply do a diff of two lists is ridiculously valuable, but there are a lot of different algorithms with different performance characteristics - I wrote the initial version for the NetBeans Navigator component a few years ago, and kept reusing it again and again for different projects. It would be nice to collect a relatively complete set of useful algorithms - different algorithms will work better for lists that are large/non-large, tend to have large changes or small ones, etc. I found a couple of examples buried in Apache projects, but nothing that sets out to just do this one particular thing well. IMO such a facility would really be a useful addition to the JDK.

Generate a NetBeans module for your library or JavaBeans in one Ant task

Posted by timboudreau on February 07, 2007 at 10:52 PM | Permalink | Comments (10)

A while back I wrote a tool called BeanNetter that would take any library JAR file and generate a NetBeans module that added the library to the list of libraries you can use from your projects (a handy way to bundle source and Javadoc all together so people can debug). It also would add any JavaBeans in the JAR to the Matisse (Swing GUI Designer) component palette. Well, it is now also an Ant task. So you can make it part of the build process for any library to also generate a NetBeans module. Mobile Bay, Mobile, AL, USA

This afternoon I got an email from Mikael Grev about the tool, and asking if there was an Ant task. I'd planned to do one but hadn't gotten around to it. This afternoon I finally did.

It can still benefit from some prettification, but it's ready to try. You can download it here.

Easy way to use it: The first time, just run the GUI using java -jar beans2nbm.jar and point it at the files for the library you'd like to bundle into a NetBeans module. At the end of the wizard, on the summary page, it will show all the necessary Ant code to replicate what it just did (and include the text you entered in the wizard). Just tweak the paths to be relative to your build script and paste it there.

For examples, the Quick Color Chooser and Wizard projects are now set up with build scripts to use the task. Here is the ColorChooser build script.

Please try it - comments and feedback are most welcome! And many thanks to Mikael for the suggestion!

For convenience, here is a sample target:

    <target name="nbm" description="Generate a NetBeans Module" 
        depends="jar,release-javadoc">

        <taskdef classpath="lib/beans2nbm.jar" 
            classname="beans2nbm.ant.GenNbmTask" 
            name="nbm"/>
          <zip zipfile="dist/colorchooser-src.zip">
              <fileset dir="src">

                  <exclude name="**/CVS"/>
              </fileset>
          </zip>
        
        <nbm destFolder="dist" 
            destFileName="net-java-dev-colorchooser.nbm" 
            description="A color chooser" 
            version="1.1" 
            homepage="http://colorchooser.dev.java.net"

            codeName="net.java.dev.colorchooser" 
            jarFileName="dist/colorchooser.jar" 
            author="Tim Boudreau" 
            displayName="Color Chooser" 
            license="CDDL"
            docsJar="www/release/colorchooser-javadoc.zip"

            sourceJar="dist/colorchooser-src.zip"
            minJDK="1.4"/>
    </target>
Mobile Bay, Mobile, AL, USA

Mobile Bay, Mobile, Alabama





Powered by
Movable Type 3.01D
 Feed java.net RSS Feeds