Back in August, Kathy Brown hosted a webcast on deployment management processes and tools for Domino. I forget how it came up, but I offered to modernize, and post to OpenNTF, a utility I wrote about four years ago called dPloy. It's this handy little app I wrote about 4 years ago that provides 1-click deployment - and 1-click rollback - of Domino applications, as well as centralized documentation about who was responsible for each release, project requirements, etc. The only trouble is... I'm a bit ashamed of the user interface. It works really well, I just think it's ugly. So I was going to drop an XPage interface on top of it, make it look all purty and stuff. I got a few hours into doing so, and was pretty pleased with how it was looking, but just didn't have time to finish it. This was August, after all... I was busy. So Kathy just left the bit about dPloy out of the webcast, and I've been meaning to finish that modernization ever since, but still haven't had time.
Fast forward to two days ago... Patrick Kwinten noticed that Kathy had alluded to my non-existent OpenNTF project in this month's LotusUserGroup newsletter. Oops. Sorry, Kathy (and Patrick). Some discussion on his blog entry reminded me that part of what makes OpenNTF a great resource is that I can post something even if it's not quite "finished" yet, and others can gain some benefit from it in the meantime, report bugs and request features, and even rescue the project if I never get around to finishing what I started. To that end, dPloy is now a real OpenNTF project.
I also realized that certain aspects of what I had already finished make this a good tutorial application, because it uses several intermediate XPage development techniques... the kind of stuff that's easy once you know it's there, but not immediately obvious. So tonight, before uploading what I'm calling version 0.9.0, I added one small additional feature, partly because Toohey asked me the other day how to do it, but mostly because it provided another example of something that goes beyond drag-and-drop development, but isn't too difficult once you know how. Here are a few of the techniques its code illustrates:
Leveraging theme resources to standardize more than just visual attributes
Keeping source markup clean using managed beans
Defining extension components to add properties/behaviors to existing core components, such as support for HTML5 attributes
So now you have two reasons to go download this utility: the Notes client interface already provides valuable deployment management capabilities, and you can explore the in-progress XPage interface to discover a couple useful development techniques... just don't forget to browse it via the Package Explorer, or you'll miss out on some hidden goodies. When time allows (read: February), I'll provide a more detailed explanation of each of these techniques. In the meantime, check out Part 1 and Part 2 of Jeremy Hodge's guest appearance on Notes in 9: in addition to other suggestions for how to get started using Java in XPage applications, he provides a great explanation about what managed beans are and why they're useful.
locating XPage components with XspQuery
Sun, Apr 14th 2013 12:00a Tim Tripcony Several years ago, I wrote a utility Java class designed to make it easy to search for components within the current XPage instance based on various criteria. I've found it enormously useful, and, apparently, so has Keith Strickland, because he added it to org.openntf.xsp.extlib, complete with a few refinements. As an example of how you might use this, examine the following line of code:
List requiredFields = new XspQuery()
.loc [read] Keywords: ldd
your how is not your what
Wed, Apr 3rd 2013 11:36a Tim Tripcony I've noticed a pattern emerging when I'm asked for help with XPages. Here's a representative conversation:
"I'm trying to do [X] and it's not working. How can I do that?"
"What are you trying to accomplish?"
"I already told you. I'm trying to do [X]."
"No, that's how you're trying to do it. What are you trying to do?"
For example, replace "[X]" with "reach into a repeat control from outside it" (since this has become the most frequent topic I'm asked about [read] Keywords: xpages application
my new favorite quote
Sat, Mar 23rd 2013 5:20p Tim Tripcony "We go about our daily lives understanding almost nothing of the world. We give little thought to the machinery that generates the sunlight that makes life possible, to the gravity that glues us to an earth that would otherwise send us spinning off into space, or the atoms of which we are made and on whose stability we fundamentally depend. Except for children (who don’t know enough not to ask the important questions), few of us spend much time wondering why nature is the way it is; where the [read] Keywords: wiki
Taking the scary out of Java in XPages: Prologue
Tue, Feb 26th 2013 9:50p Tim Tripcony The discussion following my last post made stark the need for greater availability of information that makes the nature of Java more accessible to Domino developers. Credit for the title of this post goes to Declan, who is considering writing a series of blog posts on this topic. I will be doing the same; hopefully there will be a fair amount of duplication. As David Leedy is fond of stating, it's a good thing when several people share the same information, because that makes it easier for the [read] Keywords: domino
Passthru vs. component - my perspective
Sat, Feb 16th 2013 9:40p Tim Tripcony Paul Withers posted a thorough article explaining the differences between namespaced XPage components (e.g. ) and their corresponding passthru elements (e.g. ), providing numerous examples of what actually happens when these objects are constructed. I've always heard (and often repeated) that passthru elements are more efficiently processed than their namespaced equivalents, so Paul's post inspired me to offer my own perspective.
Simply put, there's practically no difference... but there a [read] Keywords: acl