Bob Balaban's Blog


    Bob Balaban


    "Programming Domino With Java" - Third Gulp

    Bob Balaban  November 14 2011 06:28:59 PM
    Greetings, Geeks!

    Here's the third installment of the book. Thanks again for all the positive feedback.
    The first installment can be found here
    The 2nd installment is here

    All of the book content (as is all of the content on this blog) is Copyright 1998 and 2011 by Looseleaf Software, Inc. You may not reproduce or distribute the book's content without permission from me.

    Some Caveats and explanations:

    - This book is now 12 years old. There are lots of things in it that are amusingly dated, even laughable. One example: the absurd emphasis on Java Applets. They died an unlamented death due to bloating a long time ago, but at the time I wrote the book, they were a hot technology.
    - The formatting is not exactly as it first appeared in the book, and some of it is downright awkward. Sorry! The publisher converted the original files to Word for me, perhaps they forgot to select the "high-def" option.
    - The Java package described in the book (lotus.notes) was superseded by lotus.domino in R5 (1999? I think). The methods are all mostly the same. Of course, IBM have added lots more classes and methods than existed when the book was written. Also, the "recycle()" method had not yet been invented in Domino 4.6, so the memory issues that call addresses are not really covered.
    - The figures (screen shots and so on) referred to did not make it into any file format I can deal with, so I had to leave them out. Sorry! The code samples are mostly there, and I'll also post all of the files that were on the CD that came with the original book.

    This Installment

    I'm including 3 chapters in this post:

    Chapter 6 (NOI Part 5): Chapter 06.pdf

    Chapter 7 (Writing NOI Applications): Chapter 07.pdf

    Chapter 8 (Writing NOI Agents): Chapter 08.pdf

    Release Notes

    Chapter 6, Page 195. Description of Registration.addUserProfile() mistakenly refers to Database.createProfileDocument(). Should be setProfileDocument()

    Chapter 7, no bugs!

    Chapter 8, Page 265. Listing 8.3 ("Waiting for Child Threads, Sigh. This code has a major race condition in it that I didn't catch until after the book was out. Basically, the problem is that all of the threads could finish before you get to the logic that tests to see if any of them are alive. There's a better and much more robust pattern for doing this stuff that I could write a separate article about, if there's interest.

    Enjoy! More soon. Geek ya later

    (Need expert application development architecture/coding help?  Want me to help you invent directory services based on RDBMS? Need some Cloud-fu or some web services? Contact me at: bbalaban,
    Follow me on Twitter @LooseleafLLC
    This article ┬ęCopyright 2011 by Looseleaf Software LLC, all rights reserved. You may link to this page, but may not copy without prior approval.

    No Comments Found