Geertjan's Blog

  • May 4, 2007

Here Is Our Book!

Geertjan Wielenga
Product Manager
This morning, this arrived:

On opening it... I found... our book! Here it is, in a picture taken by NetBeans Mobility docs writer Brad Schmidt:

Note: Read the message on the board in the picture carefully. Then (re)consider what you're planning to do this Monday, May 7. If you're one of the first 400 (of the 1000 or so, from what I hear) at the Moscone Center in San Francisco for NetBeans Day, you will get the above book for free. And, to prove that it's not just an empty facade, a mirage, a trick, or a cunning ploy... here is the book in opened state (call open() on the TopComponent), showing two of its 604 pages:

Plus, if you read all the way to the back of the book, you will get a CD containing Tim, Jarda, and my "Greatest Hits"! No, not really. But you will find the samples (which are now also in the 5.5 Update Center, by the way) as well as NetBeans IDE and other goodies. Here's the CD, which every book has, for free, stuck to the inside back cover:

And here are the contents of the CD, with the samples module highlighted, as well as the module that will install the API Javadoc (so you won't need to go to the Update Center for that), together with a PDF of the book (though the PDF is not the final version of the book, just the draft that was available when the CD was produced):

The samples will also work in 6.0, although we obviously couldn't include NetBeans IDE 6.0 on the CD, since NetBeans IDE 6.0 didn't (and doesn't) exist yet when we created the CD. We did test the samples on 6.0 (using builds and milestones), and throughout the book we describe how the scenario under discussion would be done in 5.5 and how it will be done in 6.0. In some cases, we couldn't do that, because we didn't know how things would be in 6.0, at the time when we were writing. So, for example, the new 6.0 plugin manager is not included, because it didn't exist at that time. However, the NetBeans API code is correct, written for both 5.5 and 6.0. Updates/changes will be added to the book's site, which is http://www.netbeans.org/books/rcp.html, which also provides information on ordering the book. For example, you could go to Safari (here) or Amazon (here).

Hurray! Thanks Elizabeth Ryan from Prentice Hall, our publisher, for getting the book to us in Prague so quickly, just in time for this last-minute ad-hoc pre-NetBeans Day advert!

Join the discussion

Comments ( 19 )
  • Wouter van Reeven Friday, May 4, 2007
    Congrats Geertjan! Please send me a copy ;-) Too bad no ordering info is available yet from the NetBeans website.
    Greets, Wouter
  • Geertjan Friday, May 4, 2007
    Hi Wouter! Go here for all your ordering needs, this is also where the updates/errata/etc for the book will be found:


  • huntch (Charlie Hunt) Friday, May 4, 2007
    Amazon URL: http://www.amazon.com/Rich-Client-Programming-Plugging-NetBeans/dp/0132354802

    Safari URL:

    Congrats to Geertjan, Tim and Jarda!!!

  • Geertjan Friday, May 4, 2007
    Thanks Charlie! I added your links to the blog entry, so now everyone can get to ordering the book without looking around for links.
  • James Branam Friday, May 4, 2007
    Congratulations on the book!
  • Paris Apostolopoulos Friday, May 4, 2007
    Well done mate.....excellent!
  • Georg Friday, May 4, 2007
    Congratulations, Geertjan and team!!

    I pre-ordered my copy many weeks ago, let's see when it will arrive... I am thrilled.

  • tmjee Friday, May 4, 2007
    This is a bit late, but still my heartiest congratulation on the book. Cheers mate. :)
  • hilz Friday, May 4, 2007
    Just got my copy! yeyyyyyyyyyy. Congrats on the release.
  • Java Forums Friday, May 4, 2007
    I would like to hear comments of people who buy the book. I am planning to develop a NetBeans based IDE and i wonder if this book is a good starting point for me? Congratulations!
  • Geertjan Monday, May 7, 2007
    Thanks all for the congrats and support!
  • Thomas Wolfram Wednesday, May 9, 2007

    I bought the e-book version of your book from www.phptr.com (which was a big, big mistake since the PDF is DRM-crippled so it cannot be read under Linux but only under Windows). Anyway, I just started working through the book and found some problems with the examples. For instance the example in chapter 5.6 doesn't work for me in Netbeans 5.5. It works only in Netbeans 6.0 M9 and only after modifications. I had to add 'Runnable' to the list of implemented interfaces of the Installer class. Also I had to change the first line in run() from:

    result = Utilities.actionsGlobalContext().lookup(new Lookup.Template(Object.class));


    result = Utilities.actionsGlobalContext().lookup(new Lookup.Template<Object>(Object.class));

    Otherwise I got compiler warnings an no events would be displayed in the output window when I ran it.

    Anyway but more important to me is NB 5.5. There I had to remove the generics but still no events in the output window. I also have problems with other examples. Is there a place where the code samples in the book can be discussed?


  • Geertjan Wednesday, May 9, 2007
    Those differences are discussed in the book. For right now, we haven't set up a way to discuss the book in a specific mailing list. You can write to the dev@openide.netbeans.org list if you have specific questions. We didn't want a separate mailing list for the book, because that would have fragmented discussions on the NetBeans Platform. Best to do them in the same mailing list where all NetBeans Platform related stuff is discussed, which is the aforementioned mailing list. If you find problems in the book, send me an e-mail and I will see what the problem is. We plan on building a list of errata on the book's site (here), once we have them, and your comments might be a start.
  • Thomas Wolfram Wednesday, May 9, 2007
    Thanks for your answer. An errate site would be a big help for newbies.

    I have read about the differences between NB 5.5 and 6.0 in the book regarding generics usage and I think I understood them. Still, the example 5.6 does not work, neither in 5.5 nor 6.0 M9, when copied directly out of the book. I managed to get it to work in 6.0 M9 with the above mentioned modifications but I didn't get it to work in 5.5 yet. Probably it is very easy and not a big deal but I'm completely new to NB rich client programming.

    Another error seems to be in section where an example is given what to write in the layer.xml file to hide the Help menu. It is given as:
    <file name="Help_hidden"/>

    But it doesn't work. Well it was not really hard to figure out that it has to be written has:
    <folder name="Menu">
    <file name="Help_hidden"/>

    So this one was not a big deal. But for a newbie to the platform like me it is still confusing.

    As for the NB platform mailing list I checked out the archives and I was not sure whether I should post beginners questions there referring to code examples from a book. But thanks for your offer to mail to you directly. I will certainly do this as I work my way through the book. :-)


  • Dan Thursday, May 10, 2007
    Awesome! Congrats Geertjan (and to those other two that made the coffee for you ;-)
    So...how does it feel to be rich and famous? lol ;-)
  • James Friday, May 11, 2007
    Great job.
    But I had a problem when I followed the steps in Chapter 20 under NB 5.5 & JDK 1.6. In step 8 on page 434, after I "Build Project", I didn't get the "lib" folder in the "dist" folder as shown in Figure 20.6 on page 435.
    Could someone confirm this?
  • Geertjan Friday, May 11, 2007
    No, something must be going wrong on your end. Feel free to use the dev@openide.netbeans.org mailing list to ask questions such as this. Write there, ask your question, describing as much as possible of what you did, and I will provide an answer. That way, the information will be available to others too. Thanks.
  • James Friday, May 11, 2007
    Excellent Geertjan!
    I will check again, and use the mailing list for future questions.
  • Kaede Tuesday, May 15, 2007
    i like it
Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.